Core Infrastructure Initiative - <AUTHOR> http://www.linuxfoundation.org/programs/core-infrastructure-initiative <comment><USER2> Basically, through a combination of clever marketing and actual impact, Heartbleed hit the Open Source community HARD, and left most people in the Open Source Community asking two questions: 1\. How did this happen? 2\. How can we stop this from happening again?

LibreSSL and openSSLRampage is the OpenBSD response, and, it's absolutely in keeping with their character. I admire the "Fuck it, let's just fix this shit" attitude that goes along with it.

The Core Infrastructure Initiative is the Linux Foundation's response.

They're two valid ways of dealing with the problem. the LibreSSL way is more direct, targetted, and, in a way, satisfying, especially if you run OpenBSD, and can gain from these efforts relatively quickly.

The "Core Infrastructure Initiative" is looking at it from a more holistic perspective and saying: OK, OpenSSL was in trouble and nobody noticed, what other projects are in the same situation, and how can we prevent what happened to OpenSSL from happening to other projects.

Neither way is necessarily "The only right way", or even better than the other way. In fact, both approaches complement each other. OpenBSD fixes the actual current problem child, Linux Foundation is on the hunt for the next problem child

<comment><USER3> I think pretty solid arguments can be made for the position that the Linux Foundation approach is the better route actually.

<comment><USER2> As also noted, pretty solid arguments can be made that the OpenBSD approach is the better approach. My point was that they're not mutually exclusive, and this is definitely a win-win scenario, as we have the potential to get 1\. A rock-solid open source SSL library 2\. Less surprises in the future.

<comment><USER4> > pretty solid arguments can be made that the OpenBSD approach is the better > approach

Not really. OpenBSD is making a OpenSSL replacement for OpenBSD. They _might_ make a portable version, but they might not. They have made it clear they are not putting the FIPS compliance stuff back in and there's a good chance a lot of those sponsors are interested in that.

Secondly, you don't get to choose where donations go in OpenBSD. You donate to OpenBSD and they distribute wherever. You don't get to say 'I need this money to go to improving the SSL library.' That can be kind of an issue for things like this.

<comment><USER5> FIPS is actively harmful to security by virtue of being an empty and ill- conceived certification. Removing FIPS from an otherwise best available option is to the benefit of the industry at large.

By comparison, glossy marketing of a security effort offers no security benefits, and plenty of room within which to hide bad ideas such as FIPS.

<comment><USER4> As others have said, the technical arguments against FIPS don't mean anything when a huge potential customer requires it.

<comment><USER6> And huge potential customers don't mean anything to a non-profit open source ecosystem that actually care about security.

<comment><USER7> When did Red Hat and Google become non-profits? Did I miss something?

<comment><USER8> RedHat and Google can afford to add FIPS to their own Libre SSL if they want to stop using OpenSSL.

</comment></comment></comment></comment></comment></comment></comment></comment></comment><comment><USER9> Holy crap, Microsoft donating to the Linux Foundation. Cats and dogs, living together. It's the end of days for real this time.

My one real question: How well has the Linux Foundation managed its money in the past? Are they going to be an effective steward of this fund?

<comment><USER10> I asked Jim Zemlin -- the Linux Foundation boss -- about Microsoft and if he ever could have predicted this would happen. He just laughed, but I could tell he enjoyed the irony too.

The Linux Foundation handles the Linux kernel, so they have a good track record in that regard. They also have worked on some less-successful (but very well-managed) initiatives like Meego and now Tizen.

The members are big corporations and as a result, the auditing process and outlay of funds isn't something I'd be concerned with.

The greater (potential) concern would be over how the corporate sponsors could influence a project. Zemlin assured me that the SOP is not to interfere with existing operational structures or governances of a project -- so they wouldn't have any impact on how the OSF is run, for instance -- and certainly, in the case of the Linux kernel, corporate sponsorship hasn't dictated Linus's direction of the project.

That said, I think the level of influence a corporation could have over a project is probably directly related to how a project is initially structured. Tizen, as an example, is in partnership with the Linux Foundation, but is largely led by Samsung and Intel. That's totally fine, and was that way by design.

I would be concerned about projects that might not have strong leaders (like Linus). Of course, one could argue that if that's the case, the project might have bigger problems than being co-opted by other entities.

<comment><USER11> There was time ,maybe a year back, where Microsoft turned out to be one of the Top contributors to Linux Kernel. They had to fix some issue on Linux kernel to run on HyperV

<comment><USER12> _There was time ,maybe a year back, where Microsoft turned out to be one of the Top contributors to Linux Kernel. They had to fix some issue on Linux kernel to run on HyperV_

Let's be very clear on this subject, though: Microsoft was doing it for their own benefit. It wasn't altruism.

</comment></comment></comment></comment><comment><USER13> As expected no Apple. I have always been fascinated how Apple gets a lot of developer love and yet is completely absent in most (all?) conference/event sponsorship, initiatives etc.

<comment><USER14> No Apple fan here, but to be fair they give some apps back (eg: cups)

<comment><USER15> They hired the main developer of CUPS to adapt it for OS X. The license of CUPS ensures they continue to share it - the GPL and LGPL - they even had to explicitly add a licensing exception for Apple's (and other company's) binary printer drivers. I would bet money if Apple had CUPS under a BSD license they would not be sharing their improvements so leisurely.

<comment><USER16> Really? Because they did that with WebKit. They made huge modifications to KHTML and KJS, released them back (admittedly in kind of an amateurish way at the start), and also open-sourced their proprietary component, WebKit, which wraps WebCore and JSCore up in a nice, manageable interface. They didn't have to, but they did.

They also have a lot of contributions to LLVM/Clang, as well as several other open-source projects.

<comment><USER17> Of course they had to share webkit, KHTML and KJS were under the LGPL so they had to. What they didn't have to share was the apps based on top of webkit such as Safari and they didn't share Safari.

</comment></comment></comment></comment></comment><comment><USER18> I hope that OpenSSH developers get some funding too. OpenSSH is clearly a core infrastructure, and they had financial difficulty in the past.

Mozilla Foundation once donated 10K USD to OpenSSH after OpenSSH's call for donation. Not many others did.

<comment><USER19> Are the OpenBSD people still saying that money donated for OpenSSH will be used to develop OpenBSD?

</comment></comment><comment><USER20> OpenBSD is great but it has its own agenda. Linux Foundation does have a Linux in it, maybe that tells something. Plus, Libressl can pull in whatever changes future openssl will have. I think it's a win-win for both sides. I used OpenBSD in the past, but nowadays it's all Linux for everything, from server to desktop to my cellphone.

<comment><USER21> I think the opposite will be true... openssl will be pulling in what libressl does, and it probally not be long before many of the distro's drop openssl...

<comment><USER22> Alternative possibility: OpenSSL & LibreSSL pull from eachother, but OpenSSL incorporates more new features sooner. Banks run LibreSSL- much as they run OpenSSL 0.98 today- and hip new startups that want New Feature X run OpenSSL- much as they run OpenSSL 1.0.1f today.

</comment></comment></comment><comment><USER23> So to get this straight, the Linux Foundation has responded to OpenSSL problems by creating a web page, a committee and are soliciting dollars from sponsors and grass roots?

OpenBSD responds by rolling up sleeves and fixing the problem.

</comment><comment><USER24> I get the feeling that these companies are throwing money at trying to fix the problems (in other projects besides OpenSSL that are fundamental), and not talent/manpower.

</comment><comment><USER25> Their web page says OpenSSL group is their first candidate for funding. It's puzzling that they would choose to fund such a corrupt and incompetent organization over LibreSSL, which is actually fixing the code and ultimately is what will actually be used.

Or maybe it's not so mysterious, the principle companies involved have a long record of benefiting from OpenSSH and never contributing to that either.

<comment><USER26> LibreSSL is a fork for OpenBSD and doesn't have all the functionality of openSSL (e.g., no Windows support), so it's not a given that LibreSSL will actually become the standard. Also, despite the issues with openSSL, there is significant name recognition for it. That means that funding and improving openSSL can potentially lead to a better outcome than funding libreSSL. I mean this in the sense that funding something else (e.g., LibreSSL) could result in a situation where people still use openSSL because they know the name but that the improvements are going elsewhere. Sure, you can say that people should switch, but name recognition can be tough to overcome.

<comment><USER27> I think as long as LibreSSL plans on ripping out the FIPS stuff, it's not going to replace OpenSSL in a huge number of places. Don't get me wrong, I think it's the right decision for the OpenBSD guys, and for the security of the library, but it's definitely going to limit adoption.

<comment><USER16> FIPS support is such a rare requirement (and such an awful one) that I'm willing to bet LibreSSL, once it's 'finished' and buildable on the typical Linux system, will be gladly adopted by pretty much everyone who can. Distros will probably prefer LibreSSL whenever possible, with the exception of Debian, unless the licensing issue can be resolved (which I hope it is because GnuTLS is awful).

The vast majority of people who use OpenSSL don't need FIPS compliance, and LibreSSL will provide them with a more solid, better reviewed, more secure, lightweight, reliable drop-in replacement. It's hard to argue with that.

<comment><USER28> FIPS support will be required by RedHat, SuSE and any other vendor that wants to do business with the US (and many other) federal governments.

If none of the major vendors will ship a non-FIPS certified crypto lib, then where exactly will it get used?

</comment></comment></comment></comment></comment><comment><USER29> Looks like somebody is trying hard to prevent LibreSSL from becoming widely adapted.

> By raising funds at a neutral organization like The Linux Foundation, the > industry can effectively give projects the support they need while ensuring > that open source projects retain their independence and community-based > dynamism.

I somehow can't imagine an organization named "Linux Foundation" to give money to OpenBSD and other non-Linux related open source projects.

<comment><USER30> I think you're over-thinking it. I imagine this was done solely in response to heartbleed itself, not OpenBSD's fork. It's a good charter, I'm happy it's being done.

<comment><USER31> Yes, they've obviously been working on this announcement for a few weeks. You can't get all those big players on board in the time since libressl was announced.</comment></comment></comment>


Why Google Wave Symbolizes the Future for Online Business (by a non hacker) - <AUTHOR> http://www.creativitykilledtherecession.com/?p=351

<comment><USER2> its an interesting point thats made. I do believe that google leaves things available/open to us, the users, because we can build useful thing from their ground work. This in turn might get people to spend more time online and therefore use their money making system even more. so the more free stuff google puts out, the more users build on it and the more google ends up making. S-M-R-T

I also totally agree with the point that todays (well for the history of startups) get-in build a user base and get out really is no way of creating anything sustainable. things will need to change. Great read</comment>


What Next? A Few Remaining Problems in Information Technology (1998) [pdf] - <AUTHOR> http://research.microsoft.com/pubs/68743/gray_turing_fcrc.pdf <comment><USER2> My biggest concern: currently, programming is 10% thinking and 90% plumbing.

Most applications, even in the distributed web-service age, are just about sending data from A to B. Or updating results based on changes of inputs. If we cannot solve these problems in a simple and generic way, then most of our intellectual capacity is lost to basic plumbing work.

And unfortunately, new programming languages and frameworks are not making the tasks fundamentally simpler, only superficially (like reducing the required number of lines-of-code by merely a constant factor).

Another problem I see is that functionality is often duplicated among multiple languages. For example, there's a library for doing computational geometry, written in Python, in C++, in Haskell, in Javascript, etc. This is of course enormously wasteful, and the only thing necessary to solve this is a decent mapping between languages.

In other words, we need better tools to get ourselves out of this mess.

<comment><USER3> This is covered on page 43.

It's too bad the OP is off the front-page already - this is the best thing I've seen on HN in about 6mo. But you're right - we _still_ need better ways of thinking about application design. Bret Victor gets it, because it's a visualization problem, and a pedagogy problem, and a tooling problem, not really a "computer science problem" (a la Scott Aaronson).

This paper ignores "application construction" as a problem, but the existence of Light Table, Swift, Go, React, and so forth underscore the need for better developer tools. (React is particularly interesting as I don't know of anything that good even outside of the web. It's interesting that app design in the browser is eclipsing traditional methods in many ways! I think that's cool.)</comment></comment>


Don't make a moral melodrama out of the migrant crisis - <AUTHOR> http://www.spiked-online.com/newsite/article/dont-make-a-moral-melodrama-out-of-the-migrant-crisis

<comment><AUTHOR> Spiked does have an interesting view of the world, and many people will automatically ignore the publication. So take a pinch of salt to some of the paragraphs - but I think it's an interesting read overall.

The "crisis" is being used as a culture war, I agree and we do use it to show that we have compassion via online media. "here let me RT this photo of a dead child and show that I care". And is has become devoid of the roots of the problem by becoming less political and into something that occurred almost accidentally. I agree with this.

We also do tend to infantalise migrants. They have to be cared and coddled and be treated like children and not the adults with brains, desires, free will and their own opinions.

I disagree with the conclusion of the argument about EU leaders wanting to reduce democracy. That doesn't make sense and smacks of paranoia and the type of viewpoint of Spiked. Overall though it's a good article.</comment>


CRDTs: The Hard Parts [video] - <AUTHOR> https://martin.kleppmann.com/2020/07/06/crdt-hard-parts-hydra.html <comment><AUTHOR> See also automerge [1], discussed at the end. They are currently working on performance improvements [2]. Quoting from the repo, "automerge is a library of data structures for building collaborative applications in JavaScript:

* You can have a copy of the application state locally on several devices (which may belong to the same user, or to different users). Each user can independently update the application state on their local device, even while offline, and save the state to local disk.

* (Similar to git, which allows you to edit files and commit changes offline.)

* When a network connection is available, Automerge figures out which changes need to be synced from one device to another, and brings them into the same state. (Similar to git, which lets you push your own changes, and pull changes from other developers, when you are online.)

* If the state was changed concurrently on different devices, Automerge automatically merges the changes together cleanly, so that everybody ends up in the same state, and no changes are lost. (Different from git: no merge conflicts to resolve!)"

[1] [https://github.com/automerge/automerge](https://github.com/automerge/automerge) [2] [https://github.com/automerge/automerge/pull/253](https://github.com/automerge/automerge/pull/253)

<comment><USER2> It's hard enough getting your own code to run and work correctly. When would this be a useful development paradigm?

<comment><USER3> Realtime collaboration on documents (e.g. source code, rich text editing, etc).

<comment><USER4> When I edit code it's broken most of the time. It wouldn't make sense to collaboratively break it in various parts for other people...

<comment><USER5> I have done remote pair programming many times though and in that case it's perfectly ok, because you're communicating with the other person/people and can let each other know if you will break something.

For that use case, I can see this being very useful.

</comment></comment></comment></comment></comment><comment><USER6> "Data laced with history" (2018) [1] is very relevant here. Interestingly, that extensive post obsessively vivisects RON 1.0 (Replicated Object Notation [2] as of 2017) which was based on columnar compression techniques Automerge recently implemented (53:24 in the talk).

Columnar formats have their upsides and downsides, though.

[1]: [http://archagon.net/blog/2018/03/24/data-laced-with- history/](http://archagon.net/blog/2018/03/24/data-laced-with-history/)

[2]: [http://replicated.cc](http://replicated.cc)

<comment><USER7> It's worth noting that you are the author of RON :)

<comment><USER6> ... and working hard to release the new version. Hearing the fuzzer buzzing as we speak...

<comment><USER8> Are there changes coming to RON that aren't currently mentioned on [http://replicated.cc](http://replicated.cc)? Any clues as to what they might be?

<comment><USER6> I think, the new RON oplog is the biggest change.

</comment></comment></comment></comment></comment><comment><USER9> Does anyone take issue with the fact that CRDTs seem to require keeping a history of every change ever made to the document?

Seems like it could get unwieldy very fast. Especially, in the face of a bad actor spamming a document with updates.

I've considered using CRDTs in a few projects now, but the requirement to keep a running log of updates forever has ruled them out. I've ended up using other less sound (more prone to failure), but more practical methods of doing sync.

Perhaps, I'm missing something. Wouldn't be the first time.

Are there alternatives without this requirement, or that would at least allow a cap on the update log?

<comment><USER10> > I've ended up using other less sound (more prone to failure), but more > practical methods of doing sync.

Could you share the alternative methods that you've used?

<comment><USER9> Stuff like diffing multiple json documents and merging adds, updates and deletes where conflicts did not exist and overwriting conflicting attributes based on timestamps (latest wins). There's some reasonably good jsonpatch libraries out there that will do the heavy lifting.

Plenty of room for problems to arise, but it did not require keeping a log of updates. My use cases did not require real-time collaboration and the structure of the document was known beforehand, though.

<comment><USER10> Got it. I've typically seen Operational Transforms brought up as the alternative to CRDT for real-time collaboration. But, if you don't need to solve for that use case and the format is JSON, it's a different problem to solve and you don't need that journal of changes.

If you have code available in the public domain, I'd love to see it.

</comment></comment></comment></comment><comment><USER11> There was a recent post of a series that dives into CRDTs [1] . Someone linked to a paper, _Chronofold: a data structure for versioned text_ [2] dated this April, that attempts to map CRDT semantics onto text editing. It's still on my list.

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

[2]: [https://arxiv.org/pdf/2002.09511v4.pdf](https://arxiv.org/pdf/2002.09511v4.pdf)

</comment><comment><USER12> This spawned an idea, which I feel a need to post.

It seems the hard part about CRDT is choosing the correct commutative function, as merging two operations in line with user intent is non-trivial. Would it be possible to use a combination of superposition (Please correct me if this word is wrong) and pruning to derive user intent?

The idea being that instead of combine being (A, A): A (A commutative semigroup), couldn't we represent the operation as (A, A): Set[A] and have a way of showing the user set results in a way that their next operation shows us the "correct" interpretation.

He's doing this implicitly with the file tree example, wherein operations that don't create trees usually defy user expectations (Symlinks aside), so he decides to prune those choices from the result Set[A] before introducing a heuristic to further prune the set. There's still an issue of users having opposite intent, but at that point it just seems like we need to introduce "Set pruning" or "Superposition collapse" operations as a user-level primitive and then rely on recursion to resolve the possible nesting of these result sets.

Does this riff with anyone / does anyone have further thoughts on this formulation?

<comment><AUTHOR> This sounds similar to the concept of a "multi-value register" [1] I've seen in a few places while reading about CRDTs the last couple days. Is that what you're looking for? The idea is that each process maintains a vector clock with the latest timestamp from all other processes, and we don't delete values until one version can be verified to be "later" than all the others.

[1] Section 3.2ish of [https://hal.inria.fr/inria-00555588/document](https://hal.inria.fr/inria-00555588/document)

<comment><USER12> This was 100% the path I think I was traveling (Thank you for the link). I had a hard time grocking the complete specification from the paper, but the README of this repository that implements CRDTs in that frame was helpful [1].

The core part is separating the "merge" from the "resolve" state. Merging state can be done in a variety of ways, so in the default formulation there seems to be a focus on making the "merge" operation also "resolve" to only one value, when really there could be multiple formally valid merges that the client may desire (Which is part of the difficulty that the video notes as he proposes a variety of possible file system mutations for a set of two uncoordinated operations).

The cleanest clarification of my thought process is similar to the following:

Given the operation Merge(4, 2), I could propose that there are two valid ways to perform this merge, addition and multiplication. This means the result would be either 6 or 8. The act of returning a single value (6 or 8) changes that proposal into a statement, though, which is the "resolve".

One subversion of this restriction is to return a set of all possible results for the operations we think are valid, so {6, 8}. At this point, the user can say (Either explicitly or implicitly) "I actually want 6" and we resolve it to the single value of {6}. There are also special cases like Merge(2, 2), where this whole situation is especially ergonomic because the merge operations are equivalent.

There are problems, of course, with this approach.

One issue is the need to categorize all possible operations the user may think are valid for Merge(4,2). If the user intended to do division, the result set proposed above will not include the state that they would expect. Still, this seems more general now, as we just need to gather the set of operations that the user may think are valid instead of assuming which one is valid. There's also a ranking problem that then exists at the UX level, as we need to find a way to cleanly propose this set of alternatives.

Another issue is, of course, exists if both users propose conflicting resolutions (Actor1 says "I want multiplication" and Actor2 says "I want addition"). This is the issue with decoupling the "merge" and "resolve" steps, as now we may cause a fork in the model which causes a fundamental divergence of the collaborator's data.

[1] [https://github.com/rust-crdt/rust-crdt](https://github.com/rust- crdt/rust-crdt)

</comment></comment></comment><comment><USER13> From my (admittedly very limited) experience implementing CRDTs it became clear that even technically correct is not good enough. Optimistic merge strategies require a very clear understanding of user intent and expectation.

Properly consistent can still mean utterly confusing.

<comment><USER3> Exactly that which is pushing many people away from CRDTs despite them being mathematically proven true, and towards Operational Transformation.

<comment><USER14> OT is just a fancy name for a CRDT.

<comment><USER15> No, it isn't.

</comment></comment></comment></comment><comment><USER16> First off, this is an excellent talk. The presenter explains the different topics in a way that even a layman like me can easily follow along. The compression scheme he presents at the end seems very interesting as well.

I do wonder if in practice OT isn't a simpler solution for most applications. He mentions the differences in the beginning of the presentation and the main advantage of CRDTs is that they don't need a central server. It seems to me that for e.g. a web app you have a central server anyway so all the extra complexity of CRDTs isn't needed. I know almost nothing about this though, so would love for someone more knowledgeable to explain why I might be wrong.

<comment><USER17> For single server/database web-apps, CRDTs might be useful because they allow offline edits, and (to me at least) they are simple to understand and implement. OT does allow offline edits too, but (I think) has poor performance if there are many offline edits.

For multi server/database web-apps, CRDTs might be useful because they reduce the centralization required for collaboration, and increase the fault tolerance. In a load balanced web app, different clients could connect to different servers/databases and stil achieve eventual consistency when those back-end systems sync up. If any of those systems go down, in theory traffic could be routed to other systems seamlessly.

</comment></comment><comment><USER18> I recently shared a thread [1] on Twitter with CRDT resources I found useful if you're interested in that kind of thing.

[1] [https://twitter.com/ollermi/status/1279067350269124609?s=21](https://twitter.com/ollermi/status/1279067350269124609?s=21)

</comment><comment><USER19> CRDTs are great examples of what the NoSQL movement called Eventual Consistency. I never understood why this movement assumed that abandoning ACID-style consistency automatically gave you Eventual Consistency.

As a side question, have any new algorithms been developed over the last decade that have significantly improved automatic source branch merging?

<comment><USER20> Eventual consistency and ACID are not at odds, you can have one or the other or neither or both.

<comment><USER21> Not true. Eventual consistency can not (provably) provide consensus.

<comment><USER22> sure it can! A particle can be _either_ this or that until someone looks at it, and when they do, the act of looking at it causes the state to collapse and propagate. Sure, a partitioned group may come to alternate realities before they reunite, but then you just get to do the same thing again! Like Conways Game of Life, except with application state.

(I am joking of course)

</comment></comment></comment></comment><comment><USER23> If anyone is interested, I've been trying to think about the problem of moving ranges in a list-structured CRDT for a couple of weeks now for a side project, and I've got a candidate that seems to satisfy the most obvious constraints. I'd be really interested in any feedback / holes you can poke in my solution!

Rough notes are here:

[https://docs.google.com/document/d/1p1K3sxgKGYMEBH72r-lnP9Gn...](https://docs.google.com/document/d/1p1K3sxgKGYMEBH72r-lnP9GnBm5N15h77C81W15kPiE/edit?usp=sharing)

<comment><USER24> This is interesting! I've been looking for a good sequence crdt to implement in my Rust CRDT toolkit [0], which is still very much a work in progress but I want to make it really useful. Do you know how this compares to yjs [1]?

[0]: [https://github.com/anchpop/crdts](https://github.com/anchpop/crdts) [1]: [https://github.com/yjs/yjs](https://github.com/yjs/yjs)

<comment><USER23> I hadn't looked at yjs; I'll check it out! [edit: It looks to me like yjs is much more flexible than my design here, but doesn't include an ability to move ranges of lists to different locations]

Darn, and just after I'd implemented it myself in terrible beginner Rust! I might get started reimplementing it using your tool :)

</comment></comment></comment><comment><USER25> What an excellent talk, many thanks.

One idea comes to my mind (a bit out of topic): as we can store the complete editing history in a document (even including mouse movements) with a fairly small overhead using the ideas of automerge, would this be useful for distinguishing texts that are generated by machines and by humans? Or to detect plagiarism?

<comment><USER26> I wrote the realtime sync and edit history code in cocalc.com, which is used by instructors to teach courses that use jupyter notebooks with realtime collab. Instructors do regularly suspect and diagnose instances of cheating by students due to us storing the complete edit history. We don't automate this - it's more that they are grading, get suspicious, and use the edit history manually to investigate further.

</comment></comment><comment><USER27> I thought about this once and came to the conclusion that the problem doesn't exist: Anger is the only thing you can accomplish by typing letters into the sentence I'm writing. If the goal is not anger but to write text only one person can write a sentence at a time.

The solution then becomes really simple: You insert your cursor where you want to edit. You wait for the text and/or background of that paragraph to change color. Light green would do nicely.

Other users will see that paragraph turn red.

The paragraph is now under your control. If someone else desires to edit a sentence in YOUR paragraph that sentence changes color again and the side bar displays a dialog allowing you (the owner) to 1) hand over the paragraph to the new author, 2) hand over only that sentence or 3) ignore the request.

Dumb software wins!

<comment><USER28> That falls apart as soon as the author with the locked paragraph leaves the document open while they're doing something else, preventing others from editing.

<comment><USER29> Or if network connectivity isn't guaranteed.

<comment><USER27> I really don't get it. You want to add thousands of lines of code and complex data structures with tons of edge cases so that I can interrupt you while you write??? It's just not desired functionality. Poor network connectivity is not an excuse to break your workflow.

You simply do not assign 2 people to a task that can only be done by a single person.

It is like a system where 2 people can poor coffee into the same cup at the same time. We deal with the cup overflowing with some drainage (marvel at our creation of course!) but then 12 people put sugar in the cup. Solution: we overflow the cup further to dilute it! We solve the mobility issue by spilling a bit more coffee out of the cup and whip the bottom with just the right type of towel or napkin. The only problem that remains is both drinking from it at the same time.

</comment></comment></comment></comment><comment><USER30> Hmm. Does anyone know of a transcript? I can't watch right now, only read.

I wonder if there's some free YouTube transcription service... even just showing the captions would work.

Oh, hm. It's not on YouTube anyway.

<comment><AUTHOR> Actually, the video on the page is a YouTube embed and the English captions are pretty good (although understandably it struggles with CRDT jargon).

I found that the last 4-5 references listed in the link are pretty accessible, and most of the diagrams from the talk are taken from one of the papers by Kleppmann.

</comment></comment><comment><USER8> Great talk! I look forward to diving into "Interleaving anomalies in collaborative text editors" to see how Kleppmann et al fixed the RGA interleaving issue.

The section on moving items in a list makes my mind jump to Causal Trees (≈RGA). The problem here is that a) we need the concept of a list bucket or slot, and b) we also need to preserve the sequential integrity of runs of items as in text editing. In CT/RGA, each letter/item is simultaneously a list bucket and its contents. I wonder if this problem could be solved by adding a "reanchor" op that moves the "contents" (and some/all children) of a letter op to the "bucket" of another letter op?

Each reanchor op would have the job of "moving" a subtree of text to a new parent bucket. (Under the hood, the subtree would obviously remain topologically unchanged for convergence purposes, but the reanchor op would inform how the tree is parsed and turned into a user-visible list or string.) First, the reanchor op would need to reference the start and end letter/item ops in a given subtree; and second, the reanchor op would need to reference the letter/item op into whose bucket the subtree contents will be moved. If the set of subtrees for a range of text/items contains multiple independent subtrees, they would each need their own reanchor op. Concurrent moves of the same subtree would be resolved as LWW, similar to the Kleppmann proposal.

Let's say you have a graph for string "ABCD" that looks roughly like this, sans metadata:

            +---+
            | A |
            ++-++
             | |
          v--+ +--v
        +---+   +---+
        | B |   | C |
        +---+   +-+-+
                  |
                  v
                +-+-+
                | D |
                +---+

If you wanted to move "CD" after "A", you would add the following op:

            +---+
            | A +<</comment><comment>---+
            ++-++          |
             | |           |
          v--+ +--v        |
        +---+   +---+      |
        | B |   | C +<---+ |
        +---+   +-+-+    | |
                  |      | |
                  v      | |
                +-+-+   ++-++
                | D +<--+ m |
                +---+   +---+

"m" references "C" and "D" as the subtree range, and "A" as the target bucket. The string would render as "ACDB".

We can get cycles with this scheme, but as far as strings or lists are concerned, this doesn't actually matter, since the parent references aren't reflected in the output (as they would be with an explicit tree data structure). If, concurrently to this, another device wanted to move "A" after "C", the merged graph would look like this:

        +---+   +---+
        | m +-->+ A +<</comment><comment>---+
        +-+-+   ++-++          |
          |      | |           |
          |   v--+ +--v        |
          | +---+   +---+      |
          | | B |   | C +<---+ |
          | +---+   +-+-+    | |
          +</comment><comment>---^ |      | |
                      v      | |
                    +-+-+   ++-++
                    | D +<--+ m |
                    +---+   +---+

How does this get resolved? Well, we can simply read this as "move the contents of 'A' to the bucket for 'C', and move the contents of subtree 'C' through 'D' to the bucket for 'A'." The string would consequently render as "CDBA", as we would expect.

This is just a sketch, not sure if it would actually work in practice. Pain points are a) moving multiple subtrees in a somewhat atomic way (when the range to be moved covers more than a single run of items), b) sane results when overlapping ranges are moved concurrently, c) moving items to a bucket whose contents had already been moved before, and d) parsing performance, especially given the fact that we'll now have ops (and their children) whose contents might end up in arbitrary places in the output string or list. Might just end up with a slow, confusing, and labyrinthine data structure.

There's also the question of intent: does the user want to move a range of items to the slot currently occupied by a different item, or do they want to move that range to the right of that item? Lists of notes will want the former, while strings will usually want the latter. Perhaps the reanchor op could explicitly differentiate between these two cases.

<comment><USER31> Interesting idea, but the devil is in the details. Especially two concurrent moves of partially overlapping ranges of characters is a tricky case to handle, and it is not obvious to me how your scheme would deal with this.

Another fun case is two concurrent range moves in which the destination of the first move falls within the second move's source range, and the destination of the second move falls within the first move's source range. How do you handle this?

I expect that any algorithm solving this problem will need a formal proof of correctness, because it's very easy to miss edge cases when using informal reasoning.

</comment></comment><comment><USER32> Incidentally, Martin's book ("Designing Data-Intensive Applications") is excellent and highly recommended reading. If you find yourself saying things like "this database is ACID compliant", "we have an SQL database with transactions, so we're fine" or "let's just add replication to Postgres and we'll be fine", you need to read this book.

<comment><USER33> > If you find yourself saying things like "this database is ACID compliant", > "we have an SQL database with transactions, so we're fine" or "let's just > add replication to Postgres and we'll be fine", you need to read this book.

can you elaborate why? are these sentences fundamentally wrong? they dont appear so.

<comment><USER34> The entire book is about when and how these statements turn out to not be absolutely true. And it's not a short book. I don't have my copy in front of me right now, so I won't get into specifics. But I consider it one of the most important books I've read, if only for making me realize how difficult it is to get distributed systems correct. Or, rather, learning that getting distributed systems correct is impossible and what sort of tradeoffs you can make in order to keep things mostly working.

And it turns out that most services that I find myself working on these days are distributed systems, so having a healthy respect for all the ways things can break is a useful place to be.</comment></comment></comment>


Some celebrities are ditching Twitter for Community - <AUTHOR> https://www.fastcompany.com/90439032/why-your-favorite-celebs-are-ditching-twitter-for-an-app-youve-never-heard-of <comment><USER2> Am I incorrectly remembering that Twitter (Twtr) v1 was primarily to share tweets via SMS text messages? Hence the limit of 140 characters (+20 for the username to be added to the message)?

Is this just the wheel gone full circle?

<comment><USER3> Platforms limit reach of participants with large audiences, in order to encourage them to buy ads.

Participants move away and build their own platform.

Advertising ruins every platform. Just look at Google even, a darling of the early 2000s.

</comment></comment><comment><USER4> Whoever uses it now must have shares.

</comment><comment><USER5> This company is a huge VC darling. Take it with a grain of salt. Once your texts become a noisy comms channel itll get rough.

</comment><comment><USER6> We're only being told to increase shareholder value.

</comment><comment><USER7> Eh PR bs

I've had stuff published on fast company, even ghost wrote some myself

<comment><USER8> I always thought it was funny seeing articles of unlikely-to-succeed VC funded startups and random corporate comms

[https://www.fastcompany.com/company/wework](https://www.fastcompany.com/company/wework)

[https://www.fastcompany.com/3057415/adam- neumanns-16-billion...](https://www.fastcompany.com/3057415/adam- neumanns-16-billion-neo-utopian-play-to-turn-wework-into-wewo)

</comment></comment><comment><USER9> Are they planning to give them numbers for every country inn the world for all the phones? International texts can get expensive really quickly

<comment><USER10> If you send them at scale it's almost free. What you as a consumer pay for sending text messages has no relation to the cost whatsoever.

Remember that you can send and download enormous files from all over the world for free, and these are just less than 140 byte packets.

</comment></comment><comment><USER11> What I find fascinating about this is how easy (and simultaneously difficult) it's going to be for FB and Twitter to copy this.

This channel will remove my only remaining use of these platforms.

<comment><AUTHOR> One of the reasons for moving away from fb is that those with followers end up having to pay to get their posts shown to followers. When you follow someone on fb you expect to to see all their posts, but in reality fb has skewered the algorithm so only a tiny percentage will see the updates. It's probably easier for a band/celeb to pay a flat fee to use something like community instead.

</comment></comment><comment><USER12> It's a fan club. Over SMS.

</comment><comment><USER13> I am not sure I understand. The whole point of social media is that you don't have to talk to people one-on-one and waste time. I literally have no clue what "community" is trying to solve. There is no way that people with a large community will have any meaningful interaction with their followers.

<comment><USER14> Maybe I'm just a cynic but I don't think a celebrity would actually want meaningful interaction with followers, unless it was with minimal extra effort, just to have their fans think that.

I've been surprised for some time that celebrities just default to the major platforms rather than band together and build platforms that work for them - purpose built to engage with fans efficiently, monetise (Patreon-style member posts, subscriptions, sales, paid downloads and so on).

I know Instagram and co have special modes for those with large audiences, but I'm talking about something built from the ground up to serve the creator or celebrity. Sounds like hell to me, but there are loads of fans who would lap it up.

<comment><USER15> I think part of the appeal is the fiction that you are in some sense "friends" with the celeb. Sure its obviously not true; In many cases celeb probably doesn't even operate the account. But if they moved to a custom site, it takes away all pretense of you being a celeb's "friend".

</comment></comment></comment><comment><USER16> Someone should do this for indie bands...

<comment><USER17> How would this be any different then Community.com? Do you imagine a group chat with the band members or something else?

<comment><USER18> You could have a themed page with a music player, fans could post their own profiles and friend each other, pick their top 8 friends, one of them is Tom,

<comment><USER19> We could call it BandSpace...

</comment></comment></comment></comment><comment><USER20> why not signal?

</comment><comment><USER21> Do people really join twitter to follow celebrities? It's the commentary by the "unwashed masses" that makes it worth it to me.

<comment><USER22> Twitter contains multitudes. It reminds me of nothing so much as high school, except expanded out a thousandfold, with innumerable cliques and circles that swarm and combine. And some serendipitous incongruities when the streams cross and the mutuals encounter one another, sometimes.

</comment></comment><comment><USER17> What is the monetization method of Community? Do they charge the celebrities who are using it?

They say in their faq they aren't data mining, using ads, or charging the fans.

<comment><USER17> Yeah that's it on the blog it explains. The celebrities pay to use it. It's a cool model

<comment><USER23> (In case this gets deleted)

Grandparent post:

> What is the monetization method of Community? Do they charge the celebrities > who are using it? They say in their faq they aren't data mining, using ads, > or charging the fans.

Parent post:

> Yeah that's it on the blog it explains. The celebrities pay to use it. It's > a cool model

Both posts made by the same (brand new) account.

This is some of the laziest astroturfing on HN I've ever seen. You didn't think we'd see though this?

<comment><USER15> My fave bit is the "its a cool model" as if charging your customers money to use your product is a new and unique bussiness model.</comment></comment></comment></comment>


JavaFX Mobile: a new smartphone OS contender - <AUTHOR> http://www.pikesoft.com/blog/index.php?itemid=174 <comment><USER2> R.I.P Flash Lite.

<comment><AUTHOR> If they brought the power of apollo to mobile then they would stand a chance.</comment></comment>


Ask HN: Dynamic Subdomain Host? - <AUTHOR>

I'm building a webapp where users will receive a subdomain where their app will live,
usercompany.ourapp.com
Any good recommended hosts? We have a private server with Dreamhost that might work, but ugh, I don't want to go with dreamhost. <comment><USER2> freedns.afraid.org?</comment>


Retention is King - <AUTHOR> http://andrewchen.co/2014/06/03/retention-is-king/

<comment><USER2> My favorite thing about retention is the leverage it gives you. My favorite analogy is the "leaky bucket": You have bucket with holes in it. It's not holding water. You can pour water in as fast as you can and you might be able to get growth... But as soon as you stop, the bucket begins to leak out.

Or you can plug holes. Make users happier. Work on re-activation. Give value.

If you work on top-of-the-funnel stuff (more water) FIRST and then try to solve retention second, there's a lot of waste. You've leaked users. You've created a group of folks who don't talk enthusiastically about your product.

If you work on retention first, all subsequent marketing efforts are more powerful. Word of mouth is more powerful.

<comment><USER3> The caveat is that you do need to work on top-of-the-funnel up to a certain point or else you won't have any users to retain or you won't be able to measure the results of your retention efforts.

<comment><USER4> Yup, need to pour enough water to find out all those leaks.

</comment></comment></comment><comment><USER5> Love the way as you read the article you see this big modal slide down in front of your face and you have to figure out how to get rid of it. There is a tasteful way to do this and this is not one of them. Retention fail.

<comment><AUTHOR> Hey, not sure what modal you're talking about (afaik I don't have one anywhere) can you specify?

<comment><USER6> Here is what popped up as I was scrolling through the post (zoomed) on my phone:

[http://i.imgur.com/gSUNzUU.png](http://i.imgur.com/gSUNzUU.png)

Here's what it looks like zoomed out:

[http://i.imgur.com/mTPE6uH.png](http://i.imgur.com/mTPE6uH.png)

Didn't really bother me as much as the parent though.

<comment><AUTHOR> Oh weird, I'll let Andrew know that it would probably be best to turn that off on mobile. Thanks.

<comment><USER7> No, just turn it off, period. If I want to subscribe I'll find the link. If I'm marginal, the modal will make sure I never come back.

<comment><AUTHOR> That is simply wrong, the modal will increase email acquisition which will increase retention every time. The HN crowd always hates this but its true.

<comment> squeaky-clean It's a wonderful way to get people to leave your site immediately. It showed up before I was even a paragraph into the article. First off, I have no idea if I even care to get updates from you guys at that point, because I haven't read anything yet. Secondly, I ended up not reading anything, because as soon as it pops up, I left, as I'm sure the majority of other readers did as well.

I only came to the comments to make sure someone pointed out how awful that dialog is.

<comment><USER8> _It 's a wonderful way to get people to leave your site immediately_

So true. As soon as I saw it I backed out, and it leaves a really bad impression. Let me reveal something important: _I just want to read the post._ That's it. Simple, right? You'd think bloggers would be able to figure this out.

</comment></comment></comment></comment></comment></comment></comment></comment><comment><USER9> I'm starting to question the value of the strive towards increased retention, at least for the industry I work in. My employer is a rather successful webshop and as anyone else in the same business we hire in loads of third parties to help increase visibility, conversion and retention.

An article, which I sadly can't find again, had a quote from a customer that really made me think about this. The article was regarding not requiring users to signup before buying a product and the quote was something like "I'm not look for relationship with your site, I just want to buy something". For us, the customers that have a "relationship" with us is the first bunch of people I would drop, given the chance. They are the ones taxing customer service the most, they have the most complicate wished and while they might be your ambassadors, they will also stab you in the back.

For companies that ships actual goods, retention is not worth wasting money on. It's better to try to reduce your prices and cost. Be extremely visible on search engines and price comparison site and treat every customer as a new customer. If someone shopped with you before and had a positive experience they might choose you over a similar prices competitor, but price is king. Well... Price and deliverability.

As for online services retention makes sense of cause.

<comment><USER10> The article you're looking for is here: [https://www.uie.com/articles/three_hund_million_button/](https://www.uie.com/articles/three_hund_million_button/)

<comment><USER11> It's very sad that such a large amount of users don't have the attention span to deal with a simple register/login field.

<comment><USER12> I already have probably hundreds of registrations on sites I cannot be certain about the security of.

I would like to reduce that number.

<comment><USER11> They could just use google login

<comment><USER12> I said reduce. Why would I want a Google login tracking me about the place?

</comment></comment></comment></comment></comment></comment><comment><USER13> This sounds like a fancy way of saying focus on the product first. All the tricks in the world can only last so long if the product isn't a winner. On the flip side, if you have (and can maintain) the best product then it's only a matter of time until the world figures it out (except in a few winner-take- all-markets like online auctions).

EDIT: PG has also nailed this concept, with his "well" analogy in [http://www.paulgraham.com/startupideas.html](http://www.paulgraham.com/startupideas.html).

</comment><comment><USER14> Tom Tunguz wrote my favorite article on churn. If you're interested in the subject of retention, read this and get where he's coming from with the numbers. He's a quant guru!

[http://tomtunguz.com/churn-fallacies/](http://tomtunguz.com/churn-fallacies/)

</comment><comment><USER15> This is an excellent post. Have definitely learned some of these lessons the hard way recently. This line particularly resonated with me:

"If you have high retention and no virality you will sustainably grow your user-base over time. If you have high virality and no retention you will not."

<comment><USER16> You can still make a lot of money off high virality and no retention. You just have to recognize it for what it is: a cash grab rather than a sustainable business.

<comment><USER17> My thoughts exactly as I read the article. Some purposefully push retention to the side, looking to make the money big and fast rather than sustainable customer group.

</comment></comment></comment><comment><USER18> > Do not focus on improving virality unless your overall retention is stable

The same logic applies to monetization as well - there's (usually) no sense trying to improve your monetization if your retention sucks.

</comment><comment><USER19> I look at retention in a similar way (for an online university). As for the growth model related here, I would suggest using a traditional survival analysis instead, which is conceptually simpler and accounts for whether or not some users are still active (right censoring). There are also many packages ('survival' in R, for example) which have the algorithms programmed (both simple Kaplan-Meier and multivariate Cox PH) and decent visualizations.

</comment><comment><USER20> There's a sweet irony here in that it's a guest post by somebody who hyperlinks to their website with google analytics tracking (likely for lead gen) but discusses why retention is more important than acquiring users. Oh and it's posted by the guest author.

Not that there's anything wrong with that or that the article itself is bunk in any way - just that it's ironic.

</comment><comment><USER21> As a customer, I've always felt that companies that have a lot of advertising (eg, certain insurance and banking companies), are wasting their current customers' money. Just stop to think how much a TV ad costs, then think about why the company you have your mutual fund with has to charge so much for "management and overhead". Car insurance premiums went up? But the little lizard on TV said they were the cheapest!</comment>


Technical Co-Founder Wanted - <AUTHOR> Just need a technical co-founder for a building a travel search engine unlike any other that is built so far. Something that will save people a ton of time and cash. If you have the skills and the entrepreneurial spirit to take on the journey then let's talk. Contact me through email@example.com to arrange a Skype meeting. <comment><USER2> You should add what you're contributing. E.g. what your marketing budget is, how much market research has been done, your skill, if you have valuable contacts in the respective industry.

</comment><comment><USER3> How does your concept compare in SWOT analysis against existing models/systems? (ie. Kayak)</comment>


Germany is first major economy to phase out coal and nuclear - <AUTHOR> https://abcnews.go.com/International/wireStory/germany-finalizing-plan-phase-coal-energy-71591216?cid=clicksource_4380645_13_hero_headlines_headlines_hed <comment><USER2> Absurdly terrible reporting.

Headline: _Germany is first major economy to phase out coal and nuclear_

Present tense. It's already happened.

Reality:

 _Bills approved by both houses of parliament Friday envision shutting down the last coal-fired power plant by 2038_

Target of 2038.

Also reality:

[http://www.powerstations.uk/coal- countdown/](http://www.powerstations.uk/coal-countdown/)

UK on track to shut down last coal power station by 2025, more than a decade earlier than Germany's target and only five years from now. There are only 4 left today so that's a shutdown of about one per year. This is not a legislative goal but rather an engineering reality of those plants reaching their max lifetime.

The UK already goes long periods without burning any coal at all:

[https://www.theguardian.com/business/2020/apr/28/britain- bre...](https://www.theguardian.com/business/2020/apr/28/britain-breaks- record-for-coal-free-power-generation)

But sure, Germany is the first major economy. Whatever, ABC News.

</comment><comment><USER3> By all practical measurements of safety and cleanliness, nuclear is extraordinarily clean, safe energy yet it keeps being attacked ferociously and without good reasoning. It's tiresome to see when one considers just how much potential it has in terms of usable fuel supplies and possible near future innovations.

<comment><USER4> I kind of agree with you, wind energy on land influences our ecosystem more than nuclear energy - nonetheless there is more tangible pollution by nuclear power plants. Additionally one (parliament) may has to justify a power plant since there is a responsibility to neighbouring countries and the ecosystem. Nuclear energy _always_ implies a risk. The demand on energy is always increasing and such a power plant works in proportions which are not conceivable for us citiziens.

I am proud of my nation: We shifted our values - we rated our ecosystem higher than competitive advantages.

<comment><USER5> > nonetheless there is more tangible pollution by nuclear power plants

I'm struggling to see this. Do you mean uranium mining?

The pollution associated with the rare Earth metals to build a turbine is a magnitude greater.

<comment><USER4> I am referring to the waste associated with the operation of the power plant as such. There is propably a break even point in terms of pollution where nuclear power plants fail in comparsion to alternative power sources.

</comment></comment></comment></comment><comment><USER6> " Bills approved by both houses of parliament Friday envision shutting down the last coal-fired power plant by 2038 "

<comment><USER7> "This can be the next governments problem"

</comment></comment><comment><USER8> >first major economy to phase out coal

just after we strip mine this ancient forest over there [https://www.bloomberg.com/features/2018-hambach- forest/](https://www.bloomberg.com/features/2018-hambach-forest/)

</comment><comment><USER9> Power in Germany costs 3-6x more than I pay in St. Louis, depending on time of year. Russian natural gas is expensive.

</comment><comment><USER7> We wills top killing animals for their meat, by 2135, so we can all chill out now.</comment>


Ask HN: How should I go about developing an html widget? - <AUTHOR> So I am thinking of developing an html widget that can be added to any web page (similar to the way sharethis is added but will only display data, no posting). Just a few questions if anyone can help: 1) The widget will fetch data you enter on my website based on a unique code. Shall I return the whole html structure from my site? Or shall I build it on the client site? I want to prevent someone overriding my classes, so I was thinking inline styling or changing the class name on every regeneration of the widget. 2) Was thinking to give it for free and only charge a yearly subscription to remove the logo, or be able to add custom colors etc. What do you think? How does sharethis or other widgets monetize? 3) There should be some transformations as well so some plain javascript will be included. Shall I wrap it in an iframe? Or just call a cdn js file on my site? <comment><USER2> CSS is all client side. Inline CSS can be overridden. Besides if I'm adding some 3rd party widget to my site I would want to be able to integrate it with the look and feel of my site. Embedded iframes are just ugly and most any modern web developers are not going to want to have to deal with an embedded iframe. That's like some old HTML4 stuff. Same goes with randomizing CSS via JS. I'm not going to want a bunch of crazy CSS injected into my webpage. What would this widget do? It would have to be one hell of a widget for me to pay a subscription fee for, especially when I just could make an equivalent on my own. The other consideration is the server side setup. What happens if your server goes down or get overloaded? Your users are going to either have slow load times or a broken element. That's a good way to lose a customer, especially if it's a businesses site. Your best bet for monetization is make it a Wordpress or some other popular CMS plugin and add some slick features for the paid version. There's already a market there for things like widgets.

<comment><AUTHOR> How about generating the html on site (without even signing in), so they could copy it over to their site then? That will mean they will have to come back to the site to generate new html (similar to wufoo). Maybe the paid feature could be creating a paid account to not reenter the data each time. I can't reveal too much regarding the actual widget but I believe is something many businesses will need.

</comment></comment><comment><AUTHOR> Anyone?</comment>


How to join Facebook without giving up all of your and your friends' privacy - <AUTHOR> http://paul.henrich.me/posts/2015/02/facing-facebook.html

<comment><USER2> Reading this is making me want to delete my Facebook account -- again -- even though I basically don't use it currently and it has next to nothing in it. Wow.

</comment><comment><USER3> Good tips, but one (or more) of your friends probably already uploaded their phone's address book to Facebook, so as careful as you are - social sites likely know more about you than you personally provide.

</comment><comment><USER4> Regarding the apps, however, I'd argue that the PrivacyGuard functionality of ClockworkMod and so on can severely restrict their "spying" functionality as far as making it unusable.

<comment><AUTHOR> Interesting, thanks. I've been hoping that Google will overhaul the permissions system for Android (most people won't install a fork) to make it more granular/at time of access.

</comment></comment><comment><USER5> HTTPS for the blog itself?

<comment><AUTHOR> Thanks. It's high on my priority list. I want to make sure I do it right. I ended up launching the blog without it because the first commit in that repo was like 2 years ago and it just sat on my disk until last month.

</comment></comment><comment><USER6> Firefox allows multiple profiles; I have one named "Facebook" that I don't use for anything but Facebook.

<comment><AUTHOR> Interesting idea. Chrome has this too.

<comment><USER7> There are enough (good) browsers out there, that you can just dedicate one of them to those services which are intent on sucking up all your personal habits. Makes it easy to not confuse the issue as well.

</comment></comment></comment><comment><AUTHOR> A family member who was wary of facebook asked me how to join facebook while maintaining a semblance of privacy, so I wrote this. Tried to make it accessible to someone with average computer skills.

As an aside, I joined facebook to write this, and I was blown away by how good facebook's recommendations for friends were, presumably just based on other people's uploaded contacts (Facebook made me confirm a phone number).

<comment><USER8> Just because you opt out of letting Facebook (or Linkedin) see your contacts, does not mean your contacts have done the same thing.

e.g. If you are email@example.com, and others have email@example.com in their address book and they let Facebook see it, they've got you already.

For this reason I use a dedicated email address for each social media account.

Also, while I'd normally recommend 2-factor authentication, giving these guys your phone number is a really bad idea if you value your privacy. Try to limit it to firstname lastname and one throwaway email if at all possible. If you're really paranoid, you can get a VOIP gateway that supports SMS for fairly cheap, certainly for cheaper than buying a burner phone.

<comment><AUTHOR> Yeah, I should have mentioned I set up a new email account for this. But, I wanted to write up this guide so I acquiesced when they asked for my phone number.</comment></comment></comment>


Agile Development in Banks - <AUTHOR> https://news.efinancialcareers.com/uk-en/3001600/agile-development-jobs-banks <comment><USER2> Naming a methodology and trying to sell its merits is only a way to get the contract but it's not going to make the final product any better.

In my experience, using buzz words and selling the methodology are the only things that can get a proposal past the first stage of acceptance.

Let's be honest, bankers don't understand anything about software but they will feel confident if you show that you know the "words" they've just heard about in the conferences they've attended.

Unfortunately, many crooks know the trick. And they will get their offers accepted but they will never deliver a good product. Bad management and use of cheap and untalented labor are the norm with that kind of software.</comment>


Launch HN: Darmiyan (YC S17) – Early Detection of Alzheimer's Disease - <AUTHOR> Hi HN, I'm Padideh Kamali-Zare, co-founder and CEO at Darmiyan in the current YC batch (https://www.darmiyan.com/). We work on early detection of Alzheimer's disease.
I'm told that launching on HN should come with the backstory of how we came to work on this, so I need to tell you about my grandmother, the most precious gift in my life. She was a poet who raised me, and was always full of life and stories to keep me amazed and excited. As the first female bank executive in a conservative society in the middle east, she was also socially progressive and outstanding. A brilliant brain. A beautiful mind. A few months before she died, on a sunny day, she told me: "Do you know what I want the most from my life?" I stared at her in silence. She continued: "To die decently while I still remember myself, my memories and my loved ones. It feels like as I'm getting older, I'm somehow losing my brain. As if my brain was lemon juice before and now it's becoming lemonade." That statement has been stuck in my brain ever since. Her wish never came true. She died not remembering even basic things of her amazing life.
Now, 14 years later, it's been exactly 14 years that I'm researching human brain structure and function, and modeling how they degrade with age and by diseases such as Alzheimer's disease. Believe it or not, it has been 110 years since the initial description of this devastating disease by Dr. Alois Alzheimer. Yet there hasn't been much progress in pre-symptomatic diagnosis of the disease and no progress in finding a cure for it despite all advances in science and technology. One in every five Medicare dollars is spent on Alzheimer's disease and the entire health care system will go bankrupt if no revolution happens in the field. "So, what is missing?", I always asked. And what can be done to find the missing piece? I always tried to answer. Driven by these questions, I spent several years in biological physics master's and PhD programs and neuroscience postdoctoral research.
Now I'm the founding CEO of Darmiyan. At Darmiyan we detect Alzheimer's disease up to 15 years before symptoms, meaning exactly when treatments are feasible and brain damage could be slowed down just by simple life style changes such as regular exercise, eating well, and sleeping well. We do this early detection non-invasively, using only standard brain MRI. We have spent the last three years in Darmiyan developing and validating a software platform that models the human brain and simulates the tissue architecture underlying every individual voxel (3D pixel) of the brain MRI. Our proprietary methodology and results have been officially reviewed and approved by clinical Alzheimer's experts at Stanford and the world leading Alzheimer's expert and Nobel prize winner Paul Greengard. The most challenging part of our journey so far has been to get access to the largest MRI databases for Alzheimer's disease and clinically validate the software. Now we have analyzed more than 3000 brain scans and our software's predictions are 90% accurate.
My co-founders are Thomas Liebmann, PhD, a top-notch experimental neuroscientist who has managed to visualize the most hidden parts of the human brain through the eyes of the most advanced microscopes; and Kaveh Vejdani, MD, an extraordinary physician who always seeks complex problems at the interface of physics, biology and medicine and solves them with high level of knowledge, creativity and innovation. Thomas was my first office-mate in Stockholm 12 years ago. We met when I had just started my PhD at the Royal Institute of Technology (KTH) in Sweden and we became friends on the first day. Kaveh and I met at a classical music event in New York 7 years ago and have been close friends ever since.
Our vision in Darmiyan is to help all those people in the world who suffer from complex brain diseases such as Alzheimer's disease. We want them to be diagnosed early and get cured. We want to save those millions of precious brains who are unfairly stolen by Alzheimer's disease and bring them back to their family members.
Thanks for reading to the end! We look forward to hearing your feedback and questions. <comment><USER2> "At Darmiyan we detect Alzheimer's disease up to 15 years before symptoms" (original post)

"At present, there is no definitive evidence to support that any particular measure is effective in preventing AD"[1].

"Now we have analyzed more than 3000 brain scans and our software's predictions are 90% accurate." (original post)

"In the United States, Alzheimer prevalence was estimated to be 1.6% in 2000 both overall and in the 65–74 age group"[2]

I'm assuming the 3000 brain scans you're referring to is from individuals which progressed to Alzheimers, or at least a dataset with such individuals highly represented (if this were 3000 random individuals, at a 1.6% prevalence, that amounts to 48 individuals who eventually got Alzheimers).

So according to my calculation of Bayesian probability, with a 90% sensitivity (as I'm interpreting your comment), and a 1.6% prevalence in the population, a randomly screened individual with a positive test will only actually have a 12.8% chance of getting Alzheimers. So you'll be diagnosing lots of people so that they can have an impending Alzheimer's diagnosis hanging over their head for the remainder of their life without actually being able to do anything about it, and of this cohort just over 1 in 10 people will actually end up getting Alzheimers.

Please tell me you're only planning on offering this for researchers, and not actually going to try to get individuals screened? Or am i missing something about your value proposition?

        [1]https://en.wikipedia.org/wiki/Alzheimer%27s_disease#Prevention
        [2]https://en.wikipedia.org/wiki/Alzheimer%27s_disease#Epidemiology

Edit: fixed sensitivity vs. specificity error

<comment><USER3> > 1 in 10 people will actually end up getting Alzheimer's.?

I have never seen anyone over 75 that does not have some kind of dementia. Zero. Alzheimers and Dementia will soon be one of the same classification. It's happening.

Nature is just telling us, you have to go. It will be incurable, it's painless. She's being nice to us. Yes treat it, of course, but we have to let go sometimes.

PS, I work with seniors. People have NO CLUE to what these people go through. Zero.

And NO one can face this question, eventually, we die. Know the millennials don't believe that. They can't even comprehend it death. But it's true. Really. And it's OK.

So live life as it should be. For ALL our days are numbered. Don't worry, be happy.

:-)

<comment><USER4> I am assuming you're making a larger point about life and death, and on that level I agree with you. But as someone who also works with seniors full-time, I have to point out that Alzheimer's is:

\- not the same as dementia, and never will be [1]. Dementia is an umbrella term that includes many diseases (e.g.: Parkinson's, etc), whereas Alzheimer's is just one of the many specific diseases with its own causes, symptoms, and chances of developing a cure.

\- not painless. Apart from increased physical pain sensitivity [2], there's endless emotional pain that impacts the patient and their loved ones [3].

The point you're making about the inevitability of death is valid, but it shouldn't lead to the conclusion that we should just accept Alzheimer's as an incurable disease - of all the ways that a loved one can pass away, many families I work with would agree that this may be one of the worst.

Having worked with thousands of end-of-life clients, I am surprised that the research funding for Alzheimer's is far lower than that for cancer, heart disease, and HIV/Aids. My assumption is that people's view of Alzheimer's is rooted in the old and incorrect perception that it's an inevitable and natural part of aging, sometimes referred to as "senility."

Today we know a lot more about Alzheimer's, and I would challenge anyone to point out why Alzheimer's is fundamentally incurable - it's just a matter of when, and I certainly hope we'll find a cure sooner than later.

[1] [https://www.kindlycare.com/dementia-vs- alzheimers/](https://www.kindlycare.com/dementia-vs-alzheimers/) [2] [http://www.psychiatryadvisor.com/neurocognitive- disorders/al...](http://www.psychiatryadvisor.com/neurocognitive- disorders/alzheimers-patients-more-sensitive-to-pain/article/417651/) [3] [https://www.kindlycare.com/still-alice-portrait-of-a- disease...](https://www.kindlycare.com/still-alice-portrait-of-a-disease/) [4] [http://www.aarp.org/health/brain- health/info-2015/alzheimers...](http://www.aarp.org/health/brain- health/info-2015/alzheimers-research.html)

<comment><USER5> You should disclose that you work for kindly care if you are going to link them as a resource to your argumentations IMHO...

</comment></comment></comment></comment><comment><USER6> It's great to see people working on this problem, and I wish you the greatest success.

I'm curious what you're comparing your results against to determine their accuracy. I thought there was no way to get a confirmed diagnosis of Alzheimer's short of an autopsy. (Obviously I'm no expert -- just going by what I've read.)

<comment><USER7> You can also have a conversation with the afflicted human being and find out. Some days are more lucid than others, but on the whole there can be a 70-90% "fog" of dementia/alzheimer's that is apparent even without a brainslice.

<comment><USER8> In general, you can't discriminate between dementia and alzheimers with a patient interview.

<comment><USER9> Correct. Alzheimer's disease is the most common cause of dementia (~80%). There are other dementia's such as FTD (frontotemporal dementia), DLB (dementia with Lewy body), vascular dementia, etc.

</comment></comment></comment></comment><comment><USER10> This sounds awesome. How might it complement the "visual paired comparison" task of Zola et al. (2013) -- which has been commercialized by Neurotrack -- in helping to identify those at risk of dementia?

Zola, S.M., Manzanares, C.M, Clopton, P., Lah, J.J., and Levey, A.I. (2013). Am J Alzheimers Dis Other Demen. 28(2): 179–184. [https://www.ncbi.nlm.nih.gov/pmc/articles/PMC3670591/](https://www.ncbi.nlm.nih.gov/pmc/articles/PMC3670591/)

<comment><USER9> There are many tests to tell you the risk of developing dementia, which is only a "probability" number. Darmiyan's brain maps show (and measure) the actual pathology (neurodegeneration) in the brain, at microscopic resolution.

There is currently no other method to detect and quantify micro-structural abnormality in the brain at presymptomatic stages of dementia, which is one of the main reasons why all clinical trials of Alzheimer's test drugs keep failing, one after another.

</comment></comment><comment><USER11> > Now we have analyzed more than 3000 brain scans and our software's > predictions are 90% accurate.

This is really a case where the rate of false positives and negatives (and the ages of the study population) with comparison to incidence is needed, and not just a % accuracy. Just unconditionally saying "no" gives you a pretty high prediction accuracy (83% lifetime accuracy for women at 65, 91% for men at the same age, based on remaining lifetime risk of developing the disease.)

</comment><comment><USER12> Where is the mention of scientific peer-review? Where is there mention of FDA interaction? Uploading brain scans for "diagnosis" sounds an awful lot like practicing medicine to me! >> We want them to be diagnosed early and get cured This statement does not match up with the reality that there are NO validated "cures" for Alzheimer's (or any other dementia). I would stay far away from this.

<comment><AUTHOR> There is only so much that can go into a short essay about the story and aspirations of a disruptive startup company. This story was not meant to be a scientific publication. We are working with FDA and expecting to receive approval within a year.

You can think of Darmiyan's product as a quantitative virtual microscope that, among other things, can help pharmaceutical companies come up with a disease- modifying treatment by testing the test drug on "cognitively healthy" volunteers who could potentially benefit from the drug, if it's really effective, before it's too late. Right now there is no other tool in the market to identify and monitor microscopic abnormality in cognitively healthy brains.

</comment></comment><comment><USER13> I don't think I've ever really appreciated one of these YC posts, and haven't found many of these startup missions inspiring in many years

You all, are truly inspiring and dedicating your life to making a difference. It has truly been a pleasure to read about what you're doing, and I can't wait to see how you change the world. Thank you and your team, sincerely. and all the best!

<comment><USER9> Thank so much for your kind sentiments. Much appreciated. Darmiyan team is definitely committed to making a positive impact by mitigating the burden of neurodegenerative diseases on millions of families.

</comment></comment><comment><USER14> Thanks for the touching story and it's great to see medical startups like this.

Can you clarify how you reached the 90% number given that the detection is 15 years before the disease and your startup is only 3 years old. How were these numbers measured?

If I may throw in another question, what is the biggest challenge your company faces? It looks like there is no reason not to choose your product.

<comment><USER9> We got access to MRI scans from numerous people with Alzheimer's disease or MCI (mild cognitive impairment) who happened to have an MRI scan up to 15 years ago, when they were still cognitively healthy, and our software detects abnormality in those older scans with a very high accuracy.

Regarding your second question/comment, we have just launched, and you are absolutely right, there is no reason not to choose our product. The biggest challenge is the huge skepticism in the medical community towards any novel technology related to Alzheimer's disease, given all prior failed big claims by others.

</comment></comment><comment><USER15> What does early detection of Alzheimer's give you, given that it's untreatable? And, isn't ignorance bliss in this case (i.e. the less time you spend knowing about the problem, the better)?

<comment><USER9> Lifestyle changes such as regular exercise, better sleep and better nutrition are shown to reduce the risk of developing Alzheimer's dementia later in life. Also, when a disease-modifying treatment is found, the person who knows the status of their brain health will be the one to benefit most from the treatment before developing symptoms. Once symptoms of cognitive decline show up, it may be too late to intervene.

<comment><USER16> Sure, but why not defer the test until a viable treatment is invented?

<comment><USER17> You might need to know about progression in the early stages to come up with a treatment plan.

<comment><USER18> A treatment plan for a currently incurable disease? The only treatments currently available (exercise, better lifestyle, etc) has minimal effects, there is nothing that deterministically makes a material difference in the progress of the disease.

<comment><USER17> If disease progression can be observed then a treatment plan can be devised. Till now there has been a big problem making a hypothesis since early detection has been hard.

<comment><USER18> A treatment plan that consists of what exactly? None of the treatments make very much difference at all. A treatment plan filled with basically useless treatments isn't much of a treatment plan.

<comment><USER17> Based on anything discovered with the patients found with the test. I imagine a 15 year followup will reveal something.

</comment></comment></comment></comment></comment></comment></comment></comment><comment><USER7> Hello and thanks for your excellent and noble endeavor in healing the world of Alzheimer's.

What is the current state-of-the-art in treatment (2017, Aug)? As an interested person, I have recently heard on Radiolab that MIT has done research with using 40Hz light to trigger brain-cleansing circuits that pulsate through the plaque buildups. Is this the most promising form of treatment at this time?

Another question I have had for a long time but have had no strong-science- strong-medicine-strong-research friends to ask in this domain is: What is the plaque? What causes it, how do we uncause it / remove the root of it, and is it a natural part of the brain chemistry out of balance, or a foreign invader?

Thanks a lot, hope these questions are within what you are able to talk about at this time. Wishing you the best of luck and success in your endeavors, and I look forward to living in an Alzheimer's-free world one day!

<comment><USER19> You might be interested in "Beyond Amyloid": [https://www.statnews.com/2017/08/18/beyond-amyloid- alzheimer...](https://www.statnews.com/2017/08/18/beyond-amyloid-alzheimers- research/)

</comment></comment><comment><USER20> What types of sequences does your algorithm run on (looks like DWI/ADC)? One could make the argument that if it is on standard sequences done for other diagnostic purposes, hence not requiring any additional time or money, this tool could be used to provide info to radiologists who are not typically going to look for these changes (nor can they do this as precise as machines).

I am working in a similar domain (www.16bit.ai) and am a radiologist. I think there is utility in this quantitative analysis despite there not being an intervention yet, despite what others are saying. The reason is because in order for others to measure the effectiveness of new treatments a gold standard and reproducible way of measuring the disease is necessary. I think drug companies working in this area would be quite excited about this if it can be shown to be a reliable predictor. As for direct to consumer marketing (ie. 23andme model) that some have suggested - its possible but it will be tough to educate patients to go and get their MRI images from their hospital for this purpose. I live and practice in Canada so my views and experiences of this may be a bit skewed. Best of luck!

</comment><comment><USER21> Can you give a reference or paper of the exact lifestyle changes you need to perform to reduce the risk of Alzheimer's?

<comment><USER10> Here's one approach that seems to have achieved some success:

A 2 year multidomain intervention of diet, exercise, cognitive training, and vascular risk monitoring versus control to prevent cognitive decline in at- risk elderly people (FINGER): a randomised controlled trial

[http://www.thelancet.com/journals/lancet/article/PIIS0140-67...](http://www.thelancet.com/journals/lancet/article/PIIS0140-6736\(15\)60461-5/abstract)

</comment></comment><comment><USER22> How helpful is early detection when there's no effective treatment yet?

<comment><USER9> There is no cure because there is no "early detection". By the time of current clinical diagnosis (when symptoms appear), the disease has progressed to advanced stages and it's too late for any effective treatment. Our goal is to help pharma companies develop novel drug candidates that can potentially cure the disease "if detected early using our technology". Also, life style modifications are known to delay the symptoms. So knowing is always the best.

</comment></comment><comment><USER23> aren't these stats horrible?

I'm assuming the 3000 brain scans you're referring to is from individuals which progressed to Alzheimers, or at least a dataset with such individuals highly represented (if this were 3000 random individuals, at a 1.6% prevalence, that amounts to 48 individuals who eventually got Alzheimers). So according to my calculation of Bayesian probability, with a 90% sensitivity (as I'm interpreting your comment), and a 1.6% prevalence in the population, a randomly screened individual with a positive test will only actually have a 12.8% chance of getting Alzheimers. So you'll be diagnosing lots of people so that they can have an impending Alzheimer's diagnosis hanging over their head for the remainder of their life without actually being able to do anything about it, and of this cohort just over 1 in 10 people will actually end up getting Alzheimers. Please tell me you're only planning on offering this for researchers, and not actually going to try to get individuals screened? Or am i missing something about your value proposition?

<comment><USER24> Prevalence is over 40% if you live into your 80s.

</comment></comment><comment><USER25> What do you mean by 90% accurate? Do you mean for every 1/10 people analyzed, a result is wrong? That would be a lot of false positives.

<comment><USER26> 1/10 false positives doesn't sound too bad to me. Having seen older family members impacted by the disease with little to no warning, a 90% chance at early detection would be incredible. Even with a false positive, the changes you would make (lifestyle changes, brain stimulation, continuous monitoring) would only be beneficial, IMO.

<comment><USER11> > 1/10 false positives doesn't sound too bad to me.

If the 15-year risk for the population taking the test is 10%, an unbiased 10% error rate would mean:

81% true negatives, 9% false positives, 9% true positives, 1% true negatives.

> Even with a false positive, the changes you would make (lifestyle changes, > brain stimulation, continuous monitoring) would only be beneficial

Not if prioritizing them crowded out things you could be doing to address a real risk that is deprioritized because of the false result.

And, also, of course, an error rate doesn't have to be unbiased. With the same population, a test with these results would also be 90% accurate:

90% true negatives, 10% false negatives.

</comment></comment></comment><comment><USER27> Interesting post! Curious about two statements made in your post:

"Our proprietary methodology and results have been officially reviewed and approved by clinical Alzheimer's experts at Stanford..."

What is an "official review and approval" process?

"The most challenging part of our journey so far has been to get access to the largest MRI databases for Alzheimer's disease..."

Which dataset is this?

</comment><comment><USER28> Is this product in development right now? How can I submit my brain MRI for analysis by your company/software?

<comment><AUTHOR> Great question. Web upload tool is in development, will launch in a few months. Stay tuned!

</comment></comment><comment><USER29> Hi, when you say 90% accurate, that basically means you're able to detect 9/10 potential cases, and could save a lot of money for insurers/health providers. This is an incredible number!

What was the state of the alzheimer-detection-world prior to this?

<comment><AUTHOR> There is currently no other early-detection technology to show (and measure) microstructural abnormality in the brain before symptoms of cognitive decline. State of art Amyloid PET is extremely non-specific, with a positive predictive value of 50% (coin toss).

</comment></comment><comment><USER30> Love the story and what you'll are working on, good luck!

<comment><USER9> Thanks a lot!</comment></comment>


Announcing Yahoo Placemaker - Geo-enrich Your Content - <AUTHOR> http://www.ygeoblog.com/2009/05/yahoo-placemaker/

<comment><USER2> I checked this out, and it reminded me of a pet peeve of mine with APIs.

I know this is hacker news and all, but it's annoying when a neat-looking new api is released like this and the documentation doesn't have any obvious cut- and-paste examples of Get calls to play around with. They offer up two examples, but the "examples" don't resemble anything that I can play with or take action with, I see two code snippets and not much in the way of explanation.

I find enough APIs like this that I have a text file with sample api calls for different services that I get out when I go to play around with them as I can't find cut-and-paste examples of their calls in their documentation.

If anyone can steer me to a URL I can try out (I have an api key), I'd be appreciative. It's just not clear to me, as a somewhat novice developer how to use this service without a blunt example.

<comment><USER3> I cooked up something for YQL so you can try it in the YQL console: [http://developer.yahoo.com/yql/console/?q=select%20*%20from%...](http://developer.yahoo.com/yql/console/?q=select%20*%20from%20geo.placemaker%20where%20documentURL%3D%22http%3A%2F%2Fwww.mnot.net%2Fblog%2F2003%2F12%2F26%2Feurope%22%20and%20documentType%3D%22text%2Fhtml%22%20and%20appid%3D%22EEyPaQrV34FypE_9pTqo_0kVfmvtmgmpDFxXRGLO44C8W4pJVr4JkhAiVMaddrHcvqlm%22&env=http%3A%2F%2Fdatatables.org%2Falltables.env)

Use either documentContent or documentURL to specify what you want to use. I quite enjoyed trying War and Peace (from Gutenberg) although the whole book is a bit big for a single request.

Also this my personal API key. So please don't be jerks with it. Enjoy!

Disclaimer: I work for Y!

</comment></comment><comment><USER4> <http://developer.yahoo.com/geo/placemaker/>

Yahoo! Placemaker is a freely available geoparsing Web service. It helps developers make their applications location-aware by identifying places in unstructured and atomic content – feeds, web pages, news, status updates – and returning geographic metadata for geographic indexing and markup.

Placemaker provides geo-enrichment for the hugely significant proportion of Web content that is geographically relevant but not geographically discoverable. Provided with free-form text, the service identifies places mentioned in text, disambiguates those places, and returns unique identifiers (WOEIDs) for each, as well as information about how many times the place was found in the text, and where in the text it was found. The WOEIDs returned by the service can be passed to Yahoo!'s GeoPlanet™ API for further geographic enrichment and discovery.

Placemaker is not a geocoder and does not perform street-level address recognition; it is however a geo-extraction and indexing tool designed to help determine the 'whereness' of a document or atomic unit of text. It provides the geographic developer community with the means to mark-up and index their content geographically in a globally-aware, locally-relevant, and language- neutral manner, and assists with geographic discovery and aggregation across the Internet.

</comment><comment><USER5> I wasn't able to find any viewport biasing, that would be very useful for disambiguation. For example, "Im in the Mission right now" is pretty vague unless I could viewport bias the analysis to 37/-122. Google Geo API offers this, but last time I tried it it didn't work very well.

I was impressed by this api from Yahoo a lot. It worked really well. I'd already written my own but this works super fast and reliably. I just need more control over disambiguation.

</comment><comment><USER6> It's gone? 404 and no google cache!

Here's some other info though: [http://blog.programmableweb.com/2009/05/20/yahoo-releases- pl...](http://blog.programmableweb.com/2009/05/20/yahoo-releases-placemaker-a- geo-enrichment-platform/)

</comment><comment><USER7> What's the advantage over a simple GEO microformat? <http://microformats.org/wiki/geo>

<comment><USER6> You as a publisher or a consumer don't have to actually DO anything, you give it a chunk of text and it figures out what place you're talking about.

(This is awesome.)

<comment><USER7> Thank you for the clarification: this is a lot different from explicitely specify GEO coordinates...

</comment></comment></comment><comment><USER8> This is really great, parsing out locations isn't the easiest problem to roll yourself. This should open up a lot of interesting mashups.

</comment><comment><USER9> this is very cool, and the beginning of a trend, it seems to me. the whole semantic web depends on structured information, but it's a pain to structure information. it makes a lot of sense that the services to structure plain text will be made available as APIs - eg to extract geo information, date and time information, contact information, etc.</comment>


IPhone5 LTE Confirmed - <AUTHOR> http://www.apple.com/iphone/LTE

<comment><USER2> Even if this is true, the page is dead so there's nothing to see here.</comment>