Is direct P2P microlending financially sustainable? - <AUTHOR> http://p2p-microlending-blog.zidisha.org/2014/06/13/is-direct-p2p-microlending-financially-sustainable-lessons-from-zidisha/

<comment><USER2> Hi Julia, Zidisha seems to be serving a valuable need.

I had designed and developed a credit exposure and credit risk management for large corporate and commercial banking for a large Canadian bank and I am curious to know how credit exposure and risk is managed by Zidisha.

a) what collateral do you accept and how do you value the collateral?

b) do you consider country risk ? and how do you quantify individual's risk profile ? have you developed a credit risk model ?

c) would you consider offloading credit risk by partially securitizing your loans?

d) Countries where you operate in have a serious risk of document fraud. can you share stories of fraud mitigation ?

f) finally, what kind of lenders do you seek ? Are you looking for altruistic people or people seeking to spread their investment risk ?

e) Also, do you realize that you have the opportunity to become the Equifax of third-world countries ?

<comment><AUTHOR> a) what collateral do you accept and how do you value the collateral?

We don't accept any collateral, because 1) most of our borrowers are low- income individuals just entering the working population, and don't have any substantial assets, and 2) a collateral-based credit risk mitigation system would be too expensive relative to the size of the loans (the starting loan amount is $50 - $150).

b) do you consider country risk ? and how do you quantify individual's risk profile ? have you developed a credit risk model ?

Currently, once a borrower is admitted to Zidisha, lenders alone judge country and credit risk. However, we're currently working on a data-driven credit risk model to complement our other risk mitigation measures.

c) would you consider offloading credit risk by partially securitizing your loans?

Not in the near term, because our lending model is too new and changes too rapidly for credit risk to be easily quantifiable. In addition, we'd be concerned about moral hazard.

d) Countries where you operate in have a serious risk of document fraud. can you share stories of fraud mitigation ?

One of the major shifts in our lending approach has been a move away from document-based vetting. For example, we used to require local community leaders (religious officials, school principals etc.) to sign recommendation forms for loan applicants. We found that fraudulent applicants would forge these, even having false organizational stamps manufactured for this purpose. It was possible to mitigate this by telephoning the officials who signed the forms and asking them to verify their institutions' addresses or other hard- to-remember information, but it proved too difficult for our all-volunteer staff to cope with the erratic phone networks and linguistic barriers once we started processing thousands of applications.

We never did figure out a way to mitigate document fraud at scale. Instead, we developed other verification methods that were more difficult to falsify, and reduced the initial loan amount, until the costs of getting a fraudulent application through our vetting system outweighed the expected gains.

f) finally, what kind of lenders do you seek ? Are you looking for altruistic people or people seeking to spread their investment risk ?

We are looking for altruistic people, who want to help people in the world's poorest places without dependency-creating handouts or exorbitant interest rates. Zidisha at present is not viable as a purely commercial investment.

e) Also, do you realize that you have the opportunity to become the Equifax of third-world countries ?

Yes, that's an interesting possibility, though I've not yet heard of Zidisha being used in this way. Most people who can borrow with Zidisha do not seek credit elsewhere.

</comment></comment><comment><AUTHOR> I'm Julia, the founder of Zidisha. I'd be happy to answer questions here.

<comment><USER3> Have you considered adding bitcoin support to your product? Assuming the receiver has a way to convert bitcoin to/from their local currency, this may remove some friction in transfering value between individuals. btcjam.com is doing something like this with bitcoin.

<comment><USER4> What use would that be? Far more people in the world have not used bitcoin than the percentage that has, it looks like it might be a cheap PR win but in actual usage it will amount to a small fraction of nearly nothing. And then you still have to convert them with associated costs and repay the lender in some ridiculously volatile currency.

Supporting bitcoin (unless you are a bitcoin start-up) seems like a silly thing to do for a company that needs to prioritize due to resource constraints.

<comment><USER3> 1) People without bank accounts can receive BTC, and sell them for cash

2) Sending BTC internationally is simpler than sending fiat

<comment><USER4> How will they sell them for cash without using an exchange and/or a bank account?

I can't just convert a bitcoin sitting in my wallet to something I can give to someone else to exchange for cash without a whole pile of guarantees.

The only people I can trade bitcoin with for cash is other bitcoin users, which - as I noted above - are few and far between.

Yes, sending BTC internationally is simpler, but that does not mean the recipient can do the same things with them as they can do with fiat, and as such it just shifts the problem to the recipient. When you send cash (using for instance western union) it is almost instantly available as well, without all the downsides of having to find someone that will trade your bitcoins at something approaching their market value.

<comment> rational-future Western union will often take over 5% of a transfer through fees and extremely greedy exchange rates. A BitCoin transfer on the other hand is virtually free.

IMHO there will be a high overlap between people using a lending startup and Bitcoin users, as both are modern bank alternatives.

In my humble experience exchanging Bitcoins for cash was hard a couple of years ago, but not today. All my geek friends and colleagues use it.

</comment></comment></comment></comment></comment></comment><comment><USER5> Can this be approached as a (low or high risk?) investment, from the borrower's perspective, or is it mostly about helping third world inhabitants without any substantial ROI for borrower?

<comment><AUTHOR> We are intended as a platform for philanthropy. Any interest returns wouldn't be enough to compensate for risk.

<comment><USER5> thanks for clarifying!!

</comment></comment></comment><comment><USER6> I like the concept of P2P microlending, especially enabled by technology, so the loan sharks can be kept out of the system.

But to really be sustainable and have a high-impact (as a tool for economic growth in the 3rd worlds, not as a business per se), it should be more localized. Think at something like localbitcoins.com - as a working system - ignore the bitcoin part of it. This way you can get rid of the most of the taxes and decrease the level of fraud.

<comment><AUTHOR> I think domestic P2P platforms are a big untapped opportunity in developing countries, especially large ones. They are still rare; Fairplace in Brazil is a notable exception.

An international platform like Zidisha can offer a different value proposition, in that 1) we enable arbitrage in purchasing power parity between wealthy and developing countries (the price of dinner at an upscale restaurant in America could finance the startup of an entire restaurant in Kenya), and 2) our users value the chance to connect with an ordinary person on the other side of the world, learning about their culture, socioeconomic realities, etc.

</comment></comment><comment><USER7> Just a suggestion, you should have a link back to the main zidisha.org domain from the blog.

</comment><comment><USER8> Oh great. Payday loan sharks meet Wall-street meet the developing world. The whole concept of microlending is based on the free market fantasy that poor people can build their own businesses and be self reliant, as if market entry barriers don't exist. As if a weaver investing in a manual loom does not face the competition of textiles industrially produced in China for pennies.

The financial sector jumped all over microlending: it's a virgin market for financial services ("the unbanked"), the default rate is low because the existing social structure is leveraged (like MLMs, Amway etc.), and the profit potentials are huge. Meanwhile, they can claim they are helping people and the nasty effects of this type of loan sharking take place in a far away country to people who can barely understand they are victimized.

Poor people need jobs and education, not high interest loans that will just finance survival. The developing world will increase it's standard of living the same way the West did: large scale efficient production, ran by educated and productive workers earning wages and creating demand. It will not be via a bunch of banana cart pushers.

<comment><USER9> The short response is: Payday loans have APR up to 1000%. These ones are comparable with bad rating, but still reasonable, long-term bank loans. Payday loans capture people who need food or pay the late bills _now_ , discussed loans are (usually) for pretty well-defined business purpose.

> Poor people need jobs and education

Good, microlending helps them create a job, or sustain it themselves rather than looking for one. Or do you think someone should come in from outside and do it for them?

> large scale efficient production

So... China's mass production model then? How do you propose jump-starting that?

Edit: On a specific example:

[https://www.zidisha.org/microfinance/loan/MwangiGituathi/791...](https://www.zidisha.org/microfinance/loan/MwangiGituathi/7915.html) (first non-trivial-shop entry from front page)

\- started business using the first loan

\- got successful, tries to expand to another location

\- creates job for another

\- money helps him get the education

Isn't that exactly what you wanted him to achieve? (job*2, education, person capable of creating your large scale production environment in the future, wouldn't call him victimised)

<comment><USER8> > China's mass production model then? How do you propose jump-starting that?

By loans made by the private or public sectors for the purpose of developing large scale productive capacities ? Craftsmen can't compete with industrial production, there is a minimal scale problem.

> microlending helps them create a job, or sustain it themselves rather than > looking for one.

A $50 loan can't do that. You will not get an education and you will not build a business with $50, not even in the poorest village on Earth. You might help a small business owner solve a crisis situation and find some stability.

The source of poverty is lack of investment, micro-loans will drain resources out of the community (principal + interest) and leave very little actual productive capital behind.

While the idea as initially conceived by Yunus was well intentioned, the focus on lending (as opposed to developing and building) has transformed it into a form of loan sharking. Many of the newer Microlending networks that operate in India have focused so tightly on performance and profit and so little on the welfare of the clients that it has resulted in a slew of suicides and assorted tragedies: [http://www.bloomberg.com/news/2010-12-28/suicides-among- borr...](http://www.bloomberg.com/news/2010-12-28/suicides-among-borrowers-in- india-show-how-men-made-a-mess-of-microcredit.html)

Edit: the example you provide is just that, an anecdote. It's certainly possible, but is the dominant story or the exception ? At 20% interest rate in US dollars, plus any volatility the local currency will induce, we are talking about credit card level rates, and not business loans. The introductory loan in 50 to 150$, if you need more you need to build credit, just like credit cards. How well are the borrowers and their scheme selected ? What's to prevent it from becoming a way for poor families to finance interest bearing consumption, just like a credit card ?

On a case by case basis, there are opportunities for development that can withstand 20% interest because the local need for that service is so great, thus the amortization is very rapid. There is a massive risk in this internet driven model that borrowers are selected solely for their ability to repay, and that scale and growth becomes the driving factors.

You will NOT spur development by simply lending money to the poor, quite the contrary you will lock them into a high debt, high interest form of consumption that is all too familiar to poor families in the West.

<comment><USER10> >micro-loans will drain resources out of the community

That is so not how capitalism works. Money is a means to induce labor. Right now there is a lot of human capital in developing countries that is wasted because there is no financial capital to fuel it. Imagine a young person willing to labor 18 hours a day building widgets. Instead he just sits around because he can't find a job building widgets (or afford the materials to buy the raw materials.)

<comment><USER8> The key phrase you leave out is "and leave very little actual productive capital behind". People does not equal human capital, you need educated and experienced people.

The only way the borrowers can repay the USD principal + interest back to the external financiers is to participate in world trade, to export or at least substitute the import of widgets from industrialized nations. Will a micro- loan create the conditions for such competitive production ? Hard to imagine.</comment></comment></comment></comment></comment>


Why no one will ever read your thesis - <AUTHOR> http://kent.ewakened.com

<comment><USER2> No one will ever read my thesis because I wrote it to fulfill a bunch of requirements set up by my program and my advisors. I didn't actually write it for the average person to read - it probably isn't even all that readable by most standards. But it flew through the approval process, which was my intention.

After two years in grad school, I was looking to finish, and not to win an award. I could imagine that PhD students are even more desperate after 4-6 years in school.

<comment><AUTHOR> haha wow... so true

</comment></comment><comment><USER3> Basically he is talking about the trench war one has in scientific writing. Call one side side A, and the others side B, and imagine there is a student who tried to read a thesis and did not get it. Side A will say: "Well, he is too stupid to unterstand my thesis", while Side B will say: "well, he might not know enough basics to understand your thesis, but I rather think that you just wrote incomprehensible gibberish".

I second his part about the informal parts very, very much, even though I would call this 'informal part' examples and motivations. Tell us in simple examples what your definition means, what your algorithm does, how your consideration works in this simple example, even if the example might be borderline with wrongness and oversimplification. It helps a lot, even though it is hard to find good examples :)

</comment><comment><USER4> Simon Peyton-Jones manages to write papers that are genuinely readable. He has some good advice on the subject:

[http://research.microsoft.com/en- us/um/people/simonpj/papers...](http://research.microsoft.com/en- us/um/people/simonpj/papers/giving-a-talk/giving-a-talk.htm)

</comment><comment><USER5> This was what I wrote in my post-PhD failure write-up:

"It is important to understand, from the outset of the PhD, who your target audience is: it's you. I remember hearing that, on average, 1.6 people will read your PhD thesis. I'm pretty sure that includes yourself, your spouse, your supervisor, your second supervisor and your examiner (yeah, that's technically 5 people. If someone says they've read your thesis, they're probably lying -- they read page 9). You have to accept, that no one in the world will want to wade through this document. Ever."

[http://jamie.ideasasylum.com/2008/07/things-i-learnt- during-...](http://jamie.ideasasylum.com/2008/07/things-i-learnt-during-and- about-my-phd/)

<comment><USER6> Oh man, that rang true! (I just read the whole post). I did manage to finish mine a few years ago, largely running on fumes and requiring a re-write largely from scratch after the initial examination with a near-nervous- breakdown during each write-up... but other than that I think every point resonated.

</comment></comment><comment><USER7> I accept the fact that not many people will read my thesis.

Scientists in the field will not read it because they are not interested in all of the details of the analysis. They are only interested in the result, which will be published in a four page paper that only broadly explains the methods of the analysis.

My mother will not read it because I won't be writing it for her. When she asks me what I did, I will explain it in a way that she can understand. If I'm lucky, some science journalist will write an article about it, and I can send her the link.

</comment><comment><USER8> There are multiple audiences: 1) peer scholars familiar in your area of research trying to determine if you really did and understood what you said you did and understood 2) someone who is not a scholar and wants to learn about your topic

Write a separate paper for #2. Use contractions and exclamation points. Present related work in a framework that tells a good story instead of that catalogs the space. Skip correctness details and drill in on implementation specifics.

Something for both audiences will just be too long and boring for either.

</comment><comment><USER9> _Each academic paper, thesis, dissertation etc. should be written in two parts: One formal and one informal._

This should serve as a reminder to all researchers and writers; write a good abstract

Abstracts not only help the informal reader understand the concept. They introduce the reader to the broad stroke of the research and greatly assist information workers in their discovery.

</comment><comment><USER10> Every professor I have actually talked to about what constitute a thesis has professed the staple method: you take your best research papers and staple them together. This is an exaggeration, of course, because the document actually has to flow, but I have the definite impression that you can get a Ph.D. in computer security with multiple at least somewhat discrete projects.

</comment><comment><USER11> Too late. Many people already did. It helps if you produced something other people can base their research on.

</comment><comment><USER12> Once I was writing a simulator for a reversible CPU, and the best documentation available was the man's PhD and Master's dissertations. When I told my instructor about it, he said "geez, I hope nobody ever has to read _my_ thesis" which I thought was sort of an odd concept.

</comment><comment><USER13> I can think of about 10-15 people worldwide who might be interested in my thesis, and since 3 of them are going to be examiners and all of them know each other it seems like a pretty quick way to disseminate the information. Well, except for the writing time... :)

</comment><comment><USER14> Tell the University you refuse to make it double-spaced. Then maybe I will read it.

</comment><comment><USER15> No one will ever read your thesis... if it sucks. I have read many, many theses. In fact, I prefer to read theses than conference papers, because a thesis does not have as many editorial constraints.

This kind of generalization is dumb. "No one will read your thesis". Is that a law of nature? Does that apply to Claude Shannon? His M.Sc. showed how to map Boolean logic to electric circuits. I mean, who would ever want to read such a thing, right? ;-)

OK, enough of the title. I am all for making research work available and accessible, just as long as the quality of the work is not sacrificed. Research will always be difficult. It can't be made _easy_ by adopting a new writing style, but it can be made _easier_.

<comment><USER16> _This kind of generalization is dumb._

So is reading hyperbole as logical fact. It's his thesis that needs to be accurate and unambiguous, not his blog entries.

<comment><AUTHOR> Sorry shard... didn't mean to strike a chord... it was a poor choice of title.

I am merely saying that we should bring the best parts of fiction and storytelling to academic writing as I believe more people would be read it and gain inspiration / insight from it.

<comment><USER16> I am actually commenting on TriinT's comment, not on your title. I'm not very agitated by hyperbole in blog titles. I also agree with your proposal that academic writing have informal sections which explain things in a manner that's not obfuscated for those not in the field.

</comment></comment></comment></comment><comment><USER17> In software, you can write code, why bother writing theses?

Write some useful code, open-source it, promote it with talks on conferences.

Noone wants your "research".

</comment><comment><USER18> No one will read your post after you write a new blog post and the link to your blog's root has nothing to do with the HN title.</comment>


Mathematicians discover a perfect way to multiply (2019) - <AUTHOR> https://www.quantamagazine.org/mathematicians-discover-the-perfect-way-to-multiply-20190411/ <comment><USER3> BTW you may have noticed that the paper multiplication method we all learned in third grade is digit-by-digit _convolution_ , which is an O[n^2] operation. But what does convolution in the time domain become when we switch to the frequency domain? It becomes digit-by-digit multiplication, which is O[n]. So now you see why the FFT is essential here. The extra factors of logn and log(logn) are about taking the FFT itself in both the forward and reverse directions.

So fast multiplication is about looking at numbers as _signals_ and doing signal processing on them.

<comment><USER4> There's a theorem known as the Convolution Theorem: [https://en.m.wikipedia.org/wiki/Convolution_theorem](https://en.m.wikipedia.org/wiki/Convolution_theorem)

Much used in simplifying kernel operations and convolutions (and some other nifty tricks.)

Another useful idea is also that in the domain of the fourier transformation we have exponentials (Fourier series are some series of $ c_n e^inx$), and when multiplying exponentials we get $ e^ix * e^iy = e^i(x + y) $

Moreover this is usually coupled with the case where we integrate on some periodic signal (so it's integrated from 0 to 2pi, and unless the product of e^i(x+y) = e^0 = 1, then the integral becomes 0 as well. )

</comment></comment><comment><USER5> > Regardless of what computers look like in the future, Harvey and van der > Hoeven's algorithm will still be the most efficient way to multiply.

This is only true if you just look at the big O notation. However, if you also look at the constant involved to get C * n * log(n) + C2 as an upper bound for the number of operations for the calculation, there can be faster algorithms with lower constants C and C2. And these algorithms also will be of practical interest.

Also, as I understand it, it was not actually proven (yet) that O(n log(n)) is the fastest possible class.

Also, you could also study the average runtime, instead of the worst case upper bound. There are cases where the multiplication can be much more efficient than O(n log(n)). An algorithm could be clever and detect many such cases and then maybe end up in a strictly better average runtime class. Or I'm not sure if it is proven that this cannot be the case.

Similarly, sorting algorithms are still optimized more and more, although the worst case complexity is always O(n log(n)) (ignore integer sorting for now). But average and best case runtime complexity is relevant. And memory usage complexity as well. And other properties. And of course also these constants which matter in practice.

A big C2 basically corresponds to the galactic algorithms, mentioned in another thread here.

<comment><USER6> Another thing to consider: sometimes you don't need to multiply precisely. If you can live with small errors, further speedups are possible.

</comment></comment><comment><USER7> While this approach may have practical uses, the "sufficiently large numbers" bound got me reading about Galactic Algorithms...

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

<comment><USER8> I found this line amusing:

>This means it will not reach its stated efficiency until the numbers have at least 2^1729^12 bits (at least 10^10^38 digits), which is vastly larger than the number of atoms in the known universe.

"Vastly larger" is one of the biggest understatements I've ever heard. It's roughly 10^10^38 times larger.

I can't think of a better way to write that line. I just found it funny.

<comment><USER9> Neat seeing 1729 show up there.

[https://en.wikipedia.org/wiki/1729_(number)](https://en.wikipedia.org/wiki/1729_\(number\))

<comment><USER10> Wikipedia also says that 1729 was the year of the largest/brightest comet ever seen.

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

</comment></comment></comment></comment><comment><USER11> "For millennia it was widely assumed that there was no faster way to multiply. Then in 1960, the 23-year-old Russian mathematician Anatoly Karatsuba... found it."

I have a bizarre mental tic wherein I will often read a story like this and then fantasize about going back in time to just before the discovery, and present it myself, in essence stealing it. I'll get quite far along in my daydream before the absurdity collapses the narrative.

Are there others of my kind, here?

<comment><USER12> That's really funny. I love the weird fantasies we cook up.

I have a variation of this, where I travel back in time to before some long dead person did what made them famous and tell them all about their discoveries and all the wonders that came from it.

It's usually accompanied with a hint that they won't remember our conversation, so it won't affect history, but they'll enjoy marveling at it for a short while.

<comment><USER13> I usually have a fantasy where i travel back in time to middle ages/ancient times and try to:

* convince people i am not a devil worshipper/magician/time traveler

* explain how some concept works.

Imagine trying to explain electricity to Pope from 1000 AD, or mathematical functions, and integration/derivative to Greek philosophers etc.

</comment></comment></comment><comment><USER14> Title, paper version:

> Integer multiplication in time O(n log n)

[https://hal.archives-ouvertes.fr/hal-02070778/document](https://hal.archives- ouvertes.fr/hal-02070778/document)

<comment><USER15> For anyone else just looking for an outline of the new algorithm: last two paragraphs of p4, first two paragraphs of p5.

Coming from a position of a few abstract algebra classes in college many years ago, all the words and notation are familiar but I am a long way from being able to follow it.

</comment></comment><comment><USER16> Previously on HN [https://news.ycombinator.com/item?id=19474280](https://news.ycombinator.com/item?id=19474280)

<comment><USER17> Also [https://news.ycombinator.com/item?id=19672835](https://news.ycombinator.com/item?id=19672835)

and [https://news.ycombinator.com/item?id=19644374](https://news.ycombinator.com/item?id=19644374)

</comment></comment><comment><USER18> I think I'm misunderstanding something about the article. In what way is this method perfect, as is mentioned multiple times? Is it not just an incremental improvement over standard practice?

<comment><USER19> In computational complexity, we have some proofs that a certain cost is the absolute bare minimum that an optimal solution must expend. We have the same for some mechanical systems too.

If you get the order down to the proven limit, especially for the first time, people sometimes use the word 'perfect', even if there are potentially other solutions with lower constant overhead, or lower practical overhead (see also Timsort, which uses insertion sort for leaf operations).

> Second, in that same paper Schönhage and Strassen conjectured that there > should be an even faster algorithm than the one they found — a method that > needs only n × log n single-digit operations — and that such an algorithm > would be the fastest possible.

Is this saying that there is a proof in there paper that nlogn is the cheapest? If so it certainly beats around the bush.

<comment><USER20> A conjecture is a proposition that is suspected to be true. So there would be no proof in the paper, but likely some arguments why the authors expect it to be true.

<comment><USER19> If a scientist were writing the article about the paper, yes. But everyone has been quick to point out is definitely not the case.

</comment></comment></comment></comment><comment><USER21> Gotta admit, I started chuckling at "We use [the fast Fourier transform] in a much more violent way..." I've known some math geeks in my day, and this sounded like them.

</comment><comment><USER22> > Two decades ago, computers performed addition much faster than > multiplication. The speed gap between multiplication and addition has > narrowed considerably over the past 20 years to the point where > multiplication can be even faster than addition in some chip architectures. > With some hardware, "you could actually do addition faster by telling the > computer to do a multiplication problem, which is just insane," Harvey said.

Is this true for popular architectures such as Intel and ARM?

<comment><USER23> An Intel Haswell chip, when doing floating point vector operations, can dispatch one addition per cycle, or two fused-multiply-add. The latency is worse for the FMA (5 cycles versus 3 cycles), but if you've got enough parallel accumulations to hide that latency, then using FMAs for addition will be faster than addition.

This is a consequence of Intel optimising for FLOPs (or - equivalently - <USER2> matrix multiplication), as an FMA counts as two FLOPs, versus addition counting as just one.

<comment><USER24> Is that just because multiplication is so commonly needed that there is double hardware allocated for FMA?

Like, if I had a special purpose adding machine and a special purpose multiply machine, and I bought a second multiply machine, then I could multiply large numbers faster than adding, but that's not insane, that's resource allocation.

<comment><USER25> A floating point add works roughly like this:

0\. Extract mantissa and exponents from the inputs [basically free in a HW implementation].

1\. Combine the two exponents and shift the mantissas so that they same the share scale.

2\. Add the two mantissas together.

3\. Normalize the result back into a floating-point number.

Now look at the process for a floating-point multiply operation:

0\. Extract mantissa and exponents from the inputs [basically free in a HW implementation].

1\. Add the two exponents together.

2\. Multiply the two mantissas together.

3\. Normalize the result back into a floating-point number.

Steps 0 and 3 are identical in both cases. I'm not really knowledgeable about hardware multiplier implementations, but doing an additional "add" operation can be pretty close to free in some implementations. In any case, adding in an extra adder to the process is going to be quite cheap, even if not free.

What this means is that there is not much extra hardware to turn a FMUL ALU op into an FMA ALU op... and if you make just a single FMA ALU op, you can use that hardware to implement FADD, FMUL, and FMA with nothing more than microcode.

In other words, instead of thinking of FMA as something worth pouring more resources into, think of it as FADD as not worth enough to be made its own independent unit.

<comment><USER3> FP units are not used in integer bignum operations. I'm still curious if "multiplies can be faster" applies to modern _integer_ ALUs.

</comment></comment></comment></comment></comment><comment><USER26> Respect :). I Implemented Karatsuba a while ago and wondered if an even faster method would be available. It is!

I admire the perseverance, grit, and intelligence needed to crack hard nuts like this.

<comment><USER27> This new method will be marginally faster if you ever need to multiply two numbers on a scale where writing down the bits fills every plank-length cube in the known universe.

Otherwise the "practical" benefit is limited to saving a few symbols when writing abstract math papers.

<comment><USER28> > "The best we can hope for is we're three times faster," van der Hoeven said.

And they talk about billions of digits elsewhere in the article. I doubt that only applies for the ~8.46e184 digits you seem to be talking about.

<comment><USER27> From last time this came up, the number of _bits_ in the numbers involved is 2^(9^12). Storing a count of the number of bits takes about 930 billion digits. Actually storing the bits or digits of the numbers per se takes a whole lot more, to say the least.

[https://hal.archives-ouvertes.fr/hal-02070778/document](https://hal.archives- ouvertes.fr/hal-02070778/document)

</comment></comment></comment></comment><comment><USER29> The traditional method in the article looks a bit different from how I learned it, which was this way [https://www.wikihow.com/Do-Double-Digit- Multiplication](https://www.wikihow.com/Do-Double-Digit-Multiplication),

The overall description of it looks right, but in the picture the order of operations would be more like B, C, D, A not A, B, C, D

<comment><USER30> Yeah, that's a bit nonstandard order but multiplication, of course, is associative and commutative, so it doesn't really matter.

</comment></comment><comment><USER31> >"Over the past decade, mathematicians have found successively faster multiplication algorithms, each of which has inched closer to n × log n, without quite reaching it.

Then last month, Harvey and van der Hoeven got there.

Their method is a refinement of the major work that came before them. It splits up digits, uses an improved version of the fast Fourier transform, and takes advantage of other advances made over the past forty years. "We use [the fast Fourier transform] in a much more violent way, use it several times instead of a single time, and replace even more multiplications with additions and subtractions," van der Hoeven said.

Harvey and van der Hoeven's algorithm _proves that multiplication can be done in n × log n steps_.

However, it doesn't prove that there's no faster way to do it."

</comment><comment><USER32> Looks like Joris is now at SFU according to his homepage: [http://www.texmacs.org/joris/main/joris.html](http://www.texmacs.org/joris/main/joris.html).

Would be cool to run into him someday

<comment><USER33> Yeah now that SFU got the hosting for Canada's West Coast supercomputation, they've been attracting top-shelf talent.

<comment><USER32> Yeah, a buddy of mine works at D-Wave. They held the world record for the longest quantum state (or maybe still do, I think it was like 15 mins or something) and I'd joke that they couldn't get past 15 mins because they'd lift the lid to check if the "quantum state was still okay".

But seriously, D-Wave is doing some pretty amazing stuff. The Lower Mainland, in general, is an awesome place to be career wise. Just a shame about the housing situation

</comment></comment></comment><comment><USER34> This is amazing to me: > "Their conjecture was based on a hunch that an operation as fundamental as multiplication must have a limit more elegant than n × log n × log(log n)"

Only in maths (and sometimes in its "implementation"/ expression in nature in conjunction with physical systems) can such a subjective viewpoint be so powerful.

Also blows me away, at least at first, that multiplying using an _FFT_ would be the fastest method so far. (I guess I have an older mindset based on how slow FFTs used to be.) I wonder in actual implementations at how many digits the perf curves meet at break-even compared to other methods.

<comment><USER24> When you say FFT is slow, did you know any way to multiply large numbers that was fast? Or you assumed it was without evidence?

<comment><USER34> Huh?

</comment></comment></comment><comment><USER35> Does this apply to division? division being multiplication by the inverse. I wonder because

> And while the new algorithm is important theoretically, in practice it won't > change much, since it's only marginally better than the algorithms already > being used. "The best we can hope for is we're three times faster," van der > Hoeven said. "It won't be spectacular."

wow, what an understatement! 3x is huge.

so if it speeds up factorization, even by 1.5x, then that's significant for RSA isn't it?

</comment><comment><USER36> There's a constraint that I as a civilian am missing. Could someone please put me out of my misery:

n.m (in integers) can be computed by starting with zero and adding m to it, n times. That's n operations. Errrrr _cough_ , assuming that the computer can deal with an arbitrarily large n and m.

<comment><USER37> You do n times m operation. that's nm.

<comment><USER36> 10.10 = 10 + 10 + 10 + 10 ...

That's 10 operations.

10,000,333,999 . 33,123,456

That's 33123456 operations.

<comment><USER38> How much does each operation cost? Adding together two 5 digit numbers and two 5,000 digit numbers should be counted differently, don't you agree? So perhaps we should count the number of single-digit operations required.

In that case, adding two five digit numbers will require 5 (or so) additions, and two 5,000 digit numbers will require 5,000 (or so) additions.

What about a 5,000 digit * 5,000 digit multiplication?

Just the very first "big" addition in your scheme will require 5,000 single- digit additions. But that result might now be 5,001 digits long (think of how 99+99 results in a 3 digit sum). Do it again, and if you have carries, it might be 5,002 digits long.

So you'll have 5,000 + 5,001 + ... = 5000N + (1 + 2 + ... + N) operations. How many times does this repeat, that is, what is N? Well, however big your multiplier is! Your multiplier is around N = 10^5000. So you'll need a total number of additions approximately equal to

        5000 * 10^5000 + 1 + 2 + ... + 10^5000

And what is 1 + 2 + ... + N? It's N(N+1)/2\. So we have

        5000 * 10^5000 + 10^5000*(10^5000 + 1) / 2

which we might as well estimate to be

        (10^5000)^2.

That's a _lot_ of operations. And that's an _under_ estimate! Even grade school multiplication is a lot simpler (if you count single-digit multiplication to have a cost of 1): it only requires 5000^2 elementary operations.

The goal of these funny multiplication algorithms is to beat (number of digits)^2 single-digit operations. What the article shows is that of you have enough digits, you can do only

        (number of digits) * (number of digits in the number of digits)

operations to do the multiplication, perhaps off by some fixed, constant factor.

</comment></comment></comment></comment><comment><USER39> If the title had "almost the perfect way" it would be the perfect way to write this title.

But, leaving that out increases your earnings by a constant factor.

<comment><USER40> It's not yet known if it's only "almost". If it is indeed optimal, then "almost" would be wrong (from a big-oh perspective).

</comment></comment><comment><USER41> Call 's' the number of bits of the maximum of the two numbers, 'n' and 'm', that you're trying to multiply (that is s = max(lg(n), lg(m))).

Standard "long multiplication" works in O(s^2) time [1].

To speed things up, consider the univariate polynomial whose coefficients are the base representation of each number (for example 10 = p(2) = 0 + 1 _2^1 + 0_ 2^2 + 1 _2^2). Multiplying two polynomials algebraically (h(x) = p(x)_ g(x) = sum (i,j = k) p_i _g_i_ x^k) then evaluating at some point (e.g. '2') is the same as multiplying the points of each polynomial at 's' different points and then using the resulting points to interpolate back to the multiplied polynomial and then evaluating at the same "base" point (e.g. '2').

That is, take 's' points, w_k, evaluate p(x) and g(x) at each of the w_k points, multiply each of the evaluated points together (that is, p(w_k) * g(w_k)) then interpolate back to get the multiplied polynomial, h(x). Evaluate h(x) at the original base (e.g. '2') to get the resulting number.

Take each of the w_k's that have some symmetry, say the roots of unity, and you can exploit various tricks that are either the Fourier transform or similar to go back and forth between the algebraic representation and the 'point representation' in O(s lg(s)) time.

The bit complexity of the evaluated points along with a host of other factors meant that the algorithms discovered were O(s lg(s) lg(lg(s))) or nearby. I would recommend "Fundamental Algorithms of Algorithmic Algebra" for a good introduction [2]. The article mentions the various methods but they go by Karatsuba [3], Shonhage and Strassen [4] among others.

I haven't read the paper but it looks like they're exploiting some 'symmetry' of multivariate rings that are each "simple" and of the form (x^r -1), where r divides some exact power of 2 and does some Fourier transform like tricks in each of those rings.

Pretty cool that they've reduced it down so much.

[1] [https://en.wikipedia.org/wiki/Multiplication_algorithm#Grid_...](https://en.wikipedia.org/wiki/Multiplication_algorithm#Grid_method)

[2] [https://www.amazon.com/Fundamental-Problems-Algorithmic- Alge...](https://www.amazon.com/Fundamental-Problems-Algorithmic-Algebra- Chee/dp/0195125169)

[3] [https://en.wikipedia.org/wiki/Multiplication_algorithm#Karat...](https://en.wikipedia.org/wiki/Multiplication_algorithm#Karatsuba_multiplication)

[4] [https://en.wikipedia.org/wiki/Sch%C3%B6nhage%E2%80%93Strasse...](https://en.wikipedia.org/wiki/Sch%C3%B6nhage%E2%80%93Strassen_algorithm)

</comment><comment><USER42> I can't believe this is a thing. I showed this to my grade school teacher and she told me I was doing it WRONG. I just new it worked so I kept using it.</comment>


Say no to end to end tests - <AUTHOR> http://googletesting.blogspot.com/2015/04/just-say-no-to-more-end-to-end-tests.html

<comment><USER2> I can't believe it was written by Google engineer... It's like promoting of approach "my module works" \- when you use unit-tests only, everything can work fine but not in collaboration. How it's not obvious for that Google engineer? I'm sure it even sounds offensive for a lot of Google engineers, especially for those who work on e2e-testing tools. See how many downloads one of them have in npm: [https://www.npmjs.com/package/protractor](https://www.npmjs.com/package/protractor)

It's the most awful article what can be found in that blog.

</comment><comment><USER3> Why does it have to be Unit Tests vs. End-to-End Tests, as opposed to, "a few end to end tests can compliment comprehensive unit tests"?</comment>


Ask HN: Free or cheap Flight Data? - <AUTHOR>

I was thinking of making a little web tool where you enter your flight number, and the email address or phone numbers of people you want to be notified if your flight is late.<p>Do you know if there's a free or cheap data source to get flight information like estimated arrival time (in close to real time)? <comment><USER2> Free and cheap, I don't know... but I would build it using Flightaware.

<http://flightaware.com/>

<comment><USER2> Pricing, fyi:

<http://flightaware.com/commercial/flightxml/>

<comment><AUTHOR> Thanks, that sounds the most promising.

</comment></comment></comment><comment><USER3> I know for Philly =] <http://www.phl.org/cgi-bin/fidsarrival.pl>

</comment><comment><USER4> Most airlines will do this for you. Check the website in question for details.

</comment><comment><AUTHOR> well the idea is that the tool would be checking the updated flight status every few minutes while you're on the plane. so I need a data feed, not just the ability to look it up once.

</comment><comment><USER5> How about just googling it?

"ua 941"</comment>


Lisp Tips - <AUTHOR> http://lisptips.com/

<comment><USER2> I went through HtDP awhile back. Mind-blowing, changed the way I approached programming, yada yada. Scheme held a special place in my heart for years after.

Back then I would have loved to have found a job where I could have used it. I settled for Ruby. After a year of using Ruby seriously, I started to wonder again about using Scheme, so I took a look at some of the available options.

Naturally, like everyone else in this situation, I ran into the brick wall of just not having the community support Ruby has, so it's very difficult to justify using it on any project except purely personal projects, and even then, it's more about exploring a domain rather than exploring a programming paradigm, so I never did get to do anything serious in Lisp. Clojure's nice and all, but the JVM is turning into quite the bit of baggage, hard to justify using it over Ruby.

That's when I took another look at Ruby and realized it did pretty much everything I needed, meta-programming-wise, why bother with continuations and macros when you can use composition and module mixins to achieve practically the same thing? (environment tracking and easy DSL creation) Sure it's not as mathematically pretty as Lisp is, but Ruby syntax is still much prettier than Lisp's.

After awhile I realized that the HtDP way of solving problems and the OO/SOLID way work equally well. You'd just use one with a language like Ruby and the other with a more functional paradigm like Lisp. OO is plenty flexible if you avoid listening to the zealots.

One focuses on the functions/data and the other focuses on the classes/objects. Screw that, I say focus on the domain. Make that logic as tight as you can, then introduce interfaces to it. With that model, Ruby works Just Fine.

<comment><USER3> > Ruby syntax is still much prettier than Lisp's

No. Lisps have no syntax at all. You write your programs in AST form. It's not possible to compare this to writing Ruby or Python. For the comparison to be fair you'd have to write Python like this:

        Module(body=[
            Expr(value=Call(func=Name(id='map', ctx=Load()),
                            args=[Lambda(args=arguments(args=[Name(id='x', ctx=Param())],
                                                        vararg=None,
                                                        kwarg=None,
                                                        defaults=[]),
                                         body=BinOp(left=Name(id='x', ctx=Load()),
                                                    op=Pow(),
                                                    right=Num(n=2))),
                                  Call(func=Name(id='range', ctx=Load()),
                                       args=[Num(n=100)],
                                       keywords=[],
                                       starargs=None,
                                       kwargs=None)],
                            keywords=[],
                            starargs=None,
                            kwargs=None))
        ])

And I believe that in this case something like this:

        (map (lambda (x) (sqr x)) (in-range 100))

Wins hands down in beauty, readability and any other "metric" :)

<comment><USER2> I don't get at all how you say that to get a decent comparison, you have to write your Python/Ruby in AST form. That's just silly. Any language requires multiple transformations before it can be run by the processor, Lisp is no different.

S-expressions are definitely a syntax, that's close to the AST it parses into, but not quite. You still need a parser, because there's still quite a bit of ambiguity that gets introduced by language features like macros.

What's the point of printing out Python's AST and saying it isn't readable? It's not _designed_ to be read by humans!

That last bit would look like this in idiomatic Ruby:

        (1..100).map {|x| x ** 2}

... which I think is far more readable than your Lisp, almost half the characters, and it translates its intentions better, by putting the more important information first, the values of the range being mapped, and compactly representing the predicate function. You can omit the lambda keyword entirely because syntax allows you to denote one in a much more legible way. Can't do that with Scheme, there's no way to denote an inline function without it. Guess what, that's syntax.

S-expressions sacrifice readability because not every programming idea needs to be expressed exactly the same way. applying a lambda function should not be expressed in the same way as passing a value as an argument. They're two completely different actions, they solve two different problems, and that should be reflected in the syntax. Otherwise you have to read the code more closely to try to figure out what it's doing.

And what you're gaining, homoiconicity, is a neat trick, but I've learned that it isn't really necessary for anything. I do find myself wanting it whenever I'm doing something really abstract like AI programming, but it's not like I really need it or anything. You can easily use language-specific meta- programming to solve the same problems, and the learning curve for that is a bit steep, but it will make you a better coder in the end.

<comment><USER4> > S-expressions are definitely a syntax

For data. s-expressions are not a syntax for Lisp. Only for data.

> You still need a parser, because there's still quite a bit of ambiguity that > gets introduced by language features like macros.

Macros introduce no ambiguity. They are destructuring and/or transforming the code.

Much less noise than your Ruby example:

        (mapcar 'sqr (in-range 100))

        (loop for n from 1 to 100 collect (sqr n))

Lisp as a programming language is based on words, tree structure and indentation, not so much on special characters. That's different from Ruby. But reading and parsing words is not really different to learn, otherwise you would have problems reading this text, which has lots of words and few special character.

<comment><USER2> > For data. s-expressions are not a syntax for Lisp. Only for data.

Such a strange statement! Code IS data in Lisp.

> Macros introduce no ambiguity. They are destructuring and/or transforming > the code.

And just what do you think syntax rules do? Any language could be represented with s-expressions. They just choose not to because s-expressions are a pain in the ass to read. The earlier example mapping square over a range expressed the exact same idea, so the representation is identical. You could write code to transform Ruby into s-expressions the same way Coffeescript compiles to Javascript. Nobody has yet, guess why?

> Much less noise than your Ruby example:

One could argue that the glut of parentheses are themselves noise. There are other ways of structuring Lisp programs that don't use them, but rather a one statement per line syntax like every other language. Also that prefix notation isn't natural for humans to read, dot notation is much more intuitive, which is why it's used in so many languages. Also that the special characters in, say, Ruby's block syntax reduce noise by providing visual cues to what parts of your code are what.

But whatever, if you think

        (1..100).map {|x| x ** 2 }

is noisy, then there's really no point in arguing with you, because we see the world two totally different ways.

And this:

        (loop for n from 1 to 100 collect (sqr n))

...looks exactly like a Ruby-style DSL implemented in Lisp. If I saw that in someone's code I'd be like, WTF is that doing? A method with 8 parameters? Oh wait, it's a macro. Why use a macro for that, what's wrong with building the range with a function instead of reimplementing BASIC in Lisp? Isn't the whole point to get away from imperative style?

<comment><USER4> > Such a strange statement! Code IS data in Lisp.

Code is represented as data. But that does not mean any data is code.

For example

        (defun foo (a) (let ((b 10)) (+ a b)))

is valid data and valid code.

        (defun (foo a) (let b 10 then (+ a b)))

Above is valid data, but not valid code.

        CL-USER 27 > (defun (foo a) (let b 10 then (+ a b)))

        Error: (FOO A) is neither of type SYMBOL nor a list of the form (SETF SYMBOL).

The syntax for DEFUN is:

        defun function-name lambda-list [[declaration* | documentation]] form*

The syntax for LET is:

        let ({var | (var [init-form])}*) declaration* form*

Both syntax definitions are violated.

Obviously, the syntax of s-expressions is not enough to describe the syntax of Lisp. Far from it. S-Expressions just describe a textual syntax for data: symbols, numbers, strings, lists, cons cells, ... But it does not describe the syntax for defining functions, defining variables, exception handlers, function calls, etc.

> They just choose not to because s-expressions are a pain in the ass to read.

They aren't.

> Isn't the whole point to get away from imperative style?

Lisp makes no commitment to a particular style. 'imperative' is just fine. As is functional, object-oriented, rule-based, ...

</comment></comment></comment></comment></comment></comment><comment><USER5> too bad it hasn't been updated in a half a year :/

I would really like to find an active version of something like this

<comment><USER6> I ran out of tips!

I've been collecting a few more to post in the future, but my bag of tricks has been mostly laid bare on the site.

<comment><USER7> I submitted a tip a while back (a small reader macro trick for DO/DO*) -- don't know if you ever got it.

</comment></comment></comment><comment><USER8> Someone should make a Scheme tips site.

<comment><USER9> I saw one in the form of a wiki awhile back. schemers cookbook maybe. The venerable (lambda-the-ultimate) and readscheme still excellent. We can always use more lisp and scheme oriented sites.

</comment></comment><comment> mck- Here's a SLIME tip I recently found out:

C-c I -- this will give you an inspector that is much better than using (inspect foo)</comment>


News Corp is Selling MySpace for $100 Million - <AUTHOR> http://socialtimes.com/news-corp-is-selling-myspace-for-100-million_b59885

<comment><USER2> News Corp is still walking away from this in the money.

Sure they bought the thing for $580m and now selling it for $100m, but they had many many good years of $750m-$1bn revenue ( _ok we don't know what profit looked like given Fox Interactive is a private company but I'm sure it was strong)_.

It also put skin in the game for News Corp that was otherwise going to miss out on an entire generation of innovation.

As someone who briefly worked for MySpace during the glory years, I'm not weeping any tears for Rupert.

<comment><USER3> I had similar thoughts when it was announced three months ago that MySpace would be put up for sale, but I now think otherwise after getting a response pointing out MySpace's massive losses in recent years.

Take a look at this site: [http://www.bnet.com/blog/advertising-business/news- corp-may-...](http://www.bnet.com/blog/advertising-business/news-corp-may- never-profit-from-myspace/5493) It lists the (lack of) profitability of News Corp's "Other" category over the years (of which MySpace is a large part).

Here is my own research from doing Google searches of when MySpace is mentioned in News Corp conference calls for quarterly reports:

2006: [http://markpincus.typepad.com/markpincus/2006/04/myspace_rev...](http://markpincus.typepad.com/markpincus/2006/04/myspace_revenue.html)

2007: [http://www.zdnet.com/blog/btl/news-corp-myspace-on-track- to-...](http://www.zdnet.com/blog/btl/news-corp-myspace-on-track-to-top- annual-sales-of-500-million-post-modest-profit/4449?tag=rbxccnbzd1)

2008: [http://www.zdnet.com/blog/btl/fox-interactive-turns- annual-p...](http://www.zdnet.com/blog/btl/fox-interactive-turns-annual- profit-myspace-revenue-to-top-800-million-in-fiscal-2008/5899)

2009: ???

2010Q1, 2011Q1: <http://www.pcmag.com/article2/0,2817,2372103,00.asp>

From these links, it seems like MySpace had total revenues of only $200 million in 2006 (not sure of the profit), netted "modest" profit in fiscal 2007 on $500 million and $10 million on $550 million revenue in fiscal 2008. Also, for at least two quarters over the past three years, MySpace has lost $100-$150 million (and likely lost similar amounts in at least some other quarters during this time).

<comment><USER2> Based on my knowledge those numbers are off.

In terms of what we can talk about publicly, Google had a search deal with MySpace that was worth $900m over 3 years. Your quoted numbers combined over the three years the contract was in effect barely reflect that. And the Google deal was just for remnant advertising - MySpace made a solid income selling display advertising, 'take over homepages' (worth $$$), etc.

<comment><USER3> >Your quoted numbers combined over the three years the contract was in effect barely reflect that.

I don't know anything beyond the sources I listed in this post and have no idea if the quoted information is correct or not. (I could perhaps try to find transcriptions from the actual calls, but I'm not going to do that.)

But just so we're on the page (you said the numbers barely reflect the $900 million), the revenue numbers I listed were for fiscal 2006-2008 while the contract was for fiscal 2007-2009 so looking at fiscal 2008 and 2009, this data suggests that Google provided only around 60% of their revenue during this time. I wouldn't call that 'barely', although it still might not properly reflect their revenue from other sources.

</comment></comment></comment></comment><comment><USER4> The 100m figure and some of the facts in the article are simply not true or are already old news by this time. I will state as I have in the past - I'm an engineer at Myspace (correct capitalization now) but my opinions do not reflect that of my employer. I think it's public knowledge that they are in a sales process, but nobody is throwing numbers around here or company names. Mike Jones (the CEO) is doing a great job of internal transparency and it's pretty obvious that there is no set price. If it was as easy as just throwing down $100m as the top bid, somebody already would have swooped in and bought it.

<comment><USER5> Actually it would pretty much be that easy as $100mm is way more than it's worth. The reason you're reading that it's for sale is because the buyers and sellers probably havent agreed upon a price and Fox is shopping it to a bigger market in order to drive up valuations. If the buyers and sellers had agreed you'd be reading about a buyout.

A better and way more interesting question is if you had the $100mm to buy it what would you do with it? I've created an Ask HN if anyone is interested in a more thorough discussion. <http://news.ycombinator.com/item?id=2495933>

</comment></comment><comment><USER6> For me, this further confirms the value of usability and design. Facebook did a better job, and so people used their service.

I can't help but draw a parallel with what is currently happening in the tablet market. There was a quote posted on daring fireball yesterday from Jim Dalrymple: "There is no compelling argument that anyone can give that says that comparing an operating system to a hardware device makes sense. None."

I think he's nailed it, we've entered a phase of computing where software counts for more of the value of the device or service.

<comment><USER7> I know everyone sprouts this as a big reason, but I reason network effect was the bigger reason. Facebook spread around the cooler demographic, mainly college kids, built huge momentum and just became a steam roller. I think initially design of facebook was minimal only because they didn't have a good designer and disregarding the importance of hip factor in social sites is misleading.

<comment><USER8> I think people preferred the original default privacy settings of facebook too. Also i'm not sure it was necessarily a "cooler" demographic but more a younger/newer/not myspace one. We may well still see Facebook suffer a similar fate as users transition to a more "fashionable" site in the future.

<comment><USER9> Did they have default 'privacy' settings? I just remember being able to view the profile of anybody who went to my university. I think the only reason I found it useful then was because I actually used it to meet new people in my dorm. Myspace at the time couldn't be used to find such specific people.

"You live on the 7th floor of Terry and like foo video games, I live on the 9th!"

Its usefulness declined after that first year.

</comment></comment></comment></comment><comment><USER10> I'm glad newscorp is letting them go. MySpace isn't the kind of company that fits well with uncle Rupert's business philosophy. During his tenure as the owner of the company they've donked off tens of millions of users because he doesn't get the Internet and never will. That said, there's still tens of millions of users on the site and it can become a viable business once again. Will it ever come back to where it was before FaceBook? Probably not. But it can still be a business that generates hundreds of millions annually. Which by any metric isn't bad.

</comment><comment><USER11> How much would you pay for MySpace? Some people think they are lucky to get $100 million.

</comment><comment><USER12> It seems like Google would be a potential buyer. They've made it no secret that they're interested in getting into the social network game. Purchasing MySpace would be a nice way to bootstrap their service with users.

<comment><USER13> I'm not sure purchasing a dying service with a negative brand is a good way for Google to get into the game.

With Google's recent level of seriousness directed toward social, I sincerely doubt they are looking to acquire the central parts of their upcoming endeavor.

</comment></comment><comment><USER14> "i'd buy that for a dollar!"

</comment><comment><USER15> They overpaid by ~$240 million when they bought it and should consider themselves lucky if they get what they're asking now.

</comment><comment><USER16> I'll give you $100 _dollars_ for it.</comment>


Hitlist, a Smart Flight Finder That Saves You Money by Telling You When To Fly - <AUTHOR> http://techcrunch.com/2014/02/07/hitlist-a-smarter-flight-finder-that-saves-you-money-by-telling-you-when-to-fly-exits-beta/ 'Hitlist, meanwhile, hasn't so much invented the concept rather than re-imagined it for the mobile age, with "lean-back" search in mind.' <comment><USER2> Okay, so I thought I'd be able to use this as a web app and mobile app. Wrong, and I think that's a mistake. For large purchase decisions I generally use my computer rather than my phone.

I was interested, though, so I downloaded the app. The only option is to use Facebook to login. They say they've done this in order to cut down on the time it takes to launch the site, and will add an alternative later. Unfortunately that's not good enough for me, and I won't be using Facebook to login.

It seems really odd to lock the app behind a login anyway. Why not open it up and ALLOW (not force) people to log in? If you're trying to attract customers, let them use it! Don't require them to download an app and create a login before they even know if it's worth it.

Zillow does this well. You can use the search and see the value of the site right away, but you don't have to log in unless you want to start favoriting homes and saving searches. These features are useful and it makes sense to me. This just seems like poor planning for launch.

<comment><AUTHOR> Really good points. We're figuring this out as we go along and really didn't anticipate the backlash against Facebook login. As for requiring login at all, we do think personalization is key to the experience and that's the best way to guarantee it. But the Zillow analogy is a good one and we've been working on building out a browse option. This is only the first iteration!

<comment><USER3> The problem with demanding a login / email address up front is that it has value and is implicit permission to spam away. This is before someone has the opportunity to see if the app/site is what they wanted in the first place. It is a terrible way to start a relationship.

</comment></comment></comment><comment><USER4> I don't understand, why is this an app and not a website? Also has some interesting reviews with it's 2 stars average on Google Play. Users seem to not like the fact that it requires facebook login, it's laggy and doesn't have a great UI. Personally haven't tried.

<comment><AUTHOR> Hey, this is one of the founders. App not a website for now for a variety of reasons: 1\. Personalization is key to what we do and people are more comfortable signing in to something on mobile 2\. The mobile use case encourages us to keep the feature set small and useful - on web it's easy to keep adding features 3\. Mobile still more of an open playing field at this point I'm not sure all these reasons are the best reasons, but we had to build some way and this is just a start. We'll definitely have a web component down the line.

<comment><USER5> Just wanted to say you guys need to focus on removing the facebook login requirement before anyone in this community will take it serious.

<comment><USER6> Just to give a difference of opinion, I don't think that this is necessarily representative of the entire HN community. I for one maintain a FB account almost exclusively for apps like this, so that I can reuse my social graph.

Disclaimer: I've done work in the past with one of the founders on a former iteration of this product.

<comment><USER4> Yours is not a bad idea, having a separate account, but I think that the number of people that have one is definately a minority respect the people that will just ditch the app because of it, worse, on mobile they will leave a bad review.

</comment></comment></comment></comment></comment><comment><USER7> Whenever I see tools like this, I have to point out Flightfox - [http://www.flightfox.com](http://www.flightfox.com). If you're thinking of booking a trip that could run on the expensive side, there's no doubt in my mind that experts will do better than any single tool out there (or yourself) ever could... you'll pay a small fee to run a contest, but you'll still likely absorb that cost in savings.

Do yourself a favor and run a contest. Even better, spend some time trying to find the lowest price you can, then pay the $40+ to watch a few experts demolish your travel-planning skills.

Often times they'll find miles hacking / loopholes / etc. that only a human could put together. The various experts behind that site are _ridiculously_ good at getting you deals. The more complex and "open" your trip, the more space they have to save you money.

<comment><AUTHOR> Have used and loved Flightfox, but it's more for elaborate itineraries. I don't want to pay a $39 finders fee to let me know when there's a flight to Miami for less than $200

<comment><USER8> If you are travelling overseas, it doesn't take much to get to $800+ per ticket, so for a couple, the finders fee is quickly irrelevant.

</comment></comment></comment><comment><USER9> FYI the app requires Facebook account.

from the app: "Q: Why is Facebook required?" "A: We haven't had time to build an alternative yet"

<comment><USER10> The first version was built with Facebook login on purpose, because we offload the social graph building to FB. Destinations are suggested based on where your friends currently live, and where they've previously been or want to go in the future.

It's not just about not bothering with user registration and passwords, it's about using the data from FB to give users added value.

We are in the early stages of building a completely non-social experience, including possibly a fully-logged out mode, which will use even more signals to suggest destinations. We don't have an ETA to announce for this as of yet.

-Luka (Hitlist)

<comment><USER11> Ugh really? Travel for me is almost exclusively about _getting away from_ my "social graph." If I'm taking a vacation it is hopefully no where near anyone I know.

<comment><USER12> Well said.

</comment></comment></comment></comment><comment><USER8> I just don't get it. I have an upcoming vacation, where we are generally going to Spain/Portugal, but don't care what city we start in, and our dates are flexible. I thought this app might be useful for this case. So I plug in Lisbon, Barcelona, Madrid, Seville, etc. And my Flights section just says "No Deals" still. How do I get flights to show up? I'm pretty sure there are a few flights to Europe from NYC.

(Also, you probably should take New Haven Tweed airport out of the list when it's finding closest airports. Because that airport is no one's homebase, given it only flies to Philadelphia.)

<comment><AUTHOR> Noted on New Haven Tweed, good point, thanks.

We're still working on upping our coverage of all routes at all times, but for now you'll only see something from NYC to Spain/Portugal if we find something really out of the ordinary - for us, usually means 8 cents per mile or less. For now, I'd recommend using Skyscanner.com and searching for flights from NYC to Spain or NYC to Portugal. Also, I'm jealous, I wish I were going to Spain/Portugal with you.

</comment></comment><comment><USER13> If you're flexible, try Nowcation ([http://nowcation.com/](http://nowcation.com/)) built by a team of students out of UMich or take a look at Kayak Explore ([http://www.kayak.com/explore](http://www.kayak.com/explore)). The only downside is that it doesn't learn your preferences over time which will help Hitlist find more esoteric destinations that you might not have normally considered.

Maybe if they integrate Rome2Rio's API,they can offer more options since you can combine airfare + local transit costs to even more destinations.

</comment><comment><USER14> Umm Farecast? [http://techcrunch.com/2008/04/17/microsoft-acquires- farecast...](http://techcrunch.com/2008/04/17/microsoft-acquires-farecast- for-115m/)

<comment><USER13> Farecast predicts airfare price movement over the next 7 days for a set itinerary (dates, origin/destination). This service tells you when you should go on vacation, not when you should buy your airfare ticket.

Source: I was part of the Farecast team.

<comment><AUTHOR> Hey, I'd love to ask you some questions - mind dropping me a line at firstname.lastname@example.com?

</comment></comment></comment><comment><USER15> The idea sounds good. I always thought why most travel/ticket sites don't have a feature like that (the search _always_ assumes you have set date to leave and return, there's no way to search, e.g., "all flights for the next 10 days, sorted by price").

<comment><USER16> Try this:

[http://matrix.itasoftware.com/](http://matrix.itasoftware.com/)

It will let you do searches like "flights between <date> and a month later, staying <n> to <m> nights"

You can also put in travel agent routing codes, which let you do stuff like "flights on American Airlines, connecting through Atlanta" or "not connecting though Chicago". Very handy.

<comment><USER15> This is excellent, thanks a bunch.

</comment></comment></comment><comment><USER17> Hypothetically speaking, if everyone that flies used this and only bought tickets when it told them the prices were low, wouldn't that eventually swap the prices of tickets since those prices fluctuate based on popularity?

And then even further after that people would continue to only buy tickets at the swapped low prices and at the end of the line prices would all even out at all times.

<comment><AUTHOR> I long for a world where everyone uses this! But that's a ways off. Regardless, I think there's a need for a much more efficient exchange where airline tickets are concerned - that's part of why we're building this. Right now many, many people want to travel, but the current search paradigm makes it incredibly difficult to find the things relevant to them, so they never end up traveling. Buying tickets isn't just a function of price, it's also having time off work, having people to visit or travel with, and knowing enough about a destination to want to go there.

</comment></comment><comment><USER18> Expedia and just about everybody else has a "flexible dates" option which will let you do this already.

This isn't new by any stretch, the old as dirt [http://www.airfarewatchdog.com/](http://www.airfarewatchdog.com/) will tell you the cheapest days in the coming months for flights.

<comment><USER15> I needed a service like this in the past, but this one doesn't seem to have good coverage.

"Sorry, we don't feature fares for that departure city, but we've got tons of other fares! Try another search."

I'm in the biggest city of the american continent.

<comment><USER19> Why not just say that you are in São Paulo? [http://en.wikipedia.org/wiki/S%C3%A3o_Paulo](http://en.wikipedia.org/wiki/S%C3%A3o_Paulo)

<comment><USER20> Because some people might not realize São Paulo might be a big deal if he just said the name. Of course, best would have been if he had mentioned both facts.

<comment><USER19> It is just one fact in this case.

</comment></comment></comment></comment></comment><comment><USER21> How is this better than Google flights? (Which shows you a calendar where each day's box has in it the cheapest fare for that day.)

<comment><AUTHOR> Still have to search for all the destinations that might appeal..

<comment><USER22> Google Flight Search (and the ITA matrix that powers it) also lacks pricing for some of the cheapest carriers, although I'm not sure how much better your app is in that respect.

If I was building a "flexible destination" app I'd be particularly keen to offer hotel bundles too, since they're higher margin and well suited to people lazily looking for the cheapest vacation meeting basic criteria within a broad time frame.</comment></comment></comment>


JavaScript damn well needs Elvis - <AUTHOR> http://asserttrue.blogspot.com/2009/03/javascript-needs-elvis.html

<comment><USER2> People are all arguing about whether to use baling wire or duct tape to fix something, maybe it's time to rethink the problem from the ground up.

Nulls are really turning out to be a language misfeature, IMO, and patching over them with Elvis or .andand or .try is really starting to smell.</comment>


Ask HN: Who Uses SVN in 2019? - <AUTHOR> Respond if your team still uses SVN in 2019. Format:<p>- Primary reason for using SVN<p>- Team size<p>- Organization<p>- Location<p>- SVN ecosystem feature wish list <comment><USER2> The Archlinux package repositories[1][2]. At least, they seem to be using svn first and then mirror to git. I wonder if there's a benefit in doing so, or if it's just because of inertia.

[1] [https://git.archlinux.org/svntogit/](https://git.archlinux.org/svntogit/)

[2] [https://wiki.archlinux.org/index.php/Arch_Build_System#Retri...](https://wiki.archlinux.org/index.php/Arch_Build_System#Retrieve_PKGBUILD_source_using_SVN)

</comment><comment><USER3> \- Simple server admin for personal (and 2-person) projects

\- 1 / 2

\- A couple

\- UK

\- The ability to do even more without a live connection</comment>


Snake Game using jQuery - John-Lee http://www.webdeveloperjuice.com/2012/03/29/how-to-make-snake-game-using-jquery/

<comment><AUTHOR> There is a bug. If you are traveling right, then quickly press down, release down, then press left, and release left, you will die. This is not snake behavior.

<comment><USER2> I experienced the same bug. It makes quickly turning to get a 'food' block in an adjacent cell very difficult.

<comment><USER3> Yeah I think it misses some moves based on the timing loop

</comment></comment></comment><comment><USER4> Why is this interesting? Is there some novel technique used here? The quality of the site its hosted on certainly isn't great.

<comment><USER5> I found it interesting that it works at all given that it's using td elements as board cells, jQuery to compare dom elements for cell referencing/dereferencing, and setInterval to update the animation and gamer input.

</comment></comment><comment><USER6> I had a bash a while back at getting a snake game to play how I wanted:

[http://waynecrouch.co.uk/jsnake/](http://waynecrouch.co.uk/jsnake/) (source: [https://github.com/wgcrouch/jSnake](https://github.com/wgcrouch/jSnake))

</comment><comment><USER7> I also had some fun building a version of the snake game in JS some time ago [http://komrade.github.io/snake/index.html](http://komrade.github.io/snake/index.html)

</comment><comment><USER8> i thought it was going to be in under 30 lines</comment>


Negroponte Unveils 2nd Generation OLPC Laptop: It's an E-Book - <AUTHOR> http://www.xconomy.com/2008/05/20/negroponte-unveils-2nd-generation-olpc-laptop-its-an-e-book/ <comment><USER2> 10 days ago, I wrote "In two years, we'll probably have a device which is a mix of laptop, mobile telephone and Nintendo DS. It would be a clamshell design with two 11 inch screens with the bottom one being touch sensitive." ( <http://news.ycombinator.com/item?id=186508> ).

I had something like one of the OLPC's mock-ups ( [http://www.xconomy.com/2008/05/20/negroponte-unveils-2nd- gen...](http://www.xconomy.com/2008/05/20/negroponte-unveils-2nd-generation- olpc-laptop-its-an-e-book/xo-20-laptop-concept-showing-touch-screen-keyboard/) ) in mind.

</comment><comment><USER3> Wow, this is actually a huge turn away from the direction that the original OLPC took. The fact that it will cost only $75 to make is extremely impressive. Somehow I find this hard to believe that they are going this route. How long could the battery life be for a device that has two huge DVD lcd's? This announcement really reflects the intentions of Negroponte and maybe he never really had 3rd world counties children in mind. I have to imagine that it would be tough to learn to touch type using a touchscreen with no tactile response mechanisms.

<comment><USER2> > Wow, this is actually a huge turn away from the direction that the original > OLPC took.

Yes, and possibly premature. I hope Nicholas Negrponte doesn't repeat Adam Osborne, who boasted so much about the features of his Osborne 2 that few purchased his Osborne 1 and it bankrupted his company. "It is said that in 1983, Adam Osborne bragged about two advanced new computers his company was developing. These statements destroyed consumer demand for the Osborne 1, and the resulting inventory glut forced Osborne Computer to file for bankruptcy on September 13, 1983." -- <http://en.wikipedia.org/wiki/Adam_Osborne>

> I have to imagine that it would be tough to learn to touch type using a > touchscreen with no tactile response mechanisms.

A variant of the DynaBook ( <http://en.wikipedia.org/wiki/Dynabook> ) was supposed to have a vapourware transparent piezo matrix over the screen to provide a tactile response. Alan Kay, who conceived the DynaBook, has been involved with the OLPC Project.

</comment></comment><comment><USER4> I really doubt that touch typing on a touchscreen is feasible, especially for young children who have limited motor abilities. The existing XO keyboard is hard enough to type on as it is.</comment>


7 Tips to Ace Your Next Technical Interview - <AUTHOR> http://blog.500miles.io/2015/07/28/7-tips-to-ace-your-next-technical-interview/ <comment><USER2> I assume the headline's claimed seventh tip is to not make off-by-one errors during interviews? ;-)</comment>


Finding cannabinoids in hair does not prove cannabis consumption - <AUTHOR> http://www.nature.com/articles/srep14906 <comment><USER2> Of note, this paper is based on data from only two volunteers (a third was used to exclude THCA-A as a cofound).

<comment><USER3> It's concerning that such a low sample was published in Nature. One can imagine a similarly underpowered study showing that a direct injection of HIV does not cause seroconversion, because the two or three samples happened to have CCR5-D32.

<comment><USER4> Admittedly the sample is extremely small, but your example doesn't match what they discuss. The claim "X does not cause Y (under any circumstances)" takes a lot more samples to be convincing than "X is not a reliable indicator of Y because it has false-positives", where a few examples of such false-positives already support their existence very well.

</comment></comment></comment><comment><USER5> I think it's still interesting because the common assumption is that it shouldn't be possible at all. If you drop one apple you expect it to fall. If it doesn't _then_ it's time to up your sample size and do further testing.</comment>


Holder.js - client side image placeholders - <AUTHOR> http://imsky.github.com/holder/

<comment><USER2> can somebody give me an example of where this would be useful?

I was originally thinking it would be good for laying out a page before the images have been downloaded, but this would need to run after document ready, but before images are completely downloaded, which I don't think is really effective.</comment>


John Walker Lindh: What happens when you release a 'traitor'? - <AUTHOR> https://www.bbc.com/news/world-us-canada-48372500 <comment><USER2> Penalty for Treason in US..

Death or.... not less than five years!

a bit incongruous..

[https://www.law.cornell.edu/uscode/text/18/2381](https://www.law.cornell.edu/uscode/text/18/2381)</comment>


Wikipedia's most searched articles of the year revealed - <AUTHOR> http://www.bbc.co.uk/news/technology-20858333

<comment><USER2> What strikes me most, is the fact that most of these popular entries would'nt fit so well in traditional encyclopedias, either because they're too ephermal and "lowbrow" (related to mass media trends), or because they require constant updating (Google, Facebook). It seems Wikipedia isn't just an encyclopedia anymore, it has become what Google search used to be.</comment>


Seven Reasons the Windows Phone 7 will dominate - <AUTHOR> http://www.techvibes.com/blog/7-reasons-the-windows-phone-7-will-dominate

<comment><USER2> This doesn't seem to show anything new that isn't already available in Android or iOS.. except that you get to use Microsoft web services instead. Hardly grounds for domination..</comment>