Mint Is Yodlee's YouTube  - <AUTHOR> http://www.techcrunch.com/2009/09/18/mint-is-yodlees-youtube/ <comment><USER2> OFX is not a replacement for Yodlee. OFX is a passive specification that relies on each data provider writing to the spec. Yodlee uses OFX, but also uses screen scraping and other methods to get data from the many sources not covered by OFX. If Mint dropped Yodlee, many of their data feeds would disappear.

Data aggregation is a messy business. No two companies have the same feed options, nor do any two feeds work the same. And for consumer-facing data, Yodlee is the best.

<comment><USER3> I spent a couple of years at Yodlee. Your comment is spot-on. Not only are there huge headaches around creating the scripts/feeds to grab the data, but once you have the data there's a significant challenge of normalizing it so that you have some sort of data consistency. And then you have the issue of constantly having to update the scripts as financial institutions make (often undocumented and unannounced) changes to their data.

The Abobe:Youtube / Yodlee:Mint analogy in the article isn't entirely apt since Yodlee effectively provides not only the technology but the _content_ upon which Mint is built. I'd agree with those who say that Mint's position is tenuous from a business perspective b/c of this (and maybe this is why they opted to make their exit). But I certainly can't take away from the fact that Mint built a fantastic product that blows away any other front-end implementations of this sort.

<comment><USER2> I can only assume that Mint has an iron-clad contract with Yodlee. However, it wouldn't surprise me if Intuit doesn't fully appreciate the importance of having non-OFX data in Mint. They had another data feed product targeted at investment advisers that was killed due to problems with data management.

Article: <http://www.fa-mag.com/fa-news/2683.html>

</comment></comment></comment><comment><USER4> Those of us who've been around the tech industry will recall that Yodlee started out as a front-end like Mint and migrated into being the back-end provider when that didn't work out.

So, it was a distinct choice on their part to go for the back end and abandon the Mint-like interface.

And they weren't alone in trying to be Mint in 1999/2000. Anyone else remember ezLogin? IIRC they had an exit of around $120m in 2000.

<comment><USER5> So what made mint successful with their frontend then? Perhaps Yodlee hasn't tried hard enough for the frontend.

<comment><USER6> Yodlee's frontend was ugly, clunky, and unfocused. Probably still is. UI was not their strength.

<comment><USER7> Yodlee's current frontend is nothing flashy, but it works extremely well and is very straightforward and stable. Of all the online services I use, Yodlee is among the very best. It saves me many hours of time every week and has dramatically increased my control over my personal finance information. (BTW, it is easy to export your Yodlee data in CSV format for local backup and further use in Excel.)

</comment></comment></comment></comment><comment><USER8> If jasonfried is right that Intuit will ruin Mint (<http://news.ycombinator.com/item?id=829502>), it opens an opportunity for a Mint copycat to use the same Yodlee back-end to fill the gap created.

<comment><USER9> The problem is that Mint already has a head start, is well-designed, and actively developed. Intuit had nothing like Mint, which made it easier for them to compete. Any Mint competitor will have to outdo them and/or fill a different niche.

edit:spelling

<comment><USER6> Mint is likely going to rot, though, once most of the original people leave. That should give more than enough room to catch up. The hardest thing to fight will probably be the name recognition.

<comment><USER8> The name recognition of "Intuit" or "Mint"?

The former stands for a desktop version; the latter is probably known only by a small minority of the total mass-market (it's still a barrier though, I agree)

<comment><USER6> Both. Mint is by far the best known name in the segment, and now it has Intuit's name and dollars to push it.

</comment></comment></comment></comment></comment><comment><USER10> _Intuit has it's own back-end account aggregation service that it will use instead of Yodlee._

Nooooo. I've used Quicken for Mac and this feature really sucks. They didn't support direct download/connection with Bank of America, but they did with Citi.

Ever since I switched to Mint.com I never looked back at Quicken. In Mint.com, all my accounts synced and it just _worked_ (thanks to Yodlee I assume). With Quicken I had to manually download/import files, and then re-categorize every single transaction (hyperbole). With Mint.com, I only have to fix 1-2 transaction's categories within a month.

I really hope Inuit's backend has improved since then.

</comment><comment><USER11> An interesting part of the history of bank account feeds is that Intuit was a big part of the original OFX standardization effort. Initially OFX was looking to become a wonderful and well supported standard in North America. However, Intuit tried to turn the screws on the banks by charging hefty licensing fee for supporting OFX, and that eventually that killed the effort to free your bank account information.

I hope the lesson is clear for everyone: if you depend on someone for data, you don't get to charge them--they get to charge you. That goes double for banks who are generally extremely unhappy when they aren't the ones making money in a deal.

That's why Yodlee has a near monopoly. They are the only ones doing a decent job screenscraping from your bank, which is hardly secure or stable especially since some banks actively try to prevent this. This is very expensive and ultimately futile.

On the other hand, there's an opportunity for someone to get the OFX working again by reversing the flow of charges back towards the bank. If you do it well, you too can have a near monopoly and make money while you're at it.

<comment><USER2> If I recall, it was actually Microsoft who started OFX under the name Marble. They pitched Intuit on the idea, even though Intuit eventually became the dominant partner.

</comment></comment><comment><USER12> I'd rather have someone like Yodlee provide me with access to my transaction history via SSL in something like JSON until there is an industry standard (and then I'd aggregate them myself from each financial institution). I was waiting for someone else to come along and add a more folksinomical tagging system that you could visualize with something like flot: <http://code.google.com/p/flot/wiki/FlotUsage>

</comment><comment><USER13> Youtube is totally the wrong acquisition analogy.

      Intuit : Mint : Yodlee  ::  eBay : Skype : Joltid</comment>


Nicholas Winton, British stockbroker who saved 669 Jewish children during WWII - <AUTHOR> https://en.wikipedia.org/wiki/Nicholas_Winton <comment><USER2> We have a statue of him inside the Prague main railway station. I always tear up (no hyperbole) when I walk around it, such a brave and great man.

</comment><comment><USER3> Its interesting that the 2008 Nobel Peace Prize was given to President Obama instead of this man.</comment>


Literate Programming: Retrospect and Prospects - <AUTHOR> http://lambda-the-ultimate.org/node/3663 <comment><USER2> One thing really stood out for me from the book "Programmers at Work".

Many of the programmers repeatedly emphasized the importance of data structures to both understanding programs as well to solving the problem. And after noticing how I work, I find that to be true.

English documentation of the core data structures is more important than verbose description of the steps in the algorithm. This is the key thing that is different among progarms. By and large, we use the same algorithms again and again. And I can trivially find English documentation of those to understand rapidly. I don't need it in the code also.

And by documentation I mean something that explains at a programming language level with the identifiers etc. For git, it would be insufficient to say "trees are collections of blobs". I would need to know the struct names and an explanation of each of the members. And whether the "collection" is a array/list/hash etc.

Having looked into literate programming, it seems to emphasize documenting the algorithms more than it does the data structures. Hence it misses the "big picture" which is what is really needed.

I'm not convinced that LP is useful.

<comment><USER3> Look at the gb_graph module of Knuth's "Stanford GraphBase" (the Stanford GraphBase is available for download at his web-site). His explanation of his graph data structures, written in CWEB, are the clearest documentation of a complex data structure that I have ever seen.

</comment></comment><comment><USER3> I use literate programming, and Knuth's CWEB in particular, and I find it fits for me perfectly. Honestly, I think the biggest problem is that most programmers have never heard of it or think it's something like JavaDoc. I find it astonishing that so few people are willing to try something developed and strongly advocated by the man who single-handedly programmed TeX, MetaFont, and the Stanford GraphBase, and wrote the most respected texts in computer science.

</comment><comment><USER4> I recently started using Leo for a combination of outlining, literate programming, and general project management.

I don't go as far as Knuth and try to formulate a complete narrative of my program, but Leo's outlining features let me clone and regroup blocks of code on a task-by-task basis and document: "In these blocks, I'm implementing feature x," or "fixing bug y." It's very useful for getting the big picture and making sense of problems in the codebase. When using only a code editor, you waste a lot of time jumping through the project and searching through files, and I don't have that problem anymore.

</comment><comment><USER5> A fun reminder that where most programmers (I suspect) are of the iterative sort -- especially where the language is concise and testable -- Knuth is an inveterate planner. If you've trained yourself to strategize mathematically and execute long streams of pseudocode in your head, a word processor is your friend. :)

That said, I've long wanted more expressive commentary in the trickier parts of the codebase. i.e. some kind of comment xml that IDEs make into a rich text area, for the diagrams and maths and whatnot.

<comment><USER6> Why not do the entire codebase as some sort of nested structure, designed only to be presented inside an IDE? So not only comments, but types, namespaces, every bit of programming metadata there is.

Many programmers feel insecure abandoming their text editor -- because this is something they're accustomed to and which they understand conceptually. Some sort of nested structure expressed in a markup language like XML would be just as understandable conceptually. Many of the incompatibilities between languages would disappear if there was a widely used standard for such a code representation.

<comment><USER5> Flat files continue to have a simplicity, portability and fungibility that is difficult (if not folly! :) to walk away from.

Instead, there are opportunities to enhance things in ways the are still perfectly useful in emacs/vi.

<comment><USER6> As a user of Smalltalk for almost a decade, let me assure you that walking away from source files is _not_ folly! In fact, I get something which is just as nimble and reliable, and yet even more powerful. I can write snippets of code that act like queries into my codebase. With a short script I can rewrite broad swaths of my code with syntactic precision, and with a little work be assured that I have done a perfect refactoring. I can undo/redo all changes. I can even do dangerous things that even bring the VM to a screeching halt, and _not lose any code_. All of this is enabled by giving up source files and going to a "change log" which is like a transactional log of my changes.

You can think of this as something like going from ext2 to ext3, then onto ZFS.

</comment></comment></comment></comment><comment><USER7> One other point I think is critical to understanding its lack of lift is that it solves some problems most modern languages don't have with code organization. Earlier languages were much more restrictive about how you could organize code, and giving the programmer the ability to rearrange code in a more flexible manner could be a genuine advantage. Nowadays our problems lie more in unwise use of our extensive ability to organize and reorganize code, rather than our inability to do so at all, and adding in "conventional" LP only gives us another dimension to screw up on.

I do not believe this is the entire story, but it's an important part of it.

</comment><comment><USER8> Where can I get this penelope system? It sounds interesting and I am an Ada programmer. Anything that can make software more reliable is a good thing, imho.

Incidentally I've used cweb before and can second their comments about it. It's a fantastic idea, that needs a bit of a refresh. Particularly getting away from simple commenting of how things are done to the why/data structure/higher level arena.

</comment><comment><USER9> I wonder how well Google Wave would work as a real-time collaborative literate programming tool.</comment>


Ethiopian Binary Math - <AUTHOR> http://www.uh.edu/engines/epi504.htm <comment><USER2> This algorithm is also known as Ancient Egyptian multiplication, Egyptian multiplication, Ethiopian multiplication, Russian multiplication, or peasant multiplication.

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

<comment><USER3> This has made it to HN at least a few times. Maybe it should be part of math curriculum in schools so we wouldn't keep having this conversation.

<comment><USER4> There is also a reference to this method on page 61 of SICP (footnote 40 of exercise 1.18).

[http://mitpress.mit.edu/sicp/full-text/book/book- Z-H-11.html...](http://mitpress.mit.edu/sicp/full-text/book/book- Z-H-11.html#footnote_Temp_68)

</comment></comment></comment><comment><USER5> I fail to see the ingenuity, or even any common sense in this. If to "run" the algorithm you are required to have as many stones as the end result (actually quite more if you count those spent on "evil" holes), you might as well spread out on the ground 34 groups of stones with 7 stones in each group and just count them. Or create a 34X7 rectangle and count the stones. So I dare say we differ a lot from the Ethiopian shaman. Reality doesn't always conform to the PC narrative of how all civilizations are equal. Unless you are a sociology major that is.

<comment><USER6> Correction: to run the algorithm you're required to have _at least_ as many stones as the end result. That's like saying because MAX_INT is set, math on computers is pointless. Any physical process will have a finite upper bound on the size of the result.

I agree that this isn't a remarkably efficient algorithm, but it is novel (it's completely unintuitive to the average reader), and it has a sound basis in mathematics. For the people who employed it, it was an efficient algorithm, or else they wouldn't have continued to use it. Nobody is proposing you're not as smart because you don't do math this way (although frankly, I doubt if you would have derived this by yourself, under the same conditions).

On a side note, I strongly recommend 'Guns, Germs and Steel'. I've been knocked for mentioning it before because it's a pop-sci book, but it explains why cultures 'progressed' at different rates because of largely environmental factors. This might help you overcome your ridiculously defensive bias against African cultures.

<comment><USER5> It couldn't have been efficient since it is patently idiotic. Just spread 34 groups of 7 stones each on the ground and count them! That's all you have to do. No algorithm at all, just symbolic logic, and you need fewer stones, and probably takes less time as well. The only way to use this algorithm to portray the mathematical prowess of native Ethiopian culture in some positive way is to argue that the Shamans purposefully used this algorithm to obfuscate the process and maintain the life style and privileges of the priestly class. I dare you to claim with a straight face that this "algorithm" is even remotely comparable to what the Greeks did, e.g. Archimedes' proving, PROVING I repeat, in a mathematically rigorous way, in the 3rd century BC, that a sphere has 2/3 the volume and surface area of its circumscribing cylinder.

<comment><USER7> You are comparing a later development of mathematics to an ancient one and then calling the ancient one stupid.It is basically like studying string theory now and then calling Galileo's speculations idiotic because he used his pulse to measure time instead of a quantum-logic clock.

<comment><USER8> No, he is comparing an ancient system (ethiopian multiplication) with an _even more_ ancient one (just fucking counting) and calling it stupid. As far as I can tell, he's got a point.

<comment><USER9> That's a fine argument with 7 times 34, because you only need 7 holes of 34 stones.

But it breaks down when multiplying much larger numbers, because the number of holes you need increases by N. With this addition system, you only need log(N) holes.

The system exists to remove cumbersome aspects of multiplying large numbers by counting. Consider 34x34. While one fellow is out digging 34 holes, making sure not to make a mistake, or finding a piece of wood that has 34 holes marked in it, the other guy never needs more than 10 holes if his numbers are less than 1024. This keeps his working area small, and he can see all of it at the same time. It's less cumbersome this way.

<comment><USER8> I'm not sure how you think "counting" works...

 _As described_ , the Ethiopian Method would take _far_ more stones and _far_ more time. The larger the numbers you are working with, the larger the discrepancy.

</comment></comment></comment></comment></comment></comment></comment><comment><USER10> How to multiply isn't necessarily self evident, especially if you don't have a positional notation system. Even after the introduction of arabic numerals into Europe there were many different algorithms for performing multiplication, some of which are only moderately recognizable as our long multiplication system: [http://www.pballew.net/old_mult.htm](http://www.pballew.net/old_mult.htm)

This method in practice would have used objects that represent larger numbers(1,5,10) and with those a practitioner only needs to know how to add, subtract and multiply or divide by 2. All of which are operations which can be performed quickly. It certainly isn't true that you would need as many stones as the final result.

<comment><USER11> If you used objects to represent 5, 10, 100 stones, etc., and were capable of e.g. saying that 7 and 7 stones equal one 10-stone and 4 stones, you would have a compact representation of your number, and that would be the proper use of this algorithm.

But note that this is different from what John H. Lienhard explicitly says: "the hole contains 224 stones". His version is completely pointless. None of us are objecting to the algorithm itself - yes, it is equivalent to long multiplication in binary, it has been known since ancient times, and there is nothing wrong with it. However, Lienhart has a) apparently misunderstood the point of the algorithm, and b) ascribed it to Ethiopian village "shamans", which gives one the mental image of Ethiopians standing around and watching a shaman manipulate hundreds of stones, instead of simply counting out the price - 7 for the first goat, 7 for the second, etc. This probably never happened, and would be stupid if it did; and yet people are coming here to defend this as an example of "Ethiopian ingenuity".

What kind of "shamans" is Ethiopia supposed to have, anyway? Aren't they a Siberian thing? Ethiopia has one of the most ancient Christian traditions in the world, you know. I agree with some other posters that this whole thing is some kind of a politically correct cringe which somehow tries to compliment Ethiopians for something they have nothing to do with, and only ends up insulting them. And every reader's intelligence, to boot.

<comment><USER12> > What kind of "shamans" is Ethiopia supposed to have, anyway? Aren't they a > Siberian thing? Ethiopia has one of the most ancient Christian traditions in > the world, you know. I agree with some other posters that this whole thing > is some kind of a politically correct cringe which somehow tries to > compliment Ethiopians for something they have nothing to do with, and only > ends up insulting them. And every reader's intelligence, to boot.

You are flailing at windmills here. Sure the country has a long history of Christianity; however that part of the world has a long history of overlapping animistic traditions too.

</comment></comment></comment><comment><USER13> For a much clearer visual explanation, see this BBC video on the subject:

[http://youtu.be/Nc4yrFXw20Q](http://youtu.be/Nc4yrFXw20Q)

</comment><comment><USER14> Looking at [https://en.wikipedia.org/wiki/Multiplication_algorithm#Peasa...](https://en.wikipedia.org/wiki/Multiplication_algorithm#Peasant_or_binary_multiplication), isn't this exactly the same as decimal long multiplication, except using binary?

<comment><USER15> The long multiplication algorithm has two nested inner loops, each reducing one of the inputs to digits (dividing and multiplying by fixed values), multiplying them with a lookup table, then performing add-with-carry against inner and outer accumulators.

The Russian Peasant Algorithm optimizes this for the binary case by noticing that the inner multiply is always by 0 or 1 so it's trivial and never carries, removing the inner loop entirely and allowing you to use only one accumulator.

</comment></comment><comment><USER16> It's probably appropriate to also mention the (supposedly ancient) form of mathematics taught in India as Vedic Mathematics [1] that provides computational shortcuts. (The origin of this is in question though [2])

1\. [http://ed.ted.com/lessons/the-magic-of-vedic-math-gaurav- tek...](http://ed.ted.com/lessons/the-magic-of-vedic-math-gaurav-tekriwal)

2\. [http://www.openthemagazine.com/article/art-culture/the- fraud...](http://www.openthemagazine.com/article/art-culture/the-fraud-of- vedic-maths)

</comment><comment><USER17> _So how do we and that Ethiopian shaman differ?_

Paper! Seriously, this was 1960? Even ancient Sumerians were using paper to do math. I don't understand why in 1960 anyone would seriously still be doing math with holes and rocks.

</comment><comment><USER18> Wouldn't it be more quick by filling the hole with 7 stones for 34 times? They could use 34 extra stones (or goats) to keep the count. That could be done by any farmer.</comment>


Missing Maps: a human genome project for cities - <AUTHOR> http://www.theguardian.com/cities/2014/oct/06/missing-maps-human-genome-project-unmapped-cities

<comment><USER2> It's really incredible how much work has been put into the Humanitarian OSM Team's projects. Many cities in disaster-struck regions now have better detail and quality in OpenStreetMap than your average American city. Compare the city of Lubumbashi [0] linked from the article with a random mid-sized city near you.

[0] [http://www.openstreetmap.org/#map=13/-11.6648/27.4900](http://www.openstreetmap.org/#map=13/-11.6648/27.4900)</comment>


ACLU: "Our Mission Is Undermined by Our Rigid Stance on Free Speech" - <AUTHOR> https://reason.com/archives/2018/07/26/liberty-makes-us-unfree-says-the-aclu <comment><USER2> This piece is terrible in its wanton pooicy metaphor mis-steps. It's claiming that gun limits are equivalent to the government clamping down on free speech. The ACLU is taking the position that gun rights are actually limiting free speech, and I think they're absolutely right.

<comment><AUTHOR> How are gun rights limiting free speech exactly?

<comment><USER3> Perhaps that white nationalists with guns are intimidating civil rights protestors?

It might be more accurate to specify "unbounded" gun rights, since your having a handgun in your home doesn't affect anyone's speech, but wearing a rifle to a political event may.

<comment><AUTHOR> > white nationalists with guns are intimidating civil rights protestors?

Care to share where this happened recently?

<comment><USER3> Charlottesville?

</comment></comment></comment></comment></comment><comment><USER4> Here's the actual memo, which is frankly more reasoned and nuanced than this hit piece.

[http://online.wsj.com/public/resources/documents/20180621ACL...](http://online.wsj.com/public/resources/documents/20180621ACLU.pdf?mod=article_inline)

<comment><USER5> Tl/Dr: The ACLU will be asked to defend people that they disagree with. Heres what to do in that situation 1\. Make sure the case has merit and is worth the time (no violence-with a pretty low bar no direct threats and no carrying weapons, is it winnable,is there an ally that can do a better job etc.) 2\. Set up a meeting with the relevant internal group to make a battle plan (eg defend a Klan member, talk with civil rights department) 3\. Give resources to conflicted department (eg use restitution from above to fund a civil rights campaign) 4\. Inform everyone we disagree with what the client says, but we defend his right to say it.

</comment></comment><comment><USER6> ACLU went so far left as to stop Iowa's medical board sanctions on doctors who perform cosmetic late term abortions. That disenfranchised several Libertarians who believed the law struck a balance between not criminalizing abortion and not allowing gratuitous late term abortions unless the mother had a health need for it.

<comment><USER7> I agree with jibal's reply - "cosmetic late term abortion" doesn't exist.

I'll add to it what the ACLU is doing in Iowa in support of abortion rights, from [https://www.aclu-ia.org/en/news/aclu-planned-parenthood- emma...](https://www.aclu-ia.org/en/news/aclu-planned-parenthood-emma-goldman- clinic-file-lawsuit-block-iowa-abortion-law) :

> Today women's rights advocates filed a lawsuit in Polk County District > Court, requesting that the court block Iowa's newest abortion law. That law > would ban most abortions at around six weeks—before many women even know > they're pregnant. It would be the most restrictive abortion ban in the > country.

> ... Unless blocked, the law would go into effect July 1. It would ban > abortions as soon as any embryonic cardiac activity is detected, which > usually happens at around six weeks.

> "This abortion ban is beyond extreme," said Rita Bettis, ACLU of Iowa Legal > Director. " With it, Iowa politicians have tried to ban virtually all > abortions for women in our state. In the 45 years since Roe, no federal or > state court has upheld such a dangerous law."

> This virtual ban is made even more harmful for women by the minimum 72-hour > waiting period law that the Iowa Legislature passed last year. (That waiting > period is currently blocked and awaiting decision from the Iowa Supreme > Court.) If that 72-hour wait took effect and the six-week ban also took > effect, even if a woman learned of a pregnancy very early, she would then be > delayed by the mandatory wait period law—and then could no longer access > abortion services.

If this is what you are talking about, then your definition of "late term" is "after around 6 weeks" and your definition of "had a health need for it", quoting from the ACLU:

> ...includes only "physical" conditions that are life-threatening or pose "a > serious risk of substantial and irreversible impairment of a major bodily > function."

> ... The law expressly does not allow a woman to access an abortion she needs > because of "psychological conditions, emotional conditions, familial > conditions, or the woman's age" even though the health—and even the life—of > some women is at risk for those very reasons.

> As just one example: some psychiatric medication is harmful during > pregnancy, putting those women in the position of choosing to continue > medically necessary mental health care and risking harm to a pregnancy, or > go without the care they need.

<comment><USER6> The metrology/logistics of ultrasound is at issue. What is not at issue is using a conservative stethoscope standard while they figure out the ultrasound in court.

The law puts the health of the mother first and that includes mental health. The left is freaking because Libertarians worked with the Right to pass a bill that doesn't violate Roe.

<comment><USER7> What's at issue is the right to an abortion.

Regarding "the law put the health of the mother first" \- prove it. Because my reading of the law says that you are 180° in the wrong.

Here's the change to the law: [https://www.legis.iowa.gov/legislation/BillBook?ga=87&ba=H-8...](https://www.legis.iowa.gov/legislation/BillBook?ga=87&ba=H-8441)

Notice how the text removes these clauses:

> Compliance with the prerequisites of this section shall not apply to any of > the following: a. An abortion performed to save the life of a pregnant > woman. .. c. The performance of a medical procedure by a physician that in > the physician's reasonable medical judgment is designed to or intended to > prevent the death or to preserve the life of the pregnant woman

as well as specific rejection of mental health issues as a basis for an abortion in the new text:

> Medical emergency" means a situation in which an abortion is performed to > preserve the life of the pregnant woman whose life is endangered by a > physical disorder, physical illness, or physical injury, including a life- > endangering physical condition caused by or arising from the pregnancy, but > not including psychological conditions, emotional conditions, familial > conditions, or the woman's age.

This reduces the importance of the health of the mother, and specifically excludes mental heath - just like the ACLU link I gave says it does.

"The left is freaking out" because of the decades of successful efforts to chip away at abortion rights in the US, staring with Planned Parenthood v. Casey in 1992.</comment></comment></comment></comment>


ARMv8-A system semantics: instruction fetch in relaxed architectures - <AUTHOR> https://www.cl.cam.ac.uk/~pes20/iflat/ <comment><USER2> Nice! Most of the formal models of architectures I've seen ignore the whole memory hierarchy thing. Even places you might expect, like the model used in sel4's proof.</comment>


Free download: 10 terabytes of patents and trademarks - <AUTHOR> http://googlepublicpolicy.blogspot.com/2010/06/free-download-10-terabytes-of-patents.html

<comment><USER2> People interested in this might be interested in Peer2Patent as well. Crowd- sourced prior-art reviews actually used by the PTO to reject patent apps.

<http://www.peertopatent.org/>

</comment><comment><USER3> A lot of this was already available: <http://bulk.resource.org/patent/>

</comment><comment><USER4> Oh, now this will make a _real_ nice citation graph to play with.

</comment><comment><USER5> This is amazing. I hope they start doing this for some of the other enormous government data sets out there (like some of the mapping and satellite imagery datasets).

<comment><USER6> Which ones are you interested in? Most of them are already available as bulk downloads.</comment></comment>


The Perfect Programming Interview Problem - <AUTHOR> https://medium.freecodecamp.org/the-perfect-programming-interview-problem-8431cdeab2a7 <comment><USER3> I've only had to endure 1 live, whiteboard, coding problem and I failed, miserably (and didn't get the job)

In other words - I suck at them.

What I do excel at is building websites. Currently working on a website for agents to sell insurance in Angular 6 with a C# .net core backend. I've worked on websites as small as restaurant websites to company defining websites where they live and breath based on the success of their site (one in particular, I did by myself, over the span of a year and it's quite massive in it's functionality)

Possibly rhetorical then (and a serious question) - why is a developer who can pass a challenge like this better then me / worth more then me? So... I can't accomplish that challenge with 4 people watching me on a whiteboard. I do ship code though, hit 99/100 deadlines given to me and my code is well thought out, readable, works, and is on budget.

Maybe these are just different jobs then I'm used to - I do tend to gravitate towards agency style work - and don't get me wrong, I make a good buck - <USER2> I've given up on trying to obtain the fancy jobs at google or apple or etc... and am (content?) taking my get it done jobs.

Any resources available to help teach to think in the way of these challenges ?</comment>


Elon Musk thinks we all live in a video game. So what if we do? - <AUTHOR> http://www.vox.com/2016/6/3/11837888/simulation-problem <comment><USER2> I hope Elon gets more sleep, because he's looking wrecked. A week of sleep would do him a power of good. I'd prefer a Musk dynasty with him lasting well into his 90s pushing starships around, not working so hard he bites the biscuit in his 50s.

A cool AI for a CEO would understand the internal logic of your business plan and help you delegate effectively so you don't get buried in the weeds or become too abstracted from reality. An intelligent filter basically. I guess we might need to wait for AR to get these kinds of personalized level applications though.

</comment><comment><USER3> There are many things thought, false or true, and they DO matter because they are thought and will influence our future.

A person who believes we live in a simulation might think that the goal of the simulation is to solve some puzzle. That person might dedicate his life to solving a riddle with much more energy than if he would have different beliefs.

It also seems a bit premature to throw away a philosophy without exploring it. Just one idea: "Would a strong AI have the same thought? Would it try to break out its perceived simulator? How would it then behave towards us?"</comment>


Digg: 40x Performance Increase by Sorting in PHP Rather than MySQL - <AUTHOR> http://highscalability.com/blog/2010/3/23/digg-4000-performance-increase-by-sorting-in-php-rather-than.html

<comment><USER3> On Feed Digest (a RSS feed processor I sold a few years back but was doing ~300m "digests" per month) I had a similar experience, so I think I know why and what they were doing here..

The problem was that even though I denormalized my "posts" (from RSS feeds) table into a "post contents" and a "post metadata" table, MySQL wants to create a "temporary table" to do sorting and pulls every relevant row into it (I found this was even true with indexed columns at the time - I hope they improved it). This can lead to heavy disk access if the number of rows needing to be sorted is too high (consider 100,000 rows of 150 bytes each.. 15 megabytes, not good for a server under heavy load that needs to return a query in < 0.2 seconds).

My solution was to pull out ONLY the post IDs and date (or whatever column I wanted to sort by) from MySQL, do the sort in memory, then pull out the posts from the database by already ordered IDs (e.g. SELECT * FROM x WHERE id IN(9,4,22,38,4,..)). MySQL is crazy fast at giving you back rows X, Y, Z, and so on, if you specify them directly.

I ended up with many more _fast_ queries rather than fewer deathly slow queries, and that was a great tradeoff in the end. I believe the system still runs that way under its new owner.

<comment><USER4> But that doesn't guarantee the results will be in that order. Just because you put your ID's in a certain order in the IN() doesn't mean you'll get them back in that order.

<comment><USER3> Interesting. It's been 3 years since I sold the business and touched the code. The basic mechanic worked as I described, but you're right (just tested), we must have had extra workarounds.

Update: I just realized I have the code in an archive here so I loaded it up. I can't believe this wasn't obvious to me! Since we already had the ordered IDs in memory (to build the SELECT query!) we loaded the posts with a SELECT .. IN into a hash (with the id as the key) then just went through the ordered ID list and pulled out the posts from the hash in the right order! :-)

<comment><USER4> So then why did you bother with the first query and then the IN() ?

Just get your data directly with a search, then array sort the hash using the hash key.

<comment><USER3> _Just get your data directly with a search, then array sort the hash using the hash key._

If I have a table with 10m rows (it was about that) and I want 10 posts from feeds X, Y and Z in reverse date order, to get them in just one query with local sorting I'd have to retrieve _every_ row for feed X, Y and Z down the wire before doing the local date sort.

If I did the sorting with ORDER BY to avoid _that_ issue, the complete JOIN (meta<->full) is used in the temporary sort table so, a bigass temporary table would result for MySQL to do its sorting.. bringing us back to square one :-)

Hopefully I'm not misunderstanding your point though.. it's been known to happen.

<comment><USER4> Using it with LIMIT makes sense, and I forgot you were doing that.

BTW, you were doing this to avoid using too much memory at the database, but by doing this (assuming it's PHP; you didn't say) you are loading the result set twice into webserver memory.

Obviously it worked for you, maybe the webserver had more free memory.

<comment><USER3> It did (though less total memory). Significantly, though, the memory use was ephemeral at the application server end. Do the collation, push to a memcache server, server, and die :-)

</comment></comment></comment></comment></comment></comment></comment><comment><USER5> 1) Sometimes MySQL is bad at things that databases should be good at it.

2) Moving stuff from your database server to your webserver is actually changing the hardware environment it runs on. Especially relevant if your database server isn't keeping up or is RAM constrained or whatever else is different.

<comment><USER6> It's also worth considering that most big sites have more web servers than MySQL servers, and I'm sure Digg is in that boat as well. Doing your sorts on 20 front end nodes instead of 2-4 MySQL servers is obviously going to help improve performance and scaling of your MySQL servers.

</comment></comment><comment><USER7> This quote rubs me the wrong way a little...

"The relational database tool chain is not evolving. It has failed for large scale, real-time environments."

I've been a big user of Postgres for going on five years now and it has made giant leaps in both features and performance. You can't blindly say relational tools are done evolving. I know the other players have made a lot of progress lately too (Oracle, MySQL, etc).

<comment><USER8> PostgreSQL has gained many nice features (windowing queries, parallel restore, moving towards more standardized master/slave replication, etc), but none of them have substantially affected its suitability as a high-throughput/large- data/(relaxed-consistency)/low-latency datastore. (On the other hand, it has become significantly nicer for BI/OLAP workloads.)

Same for MySQL, modulo (possibly) the Drizzle project.

Oracle has a lot of different irons in the fire, but "cheap scaling" isn't one of them. (If you've got the money to burn... TimesTen?)

That's not a knock on any of the above, it's just a different use case.

<comment><USER9> Vertica is designed for scaling. That's based on postgresql and under active development to that end.

<comment><USER8> So is Greenplum (more so, actually.)

Neither are useful for the Digg usecase. Edit: That is to say, they're optimized for large datasets, low concurrency, medium latency, medium-to-high consistency and medium-to-low availability.

</comment></comment></comment></comment><comment><USER10> Old story. Sorry if it's offtopic:

I was running a internal webapp with a 25M rows in a MySQL table. The query for search was something like (pseudosql ahead):

      select * from table where match title_field against search_term order by id desc limit 20

It took around 10 to 12 seconds (it was a slow machine). When I removed the sorting statement in the SQL query (and so, the limit)

      select * from table where match title_field against search_term

Then sorted the returned results with PHP and get the first 20. It took only 1 second.

<comment><USER4> You probably needed to run analyze table.

What it probably did was sort by id (in memory), and then run the search (i.e. check each row if it matched, and stopping after 20 rows), not realizing that it should do the search first, and only then sort.

EXPLAIN .... is your friend here.

Without the order by, the only possible index was the search, so it used that.

And digg probably had a similar error, since it makes no sense for php to be any faster in sorting than mysql.

<comment><USER3> _since it makes no sense for php to be any faster in sorting than mysql._

Perhaps MySQL has improved lately but working on my working knowledge of about 3 years ago, it _can_ make sense to do sorting externally... if you can work with _fewer data_ to do the sorting externally ;-)

MySQL does/used to pull entire rows into the temporary table created for sorting. So if you have a 10,000 row, 100MB table and you're doing a SELECT that grabs, say, 10% (1000) of the rows and sorts them.. MySQL's temporary sort table will be 10MB (I found this to be true regardless of indexes - <USER2> only sped up the creation of the temporary table, but did not reduce its size - but as I was doing complex multi column sorts, it didn't matter anyway).

If you do it in PHP/wherever, you can pull out ONLY the "id" and the column you want to sort by (say, a date), and use only about 1000 * 10 bytesish == 10KB of data to do the id sort. Then you pull the full rows out by id (which MySQL is quick at).

 _Disclaimer: I last did all this about 3 years ago on an early version MySQL 5 deployment doing about 200 queries a second. So I ain't no RDBMS expert and what I say should probably be taken with a pinch of salt._

<comment><USER4> This could work, but then you'd need to generate 1000 queries one at a time, meaning lots and lots of disk seeks.

As long as your sort table stays in memory you are fine even if it's a lot of data, but if you hit the disk then you could be right. (But even if mysql says it hits the disk, doesn't mean it really does since the OS could cache it.)

But there are better ways of handling this. Number one being an index on that column.

You could also split the table in two, one part for sort data, the other for the large data. But I would only recommend that in very special cases, and only after careful benchmarking.

Most of the time just increase the maximum size of in-memory temporary tables.

<comment><USER3> _This could work, but then you'd need to generate 1000 queries one at a time, meaning lots and lots of disk seeks._

Not with a SELECT .. WHERE id IN (x,x,x,...) type query. But, yeah, sort of. I actually _did_ trial with separate SELECTs for every ID at first and it performed surprisingly well.

 _As long as your sort table stays in memory you are fine even if it's a lot of data_

Trueish. At the time, though, it was a 10-12GB database on a 4GB machine and in 2006 I didn't have the cashflow to get anything better. So the most popular parts of the DB were cached OK, but there was little left for temporary tables. I say "trueish", though, because you're still using more memory bandwidth with temporary tables in this situation and that's an issue sometimes.

 _Number one being an index on that column._

The problem was that there were about 8 metadata columns and sorts were done with varying combinations of these (though usually one). Indexes became a big problem at a certain point because of how difficult they made it to clear stale data from the database (at one point we were doing 6 hour maintenance periods each month - with caches picking up the slack - to delete old records).

If I were doing it again, I'd do a lot differently (and not use MySQL), of course.. so your suggestions are certainly useful to anyone tackling a similar problem with 2010 eyes.

<comment><USER11> What would you use instead of MySQL?

<comment><USER3> MongoDB is a running joke with you but, seriously, probably MongoDB along with Redis. It wouldn't be using the same algorithms as it did on MySQL, though. There are better ways to structure that sort of data nowadays.

<comment><USER11> It's funny that it comes off as a joke since I really do love it. I mean, it powers <http://nyhtp.com>. I've had nothing but great experience with Redis, mixed experience with tokyo cabinet and tyrant, and not enough real work experience with Mongo.

<comment><USER3> MongoDB + Redis are proving a winning combination for me so far. Or, rather, the combination of having a fast key/value store with ephemeral key support _and_ a document database is a winner. It gives you two levels and more immediate optimization and separate of concerns opportunities.

</comment></comment></comment></comment></comment></comment></comment></comment></comment><comment><USER12> Whenever I read about Digg's infrastructure, I think of Markus Frind's comments from back in the day. He's the guy who built plentyoffish.com single- handedly. A lot has changed since 2006, but at the time he said that Digg had the worst infrastructure of any major site. A fascinating read, because his basic point is still very relevant today:

"Digg is doomed unless they fire their tech staff." - [http://plentyoffish.wordpress.com/2006/10/08/digg-is- doomed-...](http://plentyoffish.wordpress.com/2006/10/08/digg-is-doomed- unless-they-fire-their-tech-staff/)

</comment><comment><USER13> "Scaling practices turn a relational database into a non-relational database."

When will people learn that the 'relation' in relational database comes from the correspondence between database tables and the mathematical notion of relations, not the ability to describe relationships between tables? Unless scaling practices make a relational database stop using tables, the database still being used as a relational database.

<comment><USER14> While you're technically correct, language does evolve and if 90% of developers think relational means foreign keys and normals forms then that's what it means. Words are used to communicate and sometimes get misused and take on a new meaning; that's just the way it goes. I've met very few developers or database guys who know that a relation comes from the relational algebra and has nothing to do with foreign keys or normals forms.

<comment><USER15> > Words are used to communicate and sometimes get misused and take on a new > meaning; that's just the way it goes.

I sure hope that's not _always_ the way it goes. Because then "then" would soon mean "than" and "than" would mean "then".

</comment></comment></comment><comment><USER16> If the query cache, key buffer, sort buffer, and various engine configs are too small for the dataset then MySQL will take a less optimal approach. MySQL is an RDBMS for persistent data, not a spreadsheet...

"right tool for the job", etc.

</comment><comment><USER17> At my first SA job someone was using the database for some cargo-cult manipulation and sorting - it took eight hours. I rewrote it in a few lines of perl, and it took 17 seconds - 12 after removing the debugging print statements :-)

<comment><USER18> 1337

</comment></comment><comment><USER19> The most popular "solution" to all kinds of scalability problems seems to be to simply not support use cases that don't scale well.

You can't have consistency. You can't query and view your data the way you want to. Only prearranged queries are allowed.

It's all very well to do that, but it's not a better solution to the original problem. It's acknowledging that the original problem is unsolvable or put differently, it's giving up.

Scalability, for me, is making the things scale that I want to do, not doing something that scales.

Sometimes it seems to me that we're heading straight back to the mainframe era where everything that wasn't prearranged, didn't fit the nightly batch window or was otherwise unexpected simply couldn't be done.

The answer to static precomputed reports and highly specialised, highly inflexible data structures were relational database systems and Excel.

<comment><USER20> And yet we still haven't completely replaced those old, inflexible systems, even as we are inventing new ones.

So, were relational databases and spreadsheets really the answer, or just an alternative?

<comment><USER19> Nothing is ever completely replaced, but you can answer your own question by asking _why_ the old systems were inflexible and _how_ RDBMS and spreadsheets improved that situation. It's not just some historical freak event like Betamax v VHS. There's logic.

Hard coded access paths and data structures combined with explicit and selective consistency management is always faster and more scalable provided the number of different use cases is small and requirements don't change much. Doing a small number of things on a huge scale justifies the approach that people like twitter are taking.

Unfortunately what scales physically doesn't scale in terms of logical complexity. As soon as a greater variety of tasks, views and analyses have to be supported, productivity plummets and things come to a screeching halt. That's exactly what happened to corporate IT departments back then. Everything took ages to implement because you couldn't just join over or group by some unexpected set of attributes.

As a reaction to that, two things happened. For one, people tried to free their data from the iron grip of centralised IT departments and put it on PCs and into spread sheets that used very generic data structures to support a very large variety of views and analyses. Nothing had to be predetermined. Of course that also led to utter chaos in terms of consistency and it didn't scale to large amounts of data.

The other idea to cope with hard coded information was to separate the logical representation of information from pysical representations and access paths. Relational normalisation doesn't just guarantee consistency, much more importantly it guarantees the productivity of creating a wide variety of views on data. A separate and independent layer contains all the special casing and optimisations for frequent use cases.

I think the idea of modelling information according to a general, formally well defined logic and separating that model from implementation constraints is a timeless one. It's not just "an alternative". It's a fundamental principle of dealing with information and it's not specific to the relational model. I've been doing this for long enough to know that this kind of purity is hard to achieve and has to be comprimised now and then.

Throwing out good design principles is sometimes necessary. I can see why it is necessary for Google, Amazon or Facebook. But it is going to make these behemoths slower and less flexible. It's a price they pay for their size. It makes no sense for small companies to pay that price whilst not benefiting from the same economies of scale.

</comment></comment></comment><comment><USER21> 4000% sounds so much cooler than 40x

<comment><USER22> 41x one of the reasons I don't like using percents is that people always make mistakes with them. 100% increase is doubling, 200% tripling etc.

<comment><USER23> A 4000% increase isn't a 41x increase. It's a gain factor of 41, or a 40x increase. (Not that it even matters three percent either way here.)

</comment></comment></comment><comment><USER24> I wish I was running a site big enough for these scaling issues with MySql to be a problem. I'm sure an SSD drive or a battery backed RAM drive would sustain some pretty serious growth for all but the really mega sites like digg. This makes me wonder if these super scalable systems will ever be made into products suitable for small and medium sites without a team of uber geeks to support it.

<comment><USER25> I wonder how many sites there are that couldn't be served by MySQL or Postgres with SSDs in a RAID array and 64 gigs of RAM. Of course it is easier to spin up 10 EC2 instances with Cassandra on them, but for the vast majority of sites I don't think relation databases have reached their limits yet.

</comment></comment><comment><USER26> What's different/better about an in-memory database versus STL or Boost collections, or even just creating my own memory-mapped file(s)?

 _Any database system goes far beyond giving you a set of interfaces to manage collections, lists, etc. This typically includes support for ACID (atomic, consistent, isolated and durable) transactions, multi-user access, a high level data definition language, one or more programming interfaces (including industry-standard SQL), triggers/event notifications, and more._

<http://www.mcobject.com/in_memory_database>

</comment><comment><USER27> MySQL is very slow. I've tried MongoDB with the C++ API but I had a lot of "vague" problems and bugs so I gave it up and I think MongoDB is not ready for a production env. However the JSON representation of data is very convenient and very powerful in my case.

I also was playing with Redis and redis-py, but Python is too slow for me. So now at this very moment I'm playing with Memcached and its C API.

Redis and MongoDB look very promising but not reliable yet.

<comment><USER28> But reliable enough for Craigslist?

No critical bug found in 1.0 and 1.2 since their release apart for a replication bug happening in corner case conditions.

Please share with us how Redis is not reliable and I'll try to fix this ASAP.

<comment><USER29> "I couldn't figure out how to make it work, so it must be broken."

</comment></comment></comment><comment><USER30> I remember reading a while back how Digg had tables with thousands of columns. I know MySQL isn't the fastest, but a speedup for Digg really isn't that impressive.

</comment><comment><USER31> If sorting in PHP is 4000% faster than sorting in the DB, then it's a failure of the DB. That shouldn't be the case.

<comment><USER31> I guarantee that sorting in PostgreSQL is faster than doing it in PHP. MySQL is the problem, not databases in general.

</comment></comment><comment><USER32> i thought slashdot figured this out like a decade ago.

</comment><comment><USER33> Old news... We all know what a real PHP coder must write their on DBMS... mostly because sorting is just aweful in Mysql.</comment>


Differential Privacy for Dummies (2016) - <AUTHOR> https://robertovitillo.com/2016/07/29/differential-privacy-for-dummies/ <comment><USER2> One very interesting thing about differential privacy is its connection to generalizability in machine learning. In particular, a model can only provide differential privacy if that model is completely generalizable. Generalizability is the ability of a model to do well on data outside its training set. Non generalized models violate differential privacy because you can find out if someone is in the training set by simply measuring the error rate on that person. A low error rate provides evidence that that particular person was in the training set.

This connection is interesting because it implies that differential privacy techniques applied to machine learning must in turn result in more generalizable models, which is very useful in general. This can also provide a simple "upper bound" on how differentialy private your model is. Simply compare the performance on the training and test set and see how much it differs.

<comment><USER3> > This can also provide a simple "upper bound" on how differentialy private > your model is.

This is a very interesting idea. Are you aware of any resources that go through the mechanics?

<comment><USER4> I think what they are getting at is the following, which isn't a proof or anything (if you are looking for rules to follow, the much simpler "your model isn't differentially private" is probably even more accurate):

Let X be a set of iid samples drawn from a distribution D, let M be a model trained with eps-DP on the set X, and let x' be a fresh sample from D.

Let's think about the random variable M(x'), which represents your test loss or whatever. Differential privacy says that the density of this random variable is pointwise within a factor of exp(eps) of M'(x') where M' is the random model resulting from training on X \cup { x' }. But M'(x') is distributed per a random x', random X, and M' trained on both just like your training loss or whatever.

You can push linearity of expectations through all of this to show that your expected loss on test and training should vary by at most a factor of exp(eps), but I'm not aware of a pointwise test for a specific model (and it may not make sense, as DP isn't a property of specific models, but rather distributions of them).

Edit: you can read a bit more about a special case of this at [https://windowsontheory.org/2014/02/04/differential- privacy-...](https://windowsontheory.org/2014/02/04/differential-privacy-for- measure-concentration/)

<comment><USER3> Thanks, using DP to bound deviations of arbitrary functions of a model is a neat idea.

I wonder if it it makes sense going from generalization error to an estimate of something similar in spirit to (but not as strong as) differential privacy, as the top-level comment suggested?

For example I want to empirically argue that a particular function of my GMM, let's say the log-likelihood of x_i, is "private." To do so I form C iid train/test splits. For each split I estimate the density of the likelihood for train and test samples, and estimate an upper bound on their ratio. As a result I get C samples of epsilon, and I can use some kind of simple bound (Chebyshev?) on the probability of epsilon being within an interval.

The idea is that we already have some "privacy" [1] from the data-sampling distribution. So we don't necessarily need to add noise to our algorithm. And it would be interesting to measure this privacy (at least for a particular function of the model) empirically.

[1] [http://ieeexplore.ieee.org/abstract/document/6686180/](http://ieeexplore.ieee.org/abstract/document/6686180/)

</comment></comment></comment></comment><comment><USER5> An upcoming talk [1] entitled "From Differential Privacy to Generative Adversarial Privacy" implies we can do better than DP:

 _...Our results also show that the strong privacy guarantees of differential privacy often come at a significant loss in utility._

 _The second part of my talk is motivated by the following question: can we exploit data statistics to achieve a better privacy-utility tradeoff? To address this question, I will present a novel context-aware notion of privacy called generative adversarial privacy (GAP). GAP leverages recent advancements in generative adversarial networks (GANs) to arrive to a unified framework for data-driven privacy that has deep game-theoretic and information-theoretic roots. I will conclude my talk by showcasing the performance of GAP on real life datasets._

[1] [https://www.eventbrite.com/e/from-differential-privacy-to- ge...](https://www.eventbrite.com/e/from-differential-privacy-to-generative- adversarial-privacy-tickets-42737831003#/)

</comment><comment><USER6> Looks like a very nice introductory article. One warning is that implementing DP algorithms naively can lead to privacy violations. For example, the python code in the article:

        def laplace_mechanism(data, f, eps):
          return f(data) + laplace(0, 1.0/eps)

This won't actually be private because floating-point numbers are different than real numbers. Real DP projects deal with this more carefully.

<comment><USER3> I've seen this limitation brought up before, but I don't have an intuitive understanding of when it would apply. Is the essential issue spacing between floats?

The scenario I'm thinking in is each user's entry is a real number from U[1e15,1e15+1], and we want to output sum. The sensitivity is still 1. So the Laplace Mechanism outputs something like sum(DB)+laplace(0,1/eps), which will be exactly sum(DB) because laplace(0,1/eps) is smaller than the gap between floats >=1e15.

For this to be an issue, the actual sum(DB) needs to be implemented in full precision right? Otherwise it seems like the sensitivity isn't necessarily 1.

<comment><USER4> [http://citeseerx.ist.psu.edu/viewdoc/summary?doi=10.1.1.366....](http://citeseerx.ist.psu.edu/viewdoc/summary?doi=10.1.1.366.5957)

</comment></comment></comment><comment><USER7> We do need a way to get sensitive data sets to researchers, there is a lot of public good and discovery to be had when we do.

Cynically, when we were finding that de-identification of data was not a cryptographically secure or a viable solution for providing data sets to researchers who couldn't be trusted to protect them, a nagging voice would suggest k-anonymity and now DP were a way to obfuscate the distribution of risk in the solutions through layered niche abstractions, and use the ensuing confusion to get the data toothpaste out of the tube.

Today, I like the idea that DP provides a set of information theoretic criteria for candidate algorithms for protecting privacy and anonymity. It also appears to provide practical tools for technologists to reason about information theory problems in their day to day work.

It's hard to imagine it was acceptable to say, "sure you can do cancer/autism/health research, but first we need a viable generalized homomorphic encryption solution before we share our data with you," but that was the state of health information security up to even recently.

The need for a class of non-cryptological (e.g. not certified algos), and non- zero-sum information privacy protection tools reflects how we actually use data today.

I am still wary that project types will wave DP around like a talisman to ward off security analysts threatening their deadlines, but that's not DP's fault.

There is a joke in here about how the response of security people to DP and privacy is often snark, but I will leave that as an exercise to the reader.

<comment><USER3> FHE and DP aren't concerned with the same definition of privacy. FHE aims to guarantee exactly what is revealed. DP tries to guarantee what can be inferred from what is revealed.

<comment><USER7> Indeed, and I think the definition of privacy that security technologists were applying to health data (in my example) implied FHE or other solutions that were out of reach, as a barrier to doing important research.

It was worth emphasizing these are very different concepts. My association of them was because they are posed as potential solutions in the same business problem domains.

</comment></comment></comment><comment><USER8> I wonder if Differential Privacy will be a solution to GDPR restrictions. If the user's data is purturbed enough that it can't be used to identify the user in it, do some of the restrictions the law mandates to its use reduce?

<comment><USER9> Of all privacy preserving approaches, I believe Differential Privacy has the strongest chance of meeting GDPR standards.

</comment></comment><comment><USER10> > Differential privacy formalizes the idea that a query should not reveal > whether any one person is present in a dataset, much less what their data > are.

I see one problem here: you almost never know all the possible queries in advance.</comment>


Updates to Pricing on the Russian App Store - <AUTHOR>

Dear John,
We've increased the price for apps and In-App Purchases on the Russian App Store to account for changes in foreign exchange rates.
We've also updated the pricing matrix, which is now available in the app's Pricing section in My Apps on iTunes Connect.
Note that we periodically adjust prices on the App Store due to changes in foreign exchange rates. If you have any questions about the price changes, contact us.
Regards,
The App Store team <comment><AUTHOR> Online Apple store has closed down in russia until they come up with new prices for iPhones/Macs/... [http://store.apple.com/ru/iphone](http://store.apple.com/ru/iphone)

</comment><comment><USER2> For Russian freelancers who work for dollars this ruble fall is actually quite a good news. Same work brings you twice the money.

<comment><AUTHOR> For anyone who gets paid in USD it's good, but that is a really small ratio of people.</comment></comment>


Complex view of Islam found in poetry of Iran, Stanford researcher shows - <AUTHOR> http://news.stanford.edu/2016/07/18/complex-view-islam-found-poetry-iran/review/ <comment><USER2> "Earth is flat" \--Religion;

Religion was born when first con-man met the first fool;

</comment><comment><USER3> and this is on HN because...?

<comment><USER4> Because it's intellectually interesting.

It's sad that a rational discussion of something so interesting is impossible here, but that's different from the story not belonging on HN.

</comment></comment><comment> guard-of-terra That's to be expected that difference between "actual historic Islam" and "whatever fundamendalists now push as the only true thing" will be akin to this:

[https://pp.vk.me/c635106/v635106753/217e/XWciycs1P1c.jpg](https://pp.vk.me/c635106/v635106753/217e/XWciycs1P1c.jpg)

Also, fundamentalists just invented most of things they sell as eternal.

<comment><USER5> The images you link to aren't accurate. At least for any country with Bedouin women and Muslim control, these women wore this even hundreds a years ago:

[https://en.wikipedia.org/wiki/Niq%C4%81b_in_Egypt#/media/Fil...](https://en.wikipedia.org/wiki/Niq%C4%81b_in_Egypt#/media/File:Ladies_attired_for_Riding_or_Walking._\(1836\)_-_TIMEA.jpg)

Some other peoples in the same countries of course wore less "fundamental" clothing.

Still your picture with a woman without the head covering and with the skin showing in Bosnia is 100% anachronistic (recent, somebody shot a waitress dressed as a tourist attraction in just some part of the old clothes, according to the Wikipedia page) and surely not "traditional." This is how it looked like traditionally:

[http://l7.alamy.com/zooms/8913992104084b29887dc4ab7fa2fd0b/b...](http://l7.alamy.com/zooms/8913992104084b29887dc4ab7fa2fd0b/bosnian- women-in-traditional-costume-drc82g.jpg)

They still look much nicer than the "modern ninjas."

<comment><AUTHOR> My wife's Iranian and she took issue with that meme as well, saying the "traditional" outfit wasn't accurate, in the case of Iran at least. But I wish someone would make a version of it based on actual historical primary sources, because there really is a striking difference in dress codes when you go back before the 19th century. Google "eighteenth century iranian women" and you'll see very clearly what I mean:

[https://upload.wikimedia.org/wikipedia/commons/9/96/Hasht- Be...](https://upload.wikimedia.org/wikipedia/commons/9/96/Hasht- Behesht_Palace_santur.jpg)

There's no arguing that these are depictions of Muslim women by Muslim painters, so it's a bit simplistic to act as if Islam has always imposed the same interpretation of what "modest dress" means. Anyway, I'm not trying to wade into this larger debate but just wanted to point out that we don't need to speculate about what the traditional dress was like in regions like the Persian or Ottoman empires, there are abundant historical images that show us.

<comment><USER5> I agree fully. Women elsewhere surely wore much more colorful dresses than the Bedouins. At least the younger ones, the black color was at least in some cultures common as the "mourning" color.

Having women wearing black in the areas where the Sun could kill them while men at the same time wear white was surely practical for Bedouins restricting their movement and making them any kind of the "escape" riskier. Luckily, Persia was something else, thanks to its history.

Kindly allow me to be very subjective, to my eyes, Iranian women are beautiful above average (the ones I've met didn't wear headscarves). I do understand the people becoming poets in their presence.

As you are the OP, any chance of obtaining access to the other poems mentioned in the article? Any affiliation?

</comment></comment></comment></comment><comment><USER5> "They are against established religion, they are against established religiosity, against political Islam, against teaching Islam and against the seminary"

Still we get no proofs for that in the article. The quoted poem just uses "wine" but it's not anything "against."

And the fact that Khomeini at some point in his life (maybe as he was young and at the times Iranian women were still allowed to wear miniskirts and it was considered normal (1)) wrote some poetry different from his own fundamentalist actions doesn't make automatically "a complex view of Islam." It just proves that no person is one-dimensional. And these that even at just one point in their lives start to understand their religion as "completely true" are exactly those that start to be obsessed with their own sins in their own lives up to that point and try to do something to "buy themselves back" to heaven. With virgins (remember "completely true") included.

1) [https://figandquince.com/2014/01/24/iran-photographs- vintage...](https://figandquince.com/2014/01/24/iran-photographs-vintage/) [http://www.carbonated.tv/lifestyle/7-images-of-iran- before-i...](http://www.carbonated.tv/lifestyle/7-images-of-iran-before- islamic-revolution)</comment>


Show HN: Draw a map and let it be colored – Four color theorem demo - <AUTHOR> https://www.kleemans.ch/four-color-theorem-map-solver <comment><USER2> In the other direction, Simon Tatham's puzzle collection (many implementations, including a good one on Android) generates maps for you to solve: [http://www.chiark.greenend.org.uk/~sgtatham/puzzles/](http://www.chiark.greenend.org.uk/~sgtatham/puzzles/)

</comment><comment><USER3> Nice. I'd like an "uncolor" button. It's not very useful, but I'd like to see again how the map I have draw is colored.

<comment><AUTHOR> I thought so too, this is why I added the "Generate Image" button, you can save your images even across resetting.

</comment></comment><comment><USER4> Curiously, the theorem implies all maps on a sphere can also be colored. All 2D maps can be considered to be a sphere, by adding a new 'border state' that surrounds the existing 2D map and extends endlessly in all directions. The 2D theorem says this can also be colored.

That can be mapped to a sphere by laying the existing map on a sphere, and making that border state into the 'rest of the sphere'. You have to stretch things, sure. The colorability of the map is not affected by resizing or stretching the map. The fundamental layout of the map is determined by the vertices and edges, not how you 'look at it'.

This also implies that all 2D maps must be colorable in 3 colors on their perimeter. Because, I can always create a new map with that 'border state' that must also be colorable, and the new state can't be any color already on the perimeter. So, the perimeter can only be 3 colors.

The spherical transformation makes this more obvious: every state must have neighbors of at most 3 colors, and that border state is no different from any other.

</comment><comment><USER5> Cool.

It doesn't complete when it gets a hard time deciding what is adjacent and what is not. E.g. [http://i.imgur.com/5HWDB70.png](http://i.imgur.com/5HWDB70.png)

<comment><AUTHOR> Thanks for the hint, I'll have a look into it!

</comment></comment><comment><USER6> Does this use Web Workers? It seems like a great use for them. Although, I haven't been able to get it to take more than a half second on my system so I haven't noticed performance issues.

<comment><AUTHOR> I didn't know about web workers until now, would be a nice to try! I'm not sure though if they work well with ProcessingJS...

</comment></comment><comment><USER7> impressive

<comment><AUTHOR> Thanks!</comment></comment>


I'm building a HN clone in PHP, and I need help - <AUTHOR> Hi, well as the title says, I'm programming a HN clone. I choose PHP because is more simple to find a hosting which provides us PHP.
And I have some questions, the first is about HN comments, in its structure a comment is an item. I'm using MySQL, and my table 'items' can store comments too. My question is: HN has a limit deep in comments? Because is complicate get comments using recursivity.
That's the reason because I prefer use SQL and a limit of comments.
I have no time to finish quickly this project, but I'll try to do it fast.
There are lots of broken links, only works the login/signup and an item views.
URL: http://news.sourcezilla.com
Thanks in advance. <comment><USER2> I am too.

I've found a few methods for rendering trees from SQL, and I find that Stack Overflow is your friend here. The method that seems to work best to me is closure tables - although it's complex, you'll find implementations available. Essentially you need two tables, one for items (in my implementation, which is not online), this is currently only storing name, date, comment, etc - essentially, find the depth of the parent and ++) and another table separately to handle the relationships and build the tree.

If you want to limit comment depth, one way to do that is to keep track of the depth of comments by incrementing a value for each comment (the root comment has depth 0, replies have depth 1, replies to replies have depth 2, etc.) Although this method may lead to anomalies in the data.

You shouldn't need extremely complex recursion, however, as far as I know, apart from self-joins in the database itself. Before using closure tables, I was using a basic method where every item stored its own parent, and a reference to the root post, and this worked except getting an entire tree took multiple queries. (and to be fair, I am not exactly a rocket scientist when it comes to SQL)

Also - ignore whoever downthread tries to criticize you for using PHP. This is about as basic a CRUD app as you can make, as long as you're not doing anything crazy like using the mysql_* functions and concatenating strings, then it mostly shouldn't matter.

</comment><comment><USER3> You need to do self joins. You can have one comments table but there can be parent_id for each comment.

[http://stackoverflow.com/questions/3362038/what-is-self- join...](http://stackoverflow.com/questions/3362038/what-is-self-join-and- when-would-you-use-it) this might help.

<comment><AUTHOR> Yes, my table structure has a parent_id field. The problem is that I need know the depth, or use recursivity to get all parents.

Using hierarchy and recursivity like this: [http://stackoverflow.com/questions/4216875/php-reorder- array...](http://stackoverflow.com/questions/4216875/php-reorder-array-to- reflect-parent-id-hierarchy)

<comment><USER3> [http://www.jongales.com/blog/2009/01/27/php-class-for- thread...](http://www.jongales.com/blog/2009/01/27/php-class-for-threaded- comments/)

see if that helps

<comment><AUTHOR> I'm going to check out. Thanks!

</comment></comment></comment></comment><comment><USER4> Just out of curiosity, is hacker news built in similar fashion to reddit? Considering reddit is a YC invested company. reddit is open source so...

<comment><AUTHOR> Hi dosh, I don't think that HN is build or is inspired in Reddit code/design. Both of them are open source, but Reddit is build in Python and HN in Lisp.

</comment></comment><comment><USER5> I'm up for it. Shoot me an email.

<comment><AUTHOR> What's your email? :-)

</comment></comment><comment><USER6> PHP...Yes, you need serious help.

<comment><AUTHOR> I did choose PHP because lots of servers support the language, so more people will can use the script.</comment></comment>


Ask HN Know of any app/tool built on top of Google social Graph API? - <AUTHOR>

http://code.google.com/apis/socialgraph/
Know of any app/tool built on top of it?
The first idea that struck me was six degrees of separation.  Would take quite a bit of computation though.
Any more ideas? <comment><USER2> How about a visualization hack for the sort of thing below:

[http://socialgraph- resources.googlecode.com/svn/trunk/sample...](http://socialgraph- resources.googlecode.com/svn/trunk/samples/findcontacts.html?q=kevinmarks.com)

You can use the contacts you get for a given person to find people of common interests(last.fm, delicious) for example??

Let me know if you start working on something like this. I was working on improving a music recommendation aggregator(personal project to learn django, started some time back but still unfinished). Maybe the social graph thing would be useful there.</comment>


Airobotics has built a Transformer-like base station for its drones - <AUTHOR> http://www.theverge.com/2016/6/21/11989734/watch-this-robotic-arm-swap-fresh-batteries-into-an-autonomous-drone <comment><USER2> what would be neat is to have drones that can pass a package from one to the other while in flight using a battery charging base station like that. sorta of like an internet router for things.</comment>


Fuse.js - JS Fuzzy Search - <AUTHOR> http://www.kiro.me/projects/fuse.html <comment><USER2> This is excellent. Will definitely give this a shot sometime.</comment>


256 Ruby on Rails Application Examples - <AUTHOR> http://rails-examples.com/ <comment><USER2> Nice, it'd be even more interesting if for each website there was a short discussion on implementation details!

<comment><AUTHOR> looks like it is hard to find those details, but that info would be very useful.</comment></comment>


Apple Just Gave Millions Of Users A Reason To Quit Their iPhones - <AUTHOR> https://www.forbes.com/sites/gordonkelly/2020/03/16/apple-ios-13-iphone-cellular-data-problem-iphone-11-pro-max-u-iphone-xs-max-xr-update/ <comment><USER2> Non-sensationalized title: "iPhones have a bug where 'Uninstalled apps' are using a significant amount of data"

</comment><comment><USER3> [https://www.payetteforward.com/uninstalled-apps-using- data-i...](https://www.payetteforward.com/uninstalled-apps-using-data-iphone- no-theyre-not/)

> Uninstalled apps aren't using data on your iPhone. "Uninstalled Apps" is the > sum total amount of data that apps you've uninstalled from your iPhone have > used since the last time you tapped Reset Statistics.

</comment><comment><USER4> Clickbait title much?

The story is that an iOS bug is burning through data allowances, with no sign of a fix from Apple.

<comment><USER5> It's Forbes Tech Council crap. People pay Forbes an annual fee to become a contributing editor, and put up crap articles under the Forbes brand. All the resulting articles are click bait. Surprised this wasn't from Ewan Spencer.

</comment></comment><comment><USER6> This is FARK. There's a bug. It's fixable. No one is going to give up their phone over a bug that is easily fixable. Come onnnn.

</comment><comment><USER7> Periodic reminder that most of Europe has unlimited, uncapped cellular data plans for absolute peanuts. Mine is £15 per month and £10 for another unlimited SIM in my iPad. Americans should be angry at their service providers about this.

</comment><comment><USER8> Pretty worrying that the phone is sending "audio visual" data to unknown 3rd parties and not tracking who / where / why.

Or do modern clown-world inhabitants think this is great?

</comment><comment><USER9> It's a small bug, Apple will fix it. That is not a reason for "millions of users to quit iphones", relax.

<comment><USER10> A small bug that downloads enormous amounts of data?

<comment><USER11> From the article:

> I checked iOS setting/cellular and saw an uninstalled app used 700-800MB. I > closed the settings and reopened it and it was 900MB. The uninstalled app[s] > used 1.2GB data in less than 5-6 minutes…

It _sounds_ like a reporting bug rather than a data consumption bug. I guess I'd like to know if they saw those same #s from their cellular company?

<comment><USER12> From the article, yes:

> I spoke with Verizon about the usage. They said it's getting categorized as > audio and video streaming, but only because it's using network ports > normally associated with those types of services.

<comment><USER11> Thanks!

</comment></comment></comment></comment></comment><comment><USER13> What a terrible title. What happened to Forbes?

<comment><USER4> "Opinions expressed by Forbes Contributors are their own."

Forbes lets a bunch of "contributors" publish under the Forbes brand. They're coasting on the name having historically good connotations, but the contributor articles are similar to what you might find on Medium.</comment></comment>


EFF to Court: Government Must Inform People That It's Accessing Their Data - <AUTHOR> https://www.eff.org/press/releases/eff-court-government-must-inform-people-its-accessing-their-emails-personal-data <comment><USER2> This makes perfect sense to me. If the government is required to present a warrant in order to enter a home and seize a computer to search for files, why should they be able to ignore the Constitution when it comes to data stored in the cloud?

I like the analogy to safety deposit boxes quoted in the article. Cloud storage has a lot of parallels when you think about it. Current data collection practices would then be comparable to the government going into a bank and looking inside the contents of _every_ safety deposit box. All while not informing any of the bank's customers and putting a gag order on the bank from doing so.

</comment><comment><USER3> This is the kind of thing the EFF should be doing more of!

</comment><comment><USER4> I have a horrible idea, but I'm curious; what would happen if everyone had some ownership of any data they create (such as through copyright) or perhaps data that could be linked to them in any way.

<comment><USER5> You do have automatic copyright on things you create under the Berne convention.

<comment><USER6> But that is ownership of the intellectual property itself, not the 1s and 0s that encode it.

<comment><USER5> Derivatives fall under the same copyright (unless fair use applies). You can't copyright ideas though.

</comment></comment></comment></comment><comment><USER6> Question: If the police obtain a warrant to search my home, and then do so while I'm away on vacation, are they required to notify me?

<comment><USER7> I'd say yes they should be required to notify you. In my not so humble opinion, it could be as simple as sticking a note securely attached on the front door. Even the TSA leaves a note saying it opened my luggage.

</comment></comment><comment><USER8> This would definitely reduce the kafka slide, but it won't happen while public is this complacent.

</comment><comment><USER9> The title suggests that there has been some sort of policy change where the government now has to inform people when accessing their data. What actually happened is the EFF made a statement to a federal court arguing for that, but no policy change has happened.

<comment><USER10> Thanks, we've updated the submission title.

</comment></comment><comment><USER11> Just for kicks the back of my iPhone is plastered with EFF stickers. And I live in China :-D</comment>


Show HN: Kitnic – A new way to share your electronics projects - <AUTHOR> https://kitnic.it/ <comment><USER2> Connect this to macrofab, add an option for group buying, and you'll get a nice one-purchase for fully built projects.

<comment><AUTHOR> Thanks petra, we are really looking forward to exploring options like this. It's very much early days (the site is currently static pages hosted on GitHub and re-built when changes are made).

The first step will likely be to add direct links to the PCB fabs. Assembly would be a step beyond that. I am currently trying to figure out: what are the benefits of an "on-demand" manufacture of open source hardware projects?

<comment><USER3> Hi Kasbah, I'm Chris from MacroFab.

We actually have a lot of people asking us to provide this kind of functionality for open-source projects. In a lot of cases, the projects have complex assembly requirements (like BGAs) that restrict self-assembly to the most capable makers. By making it really easy and affordable for people to order a single unit, they see it as an excellent way to spread their project to the world.

Our model is designed to support the business-side of electronics manufacturing and operations, and our intention is to be impartial to which marketplaces/how makers sell their products. Instead, focusing on enabling connections to those market places. This is why we have not chosen to create this sort of marketplace for our customers directly. (We are integrating with a lot of other popular platforms for makers/inventors that want to sell their designs later this year.)

I'd love to help you create this sort of integration, or to answer any questions you have - please feel free to reach out to me here, or at church at macrofab net. Our API documentation is also available here: [https://factory.macrofab.com/apidoc/v2/](https://factory.macrofab.com/apidoc/v2/)

<comment><AUTHOR> Hi Chris, thanks for that.

Our focus in the short term is getting more content up on the site by helping people put things into the right format.

In the long term we definitely want to look at making the links to manufacturing easier and your API looks interesting.

I had a quick glance at the way you take in position data (what are xyyrs though?). It'd be interesting to try and standardize on something there even just to do some helper visuals for DIY builds.

Btw. getting a 404 on this: [https://macrofab.com/apidoc/v2/raml.zip](https://macrofab.com/apidoc/v2/raml.zip)

<comment><USER3> Sorry about that 404, we did a bit of content re-architecturing last week and it looks like that file got missed, should be fixed now.

Our XYRS (X-postion, Y-position, Rotation, and S[ide|ize]) is combined placement and bill of materials format. For several EDA tools, we extract that automatically (Eagle, KiCad, Diptrace, and anything ODB++), but it provides a complete set of details for us to do the assembly.

For helper visuals on DIY builds, have you seen Copper App? They have one of the best DIY-walkthrough for building that I've seen, on-par with what we've built for our assembly techs, but very clean and polished for casual users.

As you finish building out the platform and start thinking about whether or not you want to provide some direct ordering connections, please keep us in mind. Also, if I can help with structuring data for our service in any way, please don't hesitate to ask!

</comment></comment></comment></comment></comment><comment><AUTHOR> In case the GitHub link on the site isn't obvious enough: [https://github.com/monostable/kitnic](https://github.com/monostable/kitnic)

The site is currently compiled to static pages hosted on GitHub and that's where contributions are handled too (through pull requests). We use Node and Coffeescript for the compilation and ES6+React on the front-end.</comment>


India's Startup Scene Is Growing Fast – Here's Why (by Pulse Co-founder) - <AUTHOR> https://www.linkedin.com/pulse/todays-indian-startup-scene-growing-fast-heres-why-ankit-gupta

<comment><USER2> You need Cash (to bribe)/Caste (to collude) to succeed as an Entrepreneur in India.

[http://www.nytimes.com/2013/06/16/opinion/sunday/caste-is- no...](http://www.nytimes.com/2013/06/16/opinion/sunday/caste-is-not- past.html)</comment>


Who paid 99¢? - <AUTHOR> https://whopaid99cents.com/ <comment><USER2> Finally, a block chain startup I understand.

</comment><comment><USER3> heh, reminds me of [http://milliondollarhomepage.com](http://milliondollarhomepage.com)

</comment><comment><USER4> If you pay me 50¢, I'll tell you who paid 99¢!

<comment><USER3> The best part is, you don't even need to use the 50c to actually find out who paid. You can just make up a name :D

New SaaS idea: verify that the parent comment is actually finding it out for you for a fee (for obviously less than 49c)

<comment><USER4> Hello, I also offer a verification service. For only 40¢, if you give me a list of names, I'll tell you if that list does in fact contain the people who paid 99¢.

</comment></comment></comment><comment><USER5> Article on this: [https://www.businessinsider.com/who-paid-99-cents-website- th...](https://www.businessinsider.com/who-paid-99-cents-website- thinko-2018-10)

You have to pay another 99 cents if you want an update after you've seen it once haha

<comment><USER6> The author(s) of the site could be sneaky and remove those who pay 99 cents multiple times, because they now have paid a sum that is different from 99 cents.

</comment></comment><comment><AUTHOR> I'm really curious to see how much they made

<comment><USER7> Pay 99c and count the responses.

<comment><USER8> I aspire to be great like you some day

</comment></comment></comment><comment><USER9> is there a list any where of these kind of internet novelty's and the speculation on their income?

i think it would be really interesting to see how often these come up and if there is an ideal interval between these to grab maximum attention/profit.

like [http://milliondollarhomepage.com/](http://milliondollarhomepage.com/) twitch plays pokemon etc..

<comment><USER10> That's a blast from the past. I remember that page generating buzz and filling up with ads.

Go there now and click on some of them. Seems 80% of them are parked domains now, and the rest have been transferred to businesses that may or may not resemble the original one.

</comment></comment><comment><USER3> View source tells me this uses Stripe. Stripe charges 2.9% + 30c, which leaves the owner with 66c, basically just 2/3rds. Pretty heavy.

<comment><USER11> Per transaction fees in finance really suck. I struggle a little to understand why more merchants don't get rid of them.. as it still encourages cash for smaller transactions at shops.

Really confuses me. I guess they are smarter than me.

<comment><USER12> > I struggle a little to understand why more merchants don't get rid of > them...

Why is this a struggle? The reason is obvious. Most individual merchants have little, if any, bargaining power. Once you get big enough, you can negotiate lower rates, but you will almost always pay a percentage per transaction. Encouraging cash isn't necessarily a good thing.

Some customers (like me) like the convenience of paying with a card. If a merchant doesn't accept credit cards, I probably won't make a purchase since I rarely carry cash.

<comment><USER13> Encouraging cash is a great thing. I make sure to patronize and speak up about cash where I know the merchant will get the message.

<comment><USER11> It may be a great thing for consumers, but it doesn't seem like a great thing for electronic transaction processors

<comment><USER13> Priorities. Mine are definitely aligned with ordinary people long before payment processors.

Ever had bad things happen? I have. Cash counts then. Payment processors not so much.

Now do not get me wrong. The processors are not doing anything wrong. I am not making a statement against them at all. Just not one for them.

Not a priority, put simply.

</comment></comment></comment></comment></comment></comment><comment><USER14> I'm firing up a Kickstarter for Who'll Pay $1.01.

<comment><USER15> "Paid".

"Will Pay" is a completely different business model here, a riskier one.

<comment><USER14> Yes. Yes it is. Your kickstarter commitment to this "worthy" cause is essentially saying you'll be back with your $1.01 when we go live. And since $.99 was taken I had to go much higher.

</comment></comment></comment><comment><USER16> If this were my project it would take you to a page that says "You Did"

</comment><comment><USER17> I am really really curious to pay 99 cents, if there was a way to pay without giving my credit card information.

Who paid 99 cents 2.0 supports paypal or something.

<comment><USER18> You can try [https://privacy.com/](https://privacy.com/)

</comment></comment><comment><USER19> Haha, what a fantastic business model

<comment><USER20> This is a very generous use of the word "business".

<comment><USER21> This is _exactly_ what a business is: offering people something they want in exchange for money.

If parent had said this was a sustainable or reliable business model, that'd be a different story.

<comment><USER13> Yup. It is lean and mean too. Brilliant.

</comment></comment></comment></comment><comment><USER22> Quick and clever way to nab some card numbers.

</comment><comment><USER23> Should use lightning network for payments. No scammy credit card network fees.

<comment><USER24> Also at least 99.99% less potential customers, but hey.</comment></comment>