Free is Killing Us. Blame The VCs - <AUTHOR> http://whydoeseverythingsuck.com/2008/04/free-is-killing-us-blame-vcs.html <comment><USER3> I'm starting to understand that most websites, especially websites produced by YC companies, are really media companies. From a business perspective, most of our startups have more in common with MTV or the New York Times than we do with Microsoft. We make money in the same way that any media company does - <USER2> selling advertising.

I don't think there is anything wrong with that. It's certainly riskier and subject to the whims of a fickle public. But there is also a bigger reward for success.

Saying that a new media company should charge their customers before they become popular seems counter intuitive. IIRC, this is how the Onion and many other major media publications began...they gave their product away for free until enough people read it that they could charge for ads.

It seems to me that most of the author's points could apply just as well to starting a new magazine or newspaper. Yet, I don't think that many people would agree that college newspapers are killing themselves by giving their products away for free. I think that the expectations people have for web startups would change if people looked at them as media entities and not software companies.

<comment><USER4> The Onion predates the www. They were a subscription-based tabloid (and still are). Generally, free media is bottom-of-the-barrel and advertisers prefer paying audiences. The traditional broadcast networks are the biggest exception, but that's probably a holdover from their predating cable. I've mentioned the stats before, but the nytimes has 10 times the web traffic as print, but 1/10th the ad revenue. (Those numbers are wrong, but it's something like that.)

<comment><USER3> I was referring more to the print publication of The Onion and the New York Times than to the websites. To clarify my point, starting a website with an advertising based revenue model is similar to starting a new newspaper or magazine. I used The Onion as an example because I remember it being freely available in bars back when I was in college.

I don't have any marketing data on whether advertisers prefer paying audiences or not, but I assume a lot of that would depend on the advertiser. I know that the bigger players in web media (facebook, myspace, etc) are definitely "bottom-of-the-barrel" when it comes to advertising rates because they reach such scattered demographics.

With that being said, I don't fully understand your point about advertisers preferring paying audiences. I think the problem is in the math. If I start charging for content (turning my users into a paying audience) then I'm going to most likely going to serve less page views. I don't know if the extra money advertisers are willing to spend for my now paying audience would be enough to offset the loss in page views.

The main example of a media website with a paying audience I can think of is the NYT, and I think the only reason they can get away with charging for content is because they've been established for so long. I think the rest of us are going to have to decide between 1) charging up front 2) trying to build a media property 3) trying to make money from premium subscriptions (which usually just amount to being donations from dedicated users).

Thanks for the reply, I'll definitely be thinking about this.

<comment><USER5> Advertisers in print media base their pricing on how many paying subscriptions the magazine or newspaper has, not overall distribution.

Printed publications make far more per unit from advertising than they do from the subscription fee. If advertisers didn't care about paid subscriptions, it would be in their interest to give their magazine freely to anyone and everyone who wanted it. But they don't because advertisers only care about paid subscribers. That is why magazines seem to try as hard as possible to give you nearly-free (but still paid) pricing on subscriptions.

I don't know why that is, but I know enough about the publishing industry to know it is true.

</comment></comment></comment></comment><comment><USER6> Hey, Hank, the last time you flamebaited us with "Relational Databases are Dead", we played along and had a nice little thread. But that was your only free pass.

On to new business...

First of all, I still chuckle at "whydoeseverythingsuck.com" That thought is the antithesis of everything we (should) believe here. I guess it's just your little tongue in cheek thing. Cool.

You say, "it is inherently impossible to start a small self-sustaining business and to grow it". I, along with 7 million of my compatriots beg to disagree. If you don't want to play roulette, er I mean pursue VC, there are a lot of other ways: bootstrapping, friends and family, angels, debt, etc., etc., etc.

I guess the thing that bothers me most about that remark is that someone may come here, read that, actually believe it, and then become discouraged.

OTOH, maybe it's just another form of Darwinism. Anyone who pursues an "advertising = only revenue" strategy should be prepared for the worst. More prospects for those of us with sound business models.

<comment><USER7> If you're going to call him out on the probability that any given person can create a startup more successful than a day job then at least be more specific as to what you think that probability is.

Him: It's impossible. You: It's so certain, it's basically guaranteed!

You can be a person who behaves very aggressively with what appears to be extremely risky behavior but at the same time calculate risk very carefully with as much data as possible. This is what I aim to be, a calculated risk taker. Not a foolish man who dives head first without thinking.

Motivation is really great, but I don't see a lot of value in blind optimism.

</comment></comment><comment><USER8> This reads like a pre-Ford car manufacturer complaining about the fact that Ford was reducing the price of cars by an order of magnitude.

This is not a recent trend. In fact, it's practically the definition of technological growth that it makes things dramatically cheaper. I don't think this is a trend that will ever be "put to bed."

<comment><USER9> Well, he seemed to be saying the prices are made artificially low (ex: free) because of VC's subsidizing the businesses.

<comment><USER8> Sure, but since technological innovation tends to decrease prices, calling a price "artificially low" is the same thing as calling it a future price.

When GMail launched, it offered artificially large amounts of free storage, in the sense that they couldn't support many users at that size. That's why they had to start with invites. But they knew that disk would keep getting cheaper, so they just gave people a number that would make sense in the future.

<comment><USER7> A very large percentage of sites/products start off free and without ads but then start requiring subscriptions, reduce the value of their service and cram it with advertising once they get big. In these numerous cases, "future price" would not equal lower. Certainly, technology drives prices down but technology is not the only factor that affects pricing. Unless you mean very long term? But in very long term, everything is just going to go to zero so that frame of reference is not very useful.

I agree that this elimination of competition is bad for the consumers, bad for innovation, and bad for those more capable companies that didn't get the huge funding. It's just making the rich richer.

</comment></comment></comment></comment><comment><USER10> I don't know if it's true that free is killing us. I can point to several counterexamples, such as 37Signals and FogBugz that charge for their applications, and are apparently healthy. I think that no matter what, there will be people who want quality service without the advertisements.

The author compares launching big and launching small, but really they're apples and oranges. Yes, to launch big, you need to make a big splash and either be free or very low priced. But the alternative is still there: get the niche market, and launch slowly and by word of mouth of your users.

I don't think we're in a situation where you can't launch small and make a living.

<comment><USER11> More counterexamples: LiveJournal, Flickr, HotOrNot.

<comment><USER10> I forgot an obvious one that I pay for: SmugMug.

<comment><USER12> From a talk by Jeff Barr, Amazon's Web Services Evangelist:

Smugmug is one of the biggest customers for Amazon.com web services (meaning they could be invoiced if they wanted to be). However, they are billing _everything_ on a American Express Platinum corporate credit card with the highest credit limit ($100K). Jeff says every month they probably earn three or four first-class tickets based on bonus points.

According to Jeff, their rate of growth is astonishing (Jeff said that they are storing about 15TB (yes, Terabytes) a month in S3). What happens to images in Smugmug ceases operations? Well, apparently the family has committed to a multi-generational commitment.

</comment></comment></comment></comment><comment><USER13> He's wrong. We got there because of economics: the marginal costs of digital products are essentially zero, and so tend towards free:

[http://www.squeezedbooks.com/book/show/7/information- rules-a...](http://www.squeezedbooks.com/book/show/7/information-rules-a- strategic-guide-to-the-network-economy)

<comment><USER14> They do, but only if they are commoditized. Once you get a sufficient amount of differentiation, you can (and should) "price information according to its value, not its cost".

<comment><USER13> Good point, but if it's big enough to interest VC's, it's big enough to attract interest in an open source or free version (Linux, Wikipedia). I can't think of VC's driving the price to zero in niches, as per his thesis that it's VC's driving the price of things to zero.

I should add that there's also certainly space between a new product's entry into the market, and when it becomes commoditized. If you're doing something that's not easy to replicate, even if people do start trying, you might have a number of years to make some money at it.

</comment></comment></comment><comment><USER15> What about small software firms like Rogue Amoeba or Panic? They make fabulous programs and sell them for reasonable prices. I think the biggest problem with most of these web 2.0 startups is there is no product to sell.

<comment><USER16> Don't forget to toss in Delicious Monster in the mix too.

</comment></comment><comment><USER17> I agree. 99% of Google's top-line revenues last fiscal year came from their adwords/adsense empire... every single other web serivce they offer accounts for 1% combined.

"Business" is about making money. Let's just agree that without revenue, you have no "business". And this suggests that even Google is having problems with monetizing products aside from their golden goose. This probably slightly irritates Google, but it should really scare those of us who don't have a golden goose yet.

We shouldn't be interested in creating products that are "built to flip", as my ex-CEO liked to say. We should be interested in creating products that create tangible, sustainable value... and that means making money.

Some startups can do that by offering products for free, and scaling up. Others will have to charge for their offerings, commensurate with how targeted and value-creating their offering is. It will be a combination of the two. The idea that every internet startup can survive by giving away their service will lead to one thing: disaster.

At some point the Googles and Yahoos of the world will not be able to explain acquisitions to their shareholders, because they have a fiduciary responsibility to create wealth. If the acquisitions do not create wealth, they will stop making them. But that lesson will take years to learn, in my opinion.

</comment><comment><USER18> I can't agree more. And the result is that no one is willing to improve upon something _good enough_ but that's free.

For example there are very wild problems affecting almost every internet user, like email. I bet that there are many hacker teams around that are able to come up with a better gmail, or simply a web based email system more biased towards advanced users: but how can you compete with an alternative that is good enough, is under this big name, and gives you all the space and free access to POP, IMAP, ...?

Result: no enhancement over gmail, we just need to wait for them to release the next feature.

Is this really better for users? Mostly not, the email or other core internet services are such an important thing for users that to pay 30$/year is nothing compared to the advantage of having a better internet experience.

</comment><comment><USER19> man, you guys are a wordy bunch. chew on this.

"niche thyself."

don't believe me? may i present exhibit a, smug mug's article in business week: "Competitors such as Ofoto, Snapfish, and Shutterfly (SFLY) were well- established, and free. The business that wasn't already taken by them was split among the likes of Canon (CAN), Nikon, and Sony (SNE), which offered photo sharing as a service to camera buyers. But today, SmugMug is the destination of choice for professionals and serious amateurs, with more than 450,000 customers, including nearly 120,000 subscribers who pay $40 to $150 a year for the service. Revenues doubled in 2007, as they have for the past three years, to $12 million. With only 29 employees (including seven MacAskills), it's profitable."

sorry to interrupt, have fun.

</comment><comment><USER20> I think there's another angle to this... And that's social.

Digital does have a lower overhead (less cost per user gained) than physical. But Web 2.0 products are part product, part community. Their value is largely derived from the bustling community that uses the product. FB would be worth nothing with no subscribers, both from a consumer and investment perspective. Remember how FriendFeed became suddenly awesome when the closed beta ended? The value for myself (and others) is the relationships that form. If payment is a barrier to usage, the growth stagnates and users don't get the best experience.

<comment><USER13> Right - you're thinking of "network effects" or "positive network externalities".

<comment><USER20> Why say friends when you can say "positive network externalities?"

<comment><USER13> Because it encompasses a broader meaning. eBay isn't about friends at all, really, but has strong network effects: buyers go there because there are lots of sellers, and sellers go there because there are lots of buyers.

I'd highly recommend the 'Information Rules' book I linked to elsewhere (via my site:-) to anyone interested in this stuff. Most of it is pretty intuitive, but it's nice to have it all grouped together and explained.

<comment><USER20> That was a joke. :)

<comment><USER13> Ah... well, truth be told, I think that economics does tend to weighty jargon for concepts that are, if not completely obvious, not exactly earth shattering. Still, they are useful to give labels to those concepts.

<comment><USER20> I think we're on the same page, but... They're useful labels until you have to explain them to someone else. If you need to explain the words you're using to explain a concept or idea, it's probably a detriment to your argument.

Using jargon to explain new concepts is taking the easy way out. Figuring out how to communicate complex ideas with plain, straight-forward language? That's the name of the game.

</comment></comment></comment></comment></comment></comment></comment><comment><USER21> There's another advertising model that may work for small companies. Here at Jackson Fish Market there are three of us. I think that counts as small. :) We also are a bootstrap.

We make small beautiful web apps and offer sponsorships to brand advertisers. What we don't offer is an audience. Our apps are basically for rent to marketers who can get an audience elsewhere but need a place to send them to interact in a way that accrues value to their brand.

We believe that this notion that advertising needs to be something that has value for the user (and not a distraction) is the wave of the future for brand marketers. These apps will need audiences, but there are literally hundreds of ad networks that can provide those. What those ad networks can't provide is useful destinations that are tuned to be complementary to a single sponsor.

There is hope. At least, we think there is. :)

</comment><comment><USER22> You can't blame the VCs as long as companies like Google, Yahoo, etc. can make money offering free services.

<comment><USER23> Google and Yahoo can do it because they can take advantage of their scale to monetize ads, as well as their diversity of products (profitable products can help pay for the unprofitable ones).

Which is exactly the author's point. He says that small companies are forced to swing for the fences in terms of user-base because a) that is all advertisers are interested in and b) the competitors (such as Yahoo! and Google) offer free alternatives.

I dont think it reasonable to set Yahoo or Google as the measuring stick of success as those companies are clearly way out ahead of anyone

<comment><USER22> Forget advertising for a moment.

Suppose you start a company to compete in an industry (any industry) where your rivals are profitable despite offering free services.

The fact they're able to do that is going to force your hand in that direction, too.

So it's _the market_ which dictates those conditions, not your investors.

<comment><USER17> So then by this logic, it's the market that's going to tend internet revenus to zero?

You're right. And this will lead to a massive market correction at some point. Companies that had the balls to listen to reason (a la 37signals), will be the ones that weather the storm. They'll end up being the Berkshire-Hathaway of the internet industry because they a)focus on the long-term, b) concentrate on what they know and do best, and c) fiercely execute on value, and not trends.

There's a reason Warren Buffet came through the dot-com crash unscathed. And it's the exact same reason why companies like 37signals will as well.

<comment><USER22> If ad-subsidized businesses turn out to be infeasible over the long term, then yes, you'll see companies go out of business and/or start charging for their services.

Either way, though, it's not the fault of the VCs.

</comment></comment></comment></comment></comment><comment><USER24> What about 37signals? They make money from charging for their products.

I think it's possible to do, but not as easy as "hack some website together and hope for the best". Some things are going to be easier to market than others. 37signals products (while I think they're useless) appeal to a lot of business-type people (who have money so spend), so they do well.

If you look at startups like Reddit, they set themselves up for advertising- only revenue. There is nothing worth paying for there, so of course nobody is going to pay them. (Yes, I know that reddit sells the reddit engine. But the most public part of reddit is reddit.com.)

</comment><comment><USER25> Here's that I posted on his blog:

I agree with a lot of this...

But VCs aren't going to change (and it isn't really in their interest to do so). VCs ONLY win in two cases-- someone buys the company or the company IPOs. Sustained modest growth rarely gets you to that destination.

It's not irrational for VCs to push for growth at the expense of revenue/profit. For their "business model" (the hits in their portfolio paying for all of the duds), it makes perfect sense.

I suspect that if a VC tried a new model (focusing on sustainable growth and revenue/profit), they'd find that they'd have a healthier portfolio that was largely illiquid.

<comment><USER11> Something I'm curious about: what if VCs worked like Berkshire Hathaway, reinvesting the cash thrown off by portfolio businesses but never selling their shares? Profitable businesses all generate return-on-capital; that cash can be reinvested to get new businesses off the ground.

It seems like this would be a good model for seed-funding businesses like YC to try, because they've got many more at-bats than big VCs. It might be hard for a big VC firm to generate enough cash for this: if the average investment is $5M, they take 50% of the company, and 90% of their investments fail, then their "hit" needs to churn off $100M in profits to sustain the next round of startups. But if you target hundreds of niche businesses, your investment is $20K, you take 10% of the company, and 50% of the companies survive, then they only need to spin off $400K/year in profits to fund the next round. That seems a lot more achievable.

Then again, one of the reasons Berkshire is successful is that Buffett refuses to invest in businesses that don't have predictable streams of cashflow. Startups are anything but predictable, so maybe the model's fundamentally flawed when it comes to startups.

<comment><USER25> "Something I'm curious about: what if VCs worked like Berkshire Hathaway, reinvesting the cash thrown off by portfolio businesses but never selling their shares?"

How does cash get thrown off? Are you suggesting a "dividends off of profits" type of thing for growth companies? Aren't growth companies supposed to be reinvesting profits in their own growth?

The problem with dividends is that they are really only good one the initial investment is liquid. So if Berkshire invests in a value company that throws off 3% dividends per quarter, that's great. But it's only great because they can get their cash out at any time.

If a VC invests in a startup (say $1mm), how exciting is the prospect of 50% chance of failure, but a possible 3% quarterly dividend IF the company succeeds? With no actual market to sell their initial investment of $1mm?

I can't make these numbers look attractive in my head.

<comment><USER11> "Are you suggesting a "dividends off of profits" type of thing for growth companies? Aren't growth companies supposed to be reinvesting profits in their own growth?"

Yeah, dividends-off-profits. The growth-company thing is an issue for the initial ramp-up phase: it'd probably be 10 years or so before the fund would start having additional capital to invest. But in the steady-state, older non- growing businesses throw off cash that can be reinvested in small growth businesses.

"So if Berkshire invests in a value company that throws off 3% dividends per quarter, that's great. But it's only great because they can get their cash out at any time."

Berkshire _can't_ cash out of their value companies at any time. Their typical modus operandi is to buy 80% of a successful privately-held business, leaving the other 20% to the founders. The companies remain privately held, and their stock is not sold on the open market. The only way Berkshire can cash out is if they find another buyer, like a private equity firm or large conglomerate, to take the whole business off their hands at once.

Also, dividends thrown off by private companies are often a lot more than 3% (public companies have such lousy dividends largely because shareholders lack bargaining power). Take See's Candy, one of Berkshire's early acquisitions ([http://valueinvestingresource.blogspot.com/2008/03/sees- cand...](http://valueinvestingresource.blogspot.com/2008/03/sees-candy-magic- formula-stock-from.html)). They bought it in 1972 for $25M on earnings of $5M. Since then, See's has required capital infusions of $32M and spun off dividends of $1.35B. That's a dividend-to-profit ratio of 98%, in comparison to the normal Wall Street averages of 30-50%.

Of course, few startup entrepreneurs would be willing to sell 80% of the company from the outset. Berkshire functions in reverse to VC firms, providing liquidity and multi-million-$ payouts to firms that have already gotten successful. But what if you reversed the terms? 10-20% of the equity for the chance to be your own boss? With the investor's dividend payouts protected by a legal clause in the investment documents, guaranteeing that after certain profitability and cash reserve milestones are met and growth has fallen below a certain amount, X% of the profits are distributed as dividends?

This is all idle speculation, since I don't have money to put where my mouth is. But if I had a billion dollars or so, I'd definitely want to try it. Because if these assumptions are true:

1.) Startups are the most productive part of the economy

2.) A small initial investment would let many more people quit their day jobs and found startups

3.) Getting bought destroys most of the efficiency advantages of being a startup

Then a logical consequence is that a firm that buys-and-holds small profit- oriented startups should do better than one that invests in large public companies.

Besides, it'd be a cool financial hack.

</comment></comment></comment></comment><comment><USER26> The free model can work if it leads to a secondary revenue model, such as B2B services, or secondary products that actually do make money. Launching a business blindly for free hoping to "fake it until you make it" is not a recipe for a successful business model.

I wrote about how to properly use the FREE software model today at [http://www.onlineepiphany.com/2008/04/04/how-do-they-give- th...](http://www.onlineepiphany.com/2008/04/04/how-do-they-give-that-away- for-free/)

</comment><comment><USER27> "This will all stop when the average VC can't get any of his/her companies to scale because there is just too much VC sponsored free stuff out there."

Markets don't disappear because they're too crowded. When they're too crowded, some people are forced out and it moves down to a more reasonable equilibrium. That's like saying that a theme park will fail because it gets too crowded -- when something is too crowded to be worthwhile, people stop going and it then becomes not too crowded anymore.

</comment><comment><USER18> > The good news is at some point VCs will indeed > realize how dumb all of > this is and stop giving > away everything of value on the Internet

This is unfortunately not the case since VCs know that for companies like Google and Yahoo is valuable to buy a startup that is not able to be profitable from itself, but added to a core of other free services it will be worth the money.

</comment><comment><USER28> I read this on 37signal's blog once - charge only for those products which enable people make more money, or save time, or be productive, or gain something in general. The rest should be Free - like Facebook, Twitter, or so. Facebook and Twitter do provide value, but they dont enable me to make money or help my business per say.

</comment><comment><USER29> his assertion that online ad revenue is the only real revenue stream is false.

the rest of the article fails because it was built on a faulty premise.

its true that there are lots of sites built on ad revenue, but it is definitely not the only revenue model.

</comment><comment><USER30> Free is a very powerful marketing tool you will get more sign ups and then can convert those up rather then having nothing free and try to convert people with limited trials.

</comment><comment><USER31> Social, economic, and technological changes are bad because they force me have to think and work.</comment>


B.C. seaplane company's plan for electric fleet is set for take off - <AUTHOR> https://www.cbc.ca/news/canada/british-columbia/bc-seaplane-company-s-plan-for-electric-fleet-is-set-for-take-off-1.5072292 <comment><USER2> I wonder what the range and battery weight is?

This could make good sense for short flights. Doing this with sea planes also makes sense; for conventional aircraft, the airport might be a bottleneck which could be a safety concern if the plane is powered by a battery without enough spare capacity to wait around to land. Being able to land anywhere with smooth water mitigates that risk.</comment>


Consistent and Beautiful RESTful API Design Tips from Experience - <AUTHOR> https://medium.com/studioarmix/learn-restful-api-design-ideals-c5ec915a430f <comment><USER2> Great article. I'd like to add that while `PUT` can be used for updating data, you should only ever use this if you are updating the entire object. It's more "replacing" the object with new values than updating it - i.e. what you `PUT` to the endpoint is the new object. Therefore, if you don't provide the entire object in the request, you can lose data.

In most cases, even when updating entire objects, I prefer `PATCH` because of this - by design, it only overwrites what you specify.</comment>


Ask HN: What OS do you use? for web dev - <AUTHOR>

Mac, windows, linux, google os? <comment><USER2> OS X for my editors, browsers, and VirtualBox. Vagrant for managing the VMs that my work actually runs in, with varying versions of Linux. Gives me lovely window management and polished apps and utilities (plus great integration with my phone and tablet), but all the power and comfort of a linux commandline for work!

</comment><comment><USER3> Windows. With an Ubuntu server running next door as a dev server/filestore. So all code is executed under Linux, Windows just provides the tools.

Vagrant going on the next Windows box I get.

</comment><comment><USER4> OSX. I just find it more natural to deal with switching windows and setting up tools. But I'd switch back to Windows if it was easier to get things up and running for web dev.

</comment><comment><USER5> Mac osx because I like imac hardware and linux-y feel of it.

</comment><comment><USER6> Linux.

Emacs and git with the magit package.

Node, meteor for fun projects.

apache, postgresql, and php for less fun projects.

</comment><comment><USER7> Ubuntu for years. The packages system is so convenient and it works out of the box. However I compile Ruby my self.

</comment><comment><USER8> Windows 8 + Vagrant for projects that run better on Linux (node/ruby/etc).

</comment><comment><USER9> Trisequel because proprietary software is evil.

<comment><USER10> [https://fireden.net/4chan/images.4chan.org//vg/src/138800901...](https://fireden.net/4chan/images.4chan.org//vg/src/1388009017306.png)

</comment></comment><comment><USER11> java services on windows or ubuntu. web like php, python, html, js on ubuntu/debian. a centOS vm lying around here too

</comment><comment><USER12> Windows 7. ____* Best OS.</comment>


Java Virtual Machine in pure Node.js - <AUTHOR> https://github.com/YaroslavGaponov/node-jvm#! <comment><USER2> Interesting! It looks like you've reimplemented portions of the Java Class Library rather than use e.g the existing class files from OpenJDK.

My current research project, Doppio [1], implements the native portions of the OpenJDK Java Class Library so it can use an unmodified copy of the OpenJDK JCL. As a result, it can run a bunch of nontrivial programs (javac/javap/Rhino/Kawa-Scheme).

One issue you will run into is with multithreading. Since JavaScript has no true threading implementation with shared memory, you'll need to be able to suspend and resume virtual JVM threads. For this reason, Doppio maintains an explicit JVM stack representation.

Anyway, feel free to check out our code, reuse portions of it, or contribute if you're interested; it's MIT Licensed and under active development. :)

[1] Demo: [http://doppiojvm.org/](http://doppiojvm.org/) Code: [https://github.com/int3/doppio](https://github.com/int3/doppio)

<comment><USER3> Nice experiment and a huge undertaking, do you already support the current implementation of java.util.concurrent? (requires atomic CAS through sun.misc.Unsafe and ability to park threads)

<comment><USER2> Note that the demo is somewhat old; I do not know if it has park implemented. You'll want to build it from GitHub, which we've made relatively straightforward.

We are planning to update the demo (and perhaps post on HN) once I fix some IE issues (since we strive to be compatible with IE9).

</comment></comment></comment><comment><USER4> Really cool hack, and yet I can't help but think that the mile-high software stack between the developer and the CPU continues to grow meaning we're stuck in a perpetual game of filling up spare CPU cycles with nothing in particular.

I'm sure I'll see a demo showing off something that barely runs on modern hardware that we were more than capable of running with good performance in 1990.

 _sigh_ I feel like I'm being such a Debbie-downer even if this is a really cool hack.

<comment><USER5> Now we just need to wait for someone to run Rhino on this so we can have Javascript hosting a JVM which hosts Javascript.

<comment><USER6> Nashorn would be more appropriate once it is released. It leverages the JVM dynamic invocation instructions better IIRC.

<comment><USER7> And Nashorn should jit to bytecodes, which should jit back to JS. Like realtime closure compiler.

<comment><USER8> VMception?

</comment></comment></comment></comment></comment><comment><USER9> 18ms for calculating Fibonacci numbers from 1 to 10. This is definitily bringing JAVA back to the good old days of enterprise execution speeds. :-)

Really cool proof of concept! I would really enjoy seeing more projects like this!

<comment><USER10> Who doesn't wish it was still 1999? Hot stock market, millenium mania, cheap gas, dot-coms. Really slow Java makes it all come rushing back.

<comment><USER11> > _[1999 's] slow Java_

Java 1.2 (1998) used a JIT and a generational collector. It was probably faster than today's Ruby, Python, or PHP.

What was slow was start up. Applets in particular were really horrible since they completely froze the browser for several seconds.

If I remember correctly, this was finally fixed many years later with some version of Java 6.0.

<comment><USER10> It didn't go full speed until Sun released HotSpot, which was probably a year or two later. The farther back in time you go, naturally, the slower Java was, sort of like the universe as you go back to the Big Bang. You also could have made more in the stock market with each receding year. But 1999 was a memorable year.

</comment></comment></comment></comment><comment><USER12> Finally, I can run JRuby on my node server!

<comment><USER13> From poster with similar project above:

[https://github.com/int3/doppio/wiki/Successes](https://github.com/int3/doppio/wiki/Successes)

> We're also making progress on others, but we're not quite there yet: JRuby, > Clojure, Scala REPL

I think I just had a micro heart attack reading that.

<comment><USER14> and clojurescript, circle is complete.

<comment><USER15> You mean Rhino (the JavaScript engine written in Java)? :)

</comment></comment></comment></comment><comment><USER16> Now I'll have even bigger problem explaining what the difference between Java and Javascript is! :)

<comment><USER17> It's like Car and Carpet. But it's also the kind of car that you can build out of carpets.

<comment><USER18> ...or the carpet that you can build out of cars, considering the Ringojs.

<comment><USER11> Java 6.0 comes with JSR 223 ("scripting for the Java platform"). It's a framework for hosting scripting engines. 6.0+ is shipped with a JavaScript engine based on Mozilla's Rhino.

[http://en.wikipedia.org/wiki/Rhino_%28JavaScript_engine%29](http://en.wikipedia.org/wiki/Rhino_%28JavaScript_engine%29)

</comment></comment></comment></comment><comment><USER19> For anyone interested in the details:

-Reads in real .class files

-Uses the JS run-time to implement the Java run-time (e.g. there isn't a garbage collector written in JS, the JS collector is used)

-Only implemented part of java.lang and java.io

<comment><USER3> A handful of classes with a few of their methods, in java.lang and java.io.

</comment></comment><comment><USER20> I created something similar some time ago.

[https://github.com/szatkus/js2me](https://github.com/szatkus/js2me)

Although I targeted only J2ME subset. Also I found few similar projects:

[https://github.com/nurv/BicaVM](https://github.com/nurv/BicaVM)

[http://plasma-umass.github.io/doppio/about.html](http://plasma- umass.github.io/doppio/about.html)

</comment><comment><USER3> Just a toy implementation[1], if someone is wondering.

[1]The basic .class file attribute parsers are located in libs/classfile, while a simple bytecode interpreter can be found in jvm.js. It doesn't load a real runtime library (classpath, apache harmony,openjdk,etc...) but it partially implements a few java.* classes in pure javascript under libs/java.

<comment><USER21> Can someone point out what it can do and what it can not do; I am curious what 2.000 lines of JavaScript can do. How much more code would it take to get a full featured implementation?

<comment><USER3> It has a java bytecode interpreter and an initial implementation of a classfile loader. As said above it doesn't have a full implementation of the java runtime, just a few classes to be able to print out to standard output and su things with string and not much else (at least from what i've seen of the content of libs/java).

Regarding the loader, it can load a few sections from a classfile, the one containing methods bytecodes, the exceptions table and the constant pool (i.e. where all your string are stored with some other "constants"). How much it could take for a full implementation? It depends of what you mean by _full_. Even using one of the opensource runtime library like openjdk,classpath,harmony/android i'd say a few years done solo, and not much less with more people, to build something complete and stable enough for general use. Definitely not a simple project.

</comment></comment></comment><comment><USER22> Atwood's Law: any application that can be written in JavaScript, will eventually be written in JavaScript.

<comment><USER23> JS.js

<comment> adam-a [https://github.com/jterrace/js.js/](https://github.com/jterrace/js.js/)

<comment><USER24> And Mozilla's (mothballed) Narcissus: [https://github.com/mozilla/narcissus](https://github.com/mozilla/narcissus)

</comment></comment></comment></comment><comment><USER24> Mozilla has written pdf.js to replace Adobe's PDF plugin and shumway.js to replace Adobe's Flash plugin. When will we see a java.js that replaces Java applets on the web?

<comment><USER25> But really though, that could be amazing! Or fail! I can't decide.

</comment></comment><comment><USER26> I'm waiting for a JavaScript interpreter written in Javascript.

Edit: It's already here :) [https://github.com/jterrace/js.js/](https://github.com/jterrace/js.js/)

<comment><USER27> Atwood's Law ad extremum.

<comment><USER7> Atwood's Ouroboros

</comment></comment></comment><comment><USER28> Now, my question is. WHY!? I might be crazy, but does anyone see a legitimate use for this?

<comment><USER29> This question on this kind of topic needs to stop being asked on Hacker News. It's fair to ask whether or not there was a material usage intended for the project, but if isn't one, we _really_ need to stop implying that there should be.

<comment><USER30> that's not a chance I'm willing to take. This is how PHP started. It was a reject experiment that escaped the lab. Then some poor souls took it seriously. Now all of humanity suffers.

<comment><USER29> [http://php.net/manual/en/history.php.php](http://php.net/manual/en/history.php.php)

Um. No.

</comment></comment></comment></comment><comment><USER31> Now you just need to run Rhino([https://developer.mozilla.org/en/docs/Rhino](https://developer.mozilla.org/en/docs/Rhino)) on it and you will be totally meta.

<comment><USER2> My current research project, Doppio, can already run Rhino in the browser using JavaScript. :)

Demo: [http://doppiojvm.org/](http://doppiojvm.org/)

Code:[https://github.com/int3/doppio](https://github.com/int3/doppio)

</comment></comment><comment><USER10> I have a feeling James Gosling choked on his coffee this morning. :)

</comment><comment><USER32> How hard is it to write a JVM? I'd think it pretty easy, as it's intended to be small and easily portable.

You could even write one in Java (and I'm sure it's been done, many times). _EDIT_ e.g. [http://igormaznitsa.com/projects/mjvm/index.html](http://igormaznitsa.com/projects/mjvm/index.html)

Of course, doing all the tricky JIT etc of _the_ JVM is a different story...

<comment><USER33> It depends on what you consider the JVM. If you're just talking about something that can load class files and do some instruction interpretation (like this project) then that's one thing... if you're talking about implementing all of the JNI functions within the JVM standard library (awt, net) along with the concurrency primitives (conforming to the Java memory model?) then that is a significant multi-year, multi-developer project.

</comment></comment><comment><USER34> Is PyJNIus support coming anytime soon? The ability to use Python to script Java calls into the JS run-time to access Cordova API's on top of Android libraries is really important for developers who have Python, Cython, and Java skills, but find P4A too daunting compared to Cordova. It's only three more layers of nonsense.

</comment><comment><USER35> This is the worst thing that ever happened

<comment><USER36> Worse than the last worst thing that ever happened?

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

<comment><USER37> haha this is a really excellent callout. well done.

<comment><USER35> Yep. Mad props.

</comment></comment></comment></comment><comment><USER38> What does Node have to do with it (besides perhaps a little IO)? Isn't it just JavaScript?

</comment><comment><USER39> For comparison, here is a recent JVM in Lua: [https://cowlark.com/luje/doc/stable/doc/index.wiki](https://cowlark.com/luje/doc/stable/doc/index.wiki)

</comment><comment><USER40> With GWT you can translate the Java application to standalone JavaScript files ... and with this implementation you can run Java in a Javascript environment.

Which one would perform best?

<comment><USER41> GWT with out a doubt. It's running on a smaller stack and the translation is done at compile time not runtime.

</comment></comment><comment><USER42> The example makefiles appear to use javac.

Next step: Java compiler in node

</comment><comment><USER43> So now I can use one of those Java libraries that implement a JavaScript engine and finally have JavaScript running on node.js?

</comment><comment><USER44> I made a house out of butter yey!!!!

</comment><comment><USER45> Would be interested in seeing a JVM written in Go.

<comment><USER46> Why? I must be missing the connection between Node and Go.

<comment><USER47> For 15 minutes of fame on HN, of course.

</comment></comment></comment><comment><USER48> What's the point of doing this, why not just use Mozilla Rhino?

<comment><USER49> Rhino is the opposite of this.

<comment><USER48> It is the right tool for mixed JS and Java codebase.

</comment></comment></comment><comment><USER50> I hate java, I hate javascript, I hate node.js, so basically, I just leave a comment here, and you can make a conclusion about what I think about all this.

<comment><USER51> Just out of curiosity, what are your preferred languages and server environments?

<comment><USER52> Based on his HN profile, my guess is Python.</comment></comment></comment>


Why Did a Chinese Peroxide Company Pay $1B for a Talking Cat? - <AUTHOR> https://www.bloomberg.com/news/features/2017-05-17/why-did-a-chinese-peroxide-company-pay-1-billion-for-a-talking-cat <comment><USER2> In short, pretty bizarre financial engineering going on with Chinese industrial companies buying western gaming start-ups for enormous sums in order to buttress their (chinese) own bottom line and keep the shares going up on the Chinese stock market. This is a type of pyramid scheme that is bound to come crashing down at some point, and bankrupt every single one of these companies.

<comment><USER3> Why couldn't these companies issue more shares in secondary offerings at 100x their PE ratio, hoard all the cash, and wait for the crash to do a buyback?

Seems like a good way to hedge against a downturn. Of course, per usual, retail investors will lose out as usual, but the companies could end up just fine.

<comment><USER4> How did you get to know all those things you're talking about? Where does one even start decrypting finance jargon and "possibilities"?

<comment><USER5> Read Matt Levine's column on Bloomberg. All of them, and the ones from when he worked for Dealbreaker as well. He tells the stories in a clear way that makes sense, cutting through a lot of nonsense, and so you understand the key points even without getting the jargon, and then you gradually pick up the jargon too.

<comment><USER6> Matt Levine's column is great. The Economist can also bring similar-ish knowledge, but its focus is broader.

</comment></comment></comment></comment></comment><comment><USER7> It makes me think of a recent write up on modern day money laundering. One way to do so is to have an app with in game purchases, your mules buy burner phones and start buying in-game stuff using their phone account. Money goes into the wireless store, comes out of the App store. "Honey are you launding drug proftis?", "No dear, I'm just addicted to HoneyBear Racers!"

<comment><USER3> But money laundering usually involves illicitly acquired cash and converting that into legit money you can invest/store/etc. Seems like localbitcoin to Monero to anything else makes more sense. No?

<comment><USER8> In this instance isn't the money illegally acquired and then laundered by way of app store gift cards purchased with cash?

<comment><USER9> Suddenly the more expensive IAPs in games such as Talking Tom Gold Run make a lot more sense.

As you play the game you can unlock some characters. But it's a very slow grind. You can also buy them.

The five most expensive characters cost £19.99, £28.99, £38.99, £48.99, and 5399 sticks of dynamite. You can buy 5,400 sticks of dynamite for £99.99

</comment></comment></comment></comment><comment><USER10> The sad thing is - Chinese investors/CEOs then need to get the money out of China because they know it will crash eventually.

So they invest in hot real estate markets like Canada, US and Australia causing house prices to go to stratospheric levels and make it un-affordable for the locals.

<comment><USER11> The locals sold at a price they wanted or they wouldn't have sold. The locals who have not sold are now much wealthier.

<comment><USER12> > The locals who have not sold are now much wealthier.

And now have to pay much higher property taxes, which they might not be able to afford with their current income. For sure, they should be able to sell the property and buy a comparable one cheaper elsewhere (Thus netting some profit) however they're basically being priced out of the property they own, with no real choice. (Issue #1)

Unless they can find a similar paying job wherever they move to (which might not be the case), they now need to face a much longer commute to work every single day, wasting hours that could previously be spent on leisure, with family, or doing work on the side to earn extra money. (Issue #2) The amount of profit they net from the sale of the property might be useful to compensate for this effect, if they're able to invest it properly, and depending on the specifics and market conditions.

(Renting the property will probably result in a comparable outcome to investing the profits from the sale, which might or might not be enough to break even considered the increased commute time)

<comment><USER13> At least in the province of British Columbia (where Vancouver is), home owner grants reduce the amount of property tax locals pay. Plus there are grants for seniors or people with low-incomes.

<comment><USER13> And the vast majority of people who need it, get the grant.

</comment></comment></comment></comment></comment><comment><USER14> 30 Rock did it first

[http://i.onionstatic.com/avclub/5224/22/16x9/1200.jpg](http://i.onionstatic.com/avclub/5224/22/16x9/1200.jpg)

</comment><comment><USER15> I can remember 1999 & 2007 there was money everywhere and no one quite knew where it was coming from. The money pouring out of China feels really similar. It makes me nervous.

<comment><USER16> Just see SF's white-hot realestate market. I can only wonder what the hell is going on: so many houses are going for up to 50% above asking!

<comment><USER11> Maybe I'm reading a bit too much in it, but the top comments seem to have a bit of discriminatory tone: China = pyramid scheme or money laundering. When 1997, 2007, SF real-estate, unicorns with no earnings, all happen(ed/ing) in the US, in addition to Bernie Madoff. The original article topic is industrial companies buying tech and the arbitraging of valuations.

<comment><USER17> I think maybe you are reading too much into it. Adding "value" to a company's bottom line by purchasing assets COMPLETELY outside of the core competency of the company tilts the scales toward cooking the books and away from creating actual value.

<comment><USER18> Why? Berkshire Hathaway did this in the past. Holding companies can be well diversified.

</comment></comment></comment></comment></comment><comment><USER19> Can someone be kind enough to tell me how I could get in touch with a possible VC / or company from china who might be interested in investing in an RTS I've spent about 4 years making?

<comment><USER20> They want to buy companies with revenue, not IP, if I understand correctly

</comment></comment><comment><USER21> This is one of the great things about free trade. The US sends trillions of dollars to China to pay for manufacturing services, and the Chinese are forced to spend that money in the US. They can buy services, or US Treasury bills, or private investments, but sooner or latter the money has to come back. And there is so much money involved there are some pretty dumb investments being made.

<comment><USER22> The money comes from US consumers, but doesn't go back to them. The circle is not complete.

<comment><USER6> US consumer get stuff, though. (And they mostly acquire the money by working.) So: stuff for labour.

Nothing to see here.

</comment></comment></comment><comment><USER23> I know a guy in Toronto who used to offer loans from the Caymans to Chinese CEOs secured by 2x stock. If they default, he keeps the stock. So they take out a massive loan then immediately default. He sells at market, anything above half is profit. $100Ms.

</comment><comment><USER24> We talk about smart money and dumb money. Lately I've been calling this stuff "weird money."

I've been hearing a lot of weird stories about weird money in the last few years. My favorite involved an investor who could not be located when the company was sold. Phone was disconnected, company did not exist, etc. Not sure how that shook out. Maybe the proceeds get held in escrow for a while and then distributed to the other investors if the owner never shows?

<comment><USER25> It sounds weird, but companies trying to expand to areas they don't have experience in is nothing new. There are other unique incentives in play right now, but they aren't particularly crazy.

Imagine your company is about to be on the ugly end of major changes to economic policy in your country. You still have access to credit, so you may consider buying another business. You want to hedge against currency risk, so you buy a company in another country whose currency you think will do ok. Also, you need a purchase that is big enough to matter and you need to do it quickly.

If the finances are right, and the business metrics of the acquired company doesn't decline too quickly you may make out pretty well.

</comment></comment><comment><USER26> Huh. Both my kids loved Tom the Cat around age 3-4.

From my experience, I have to assume the majority of their _hundred million dollar_ revenue comes from kids randomly mashing on ads, or somehow managing to make in-app purchases. (Like most free apps targeted at kids.)

Kudos to the developers, but even aside from the ethical issue (which rests more with the ad networks than the app makers imo), seems pretty risky to spend more than 1-2x revenue on this thing, given the risk of changes by Apple/Google that could wreck the revenue model.

</comment><comment><USER27> If anyone wrote that as a story, any editor would have insisted that the protagonist's name cannot be "Login".

<comment><USER28> Samo Login, which means Just Login (as in "just do it"). Quite amusing name :D It was deliberate, obviously.

<comment><USER29> Samo is Slovenian version of Sam. "samo" means "only"/"just" but pronounced a bit differently than Samo.

</comment></comment></comment><comment><USER30> Some sort of laundering scheme?

<comment><USER16> Sounds like pump-and-dump to me. From what I could gather (albeit I'm not very familiar with financial engineering): the Chinese stock market is hot, and P/E of 100 is not uncommon. In other words: P = 100 x E.

Suppose you are a company that sells some conventional goods whose market is tapped out, so no more growth in the "E". You find a game company (who doesn't understand the games market, especially China, where smartphones are like second appendages?) with earnings of, say, X. If you can buy this outfit for something significantly lower than 100 * X, then (using the equation above), you'll be able to boost your own company's "P" by 100 * X by acquiring the company, at a cost much lower than 100 * X.

<comment><USER31> It seems super sketchy. I mean the valuations based on current P/E aren't even terrible except for the fact that gaming especially doesn't seem an enduring business. That E is probably going to go down as people move on to other games.</comment></comment></comment>


New VIM logo suggestion - <AUTHOR> https://www.reddit.com/r/vim/comments/aqvmvr/new_vim_logo_suggestion/ <comment><USER2> I'd actually prefer one that was "\|\\\\\" if they were going that route - rather than mixing the slashes.</comment>


Record solar plane's first 'hop' - <AUTHOR> http://news.bbc.co.uk/1/hi/sci/tech/8393688.stm

<comment><USER2> I once calculated the amount of power that could be generated by solar cells on the wings of a small light plane. 3hp, at 100% efficiency.

I'm totally unsurprised that they had to make something with the wingspan of an Airbus to get this to work.</comment>


NIST's Post-Quantum Cryptography Program Enters 'Selection Round' - <AUTHOR> https://www.nist.gov/news-events/news/2020/07/nists-post-quantum-cryptography-program-enters-selection-round <comment><USER2> Here is the documentation: [https://nvlpubs.nist.gov/nistpubs/ir/2020/NIST.IR.8309.pdf](https://nvlpubs.nist.gov/nistpubs/ir/2020/NIST.IR.8309.pdf)

All 15 the following are moving to the 3rd round.

Third-Round Finalists:

Public-Key Encryption/KEMs

\- Classic McEliece (Code)

\- CRYSTALS-KYBER (Lattice)

\- NTRU (Lattice)

\- SABER (Lattice)

Digital Signatures

\- CRYSTALS-DILITHIUM (Lattice)

\- FALCON (Lattice)

\- Rainbow (Multivariate)

Alternate Candidates:

Public-Key Encryption/KEMs

\- BIKE (Code)

\- FrodoKEM (Lattice)

\- HQC (Code)

\- NTRU Prime (Lattice)

\- SIKE (Supersingular Elliptic Curve Isogeny)

Digital Signatures:

\- GeMSS (Multivariate)

\- Picnic (Zero-knowledge)

\- SPHINCS+ (Hash)

All of Bernstein's submissions (except the joke one) are in the finalist or in the alternative list.

A note regarding the alternatives:

> The alternate candidates are regarded as potential candidates for future > standardization, most likely after another round of evaluation. Some of the > alternate candidates have worse performance than the finalists but might be > selected for standardization based on NIST's high confidence in their > security. Others have acceptable performance but require additional analysis > or other work to inspire sufficient confidence in their security for NIST to > standardize. In addition, some alternate candidates were selected based > either on NIST's desire for diversity in future post-quantum security > standards or on their potential for further improvement.

I am quite a big fan of SPHINCS+, Picnic (these two reduce their security to the one of their underlying hash functions), and Classic McEliece myself. SIKE is interesting too but as far as I know it needs to be used interactively. Rainbow is also interesting.

<comment><USER3> The problem with classic mceliece is the size of the public keys, which is measured in megabytes

<comment><USER4> Well, at least people are used to downloading Mb of junk when they browse the internet these days anyway...

<comment><USER3> We also want crypto systems that work on embedded/constrained environments

<comment><USER2> And that's fine. These systems can use NTRU or whatever else. These systems being weak is not a reason to drag everyone else down.

</comment></comment></comment></comment></comment><comment><USER5> 40 year old Classic McEliece made into the second round. It's well proven but not fit to all uses due to it's large public key size.

> Classic McEliece has a stable specification−−the only significant change in > the second round is the addition of additional parameter sets. As such, NIST > selected Classic McEliece as a finalist and believes it could be ready for > standardization (should NIST choose to select it) at the end of the third > round

<comment><USER6> I have heard that too, but us it really a big deal to have 65KB+ keys these days?

<comment><USER7> As someone who works on embedded devices, yes. The whole system can have 256KB of flash or less. 1 or 2KB for keys hurts, but is manageable. 65KB means that much of the IoT will not be upgraded to post-quantum security.

<comment><USER2> IoT devices should be behind private networks rather than being directly accessible to the internet anyway. Said devices can use a "weaker" algorithm like NTRU.

<comment><USER8> > IoT devices should be behind private networks rather than being directly > accessible to the internet anyway.

Hogwash. You just reduced my reliability by a dramatic amount. Not only does my IoT device have to be functional, but it now has to have a _gateway_ that is functional _at the same time_ in order to be useful. Uh, yeah, no.

And, besides, a private network is only private until one of the devices gets compromised. Then it's not private anymore.

Better to make your device capable of living on the real, hostile Internet.

<comment><USER2> > Not only does my IoT device have to be functional, but it now has to have a > gateway that is functional at the same time in order to be useful

Consider it differently. Your IoT stove, IoT coffee maker, IoT washing machine, IoT lights, etc do not need to be secure if they are behind a secure gateway.

> And, besides, a private network is only private until one of the devices > gets compromised. Then it's not private anymore.

The gateway makes sure that nobody but you will be able to access (and thus compromise) your IoT freezer.

> Better to make your device capable of living on the real, hostile Internet.

Sure, but considering the amount of IoT botnet that is out there I do not think that this is going to happen.

</comment></comment></comment></comment></comment></comment><comment><USER2> It should be noted that Bernstein was complaining about the lack of transparency and NSA involvement in [https://twitter.com/hashbreaker/status/1285922808392908800](https://twitter.com/hashbreaker/status/1285922808392908800)

<comment><USER9> Of course, NIST compliance is a circus.

I use it as a list of what not to use.

Once a senior cryptographer in Citi's R&D lab was grilling me on my use of 25519 being without NIST's blessing. I asked him what he would use, he said, "cryptographically speaking 25519", Ok.jpg.

<comment><USER2> > I use it as a list of what not to use.

Bernstein's (the one that made 25519) own submissions passed to round 3 though. Do you also avoid AES/SHA3/BLAKE because they were NIST finalists?

</comment></comment></comment><comment><USER10> One thing that bothers me about most of these algorithms is how conceptually difficult they are for me to understand. I don't have that strong of a background in cryptography but there is something special about how with RSA you can do it at a small scale by hand. With very limited notes I can explain to a group of high schoolers almost exactly how this vital part of encryption functions and even vulnerabilities in it (small exponent values, etc). While rolling your own crypto is bad, with a bit of work I'd expect almost any programmer to be able to implement RSA without too much difficulty.

I'm not sure how important being able to explain encryption algorithms in detail to high school students is, but I'll definitely be sad when RSA and other non-quantum resistant algorithms join the likes of the enigma machine and exist for demonstration process only. I'm hopeful in time less crypto minded people (like me) will better understand module learning with errors or lattice based cryptography and maybe we'll get better at explaining it. It would be a shame if even more of cryptography into an unintelligible black box to eke out performance gains.

<comment><USER11> RSA isn't that easy to understand. It's a trap: it seems simple on the surface because the core mathematical operation is easy, but the actual complexity (padding) often gets omitted.

RSA-KEM (key encapsulation mode) is easy. There's no padding, the only thing is you can't encrypt a message, only a _random_ number < the modulus. Then you run that number through a Key Derivation Function (KDF) and use it with an Authenticated Encryption with Associate Data (AEAD) cipher. That's just simple enough I'd teach it to high-school students.

RSA encryption is hard. It requires OAEP padding, which is by no means simple. I'd not try to teach it to high-school students.

RSA signing is hard. It requires PSS padding, which is by no means simple. I'd also not try to teach it to high-school students.

Every other use of RSA is insecure, often in very subtle and hard to understand ways. Using RSA as a teaching tool about public-key cryptography does a disservice to students, since they (like you) tend to think that RSA alone is useful for cryptography.

And if you can treat an operation like the padding as a "black box" and ignore understanding, then you can understand code-based cryptography the same way: treat the code as a black box, and the math is very simple.

<comment><USER12> I sympathize but don't entirely agree.

The old version 1.5 signature padding remains widespread. Unlike PSS it doesn't have a security proof reducing to RSA but it does have decades of successful use in practice in one of the harshest environments (the Web because the clients merrily run code written by a potential adversary).

"Prepend this fixed data to your hash" which is the central idea of v1.5 padding is definitely something you could teach to high school students. You can even show them why it's necessary pretty easily for a small exponent.

Making people _check_ padding is again not too hard for high school students, and I think "Do all the things on the checklist. _All_ of them" is a worthwhile lesson not just in cryptography.

<comment><USER11> It _is_ possible to implement 1.5 padding securely. But I'd not say it's easy, since I'm not aware of any implementation not written by an experienced cryptographer/cryptographic programmer that's gotten it right on the first try (no padding oracles or other vulnerabilities). It's conceptually simple, but still has plenty of footguns. The problem with RSA is all the footguns! Avoiding them reduces the conceptual simplicity, to the point where you might as well teach a slightly more complex scheme, like EdDSA or McEliece (with black-box code).

<comment><USER12> The most common mistake in implementations of RSA signature verification seems to be just plain not validating the padding at all. That does not require a "experienced cryptographer" it requires actually doing everything on the checklist, a reflex that's worthwhile in many pursuits.

Historically sometimes people would say "Well nobody would make an error like that in a modern elliptic curve scheme" and then Microsoft turns out to have shipped a very popular operating system named "Windows" which didn't do curve validation - so much for that belief.

Padding oracles aren't a thing for signature verification. You can work this out for yourself, everybody can do signature verification using the public key, so if there was a way to do it "badly" that somehow gives away the private key, you'd do it that way yourself and skip all the effort.

What _does_ exist and might have confused you is an oracle for RSA PKCS#1 v1.5 _decryption_. In this case the party doing decryption knows the private key and so it makes sense that if this is done poorly they can leak vital information. It doesn't seem fair to call this a flaw in the signature scheme.

<comment><USER2> > Historically sometimes people would say "Well nobody would make an error > like that in a modern elliptic curve scheme" and then Microsoft turns out to > have shipped a very popular operating system named "Windows" which didn't do > curve validation - so much for that belief.

I am pretty sure that CryptoAPI does not support (or at least did not at the time) any modern elliptic curve signature scheme, and by modern I am referring to thins like ed25519.

</comment></comment></comment></comment></comment></comment><comment><USER2> DJB seems to have a disagreement regarding some statements that NIST made [https://twitter.com/hashbreaker/status/1288039119805747200](https://twitter.com/hashbreaker/status/1288039119805747200)

"Misrepresentations of security proofs are starting to cause serious damage. The embarrassingly wrong idea that there's a proof that the "security of NewHope is never better than that of KYBER" is the centerpiece of NIST removing NewHope from #NISTPQC. See [https://nvlpubs.nist.gov/nistpubs/ir/2020/NIST.IR.8309.pdf](https://nvlpubs.nist.gov/nistpubs/ir/2020/NIST.IR.8309.pdf)

Known hybrid attacks are faster against Kyber than against NewHope. (Kyber missed this because its security analysis was oversimplified; I'm writing a paper on this.) More to the point, it's clear that there isn't and won't be a proof that Kyber is at least as secure as NewHope.

Cryptographers who condone exaggerations of what has been proven share responsibility for any resulting security failures. We cannot simply ignore the increased influence of dangerously oversimplified "provable security" claims upon standards and deployment. This is not a game."

</comment><comment><USER13> This all seems premature. If someone manages to invent a computer that works on atomic effects then there will be a lot of development of new algorithms based on whatever that computer can do.

There is a very good chance that regular classical computing would be greatly speeded up by such an invention. Just the ability to do things on atom scale would be a huge breakthrough.

<comment><USER14> It's entirely possible that QC will arrive but will be more of a special purpose accelerator for certain algorithms (think of the way custom ASICs can accelerate specific operations) rather than a general purpose thing. Some form of general purpose QC may happen eventually but that might take quite a bit longer, and it may take longer still for it to be commonplace.

In the meantime there will be a strong need for classically computable cryptographic algorithms that are strong against attack by any known quantum computable algorithm.

Symmetric encryption (AES, ChaCha) and hashing (SHA, Blake2) are _mostly_ safe as long as at least 256 bit keys are used and the algorithm doesn't have weaknesses that QC might open wider. Asymmetric encryption based on conventional Diffie-Hellman, RSA, or elliptic curve methods is absolutely not safe. There are known quantum algorithms that _on paper_ can crack them in reasonable amounts of time if you have the right type and size of quantum computer, and at this point we have reason to believe that such a quantum computer can _probably_ be built.

Post-quantum cryptography efforts are about developing asymmetric encryption (key exchange and signatures) that can be computed on a classical computer but for which there are no known quantum attacks.

The biggest danger by far is that somebody figures something out and builds such a quantum computer in secret, allowing them to snoop on all kinds of secret communication and steal vast amounts of money before anyone figures out something funny is going on. Unlike an atomic bomb or a new kind of aircraft or satellite, such a quantum computer could be built and operated without creating physical effects that anyone could see at a distance. Unless somebody talks it could remain secret for quite a while.

<comment><USER15> _we have reason to believe that such a quantum computer can probably_ What are those reasons? Quantum computers could as well be nonsensical bullshit funded since 40s years

<comment><USER14> There are a few QC skeptics with various arguments.

If you were the head of NIST (or the NSA), would you be willing to bet the entire security of your civilian and military communications infrastructure that these few skeptics are right? There were atomic bomb skeptics too, and it took Einstein to convince the US government to ignore them and move forward.

Seems silly to make such a high stakes bet against the scientific consensus, especially if classically computable algorithms that are both classically _and quantum_ strong can be found and deployed and if doing so is not that expensive.

Reminds me of Asimov's saying (paraphrasing): "When a distinguished but elderly scientist says something is possible, they are probably right. When a distinguished but elderly scientist says it is not, there's a non-trivial chance they're wrong." In this case quite a few of distinguished elderly physicists are saying you probably _can_ build a (useful non-toy) quantum computer. If history is any guide, they're much more likely to be right than wrong.

Edit: it's not a bad idea to develop new algorithms anyway just to have them around. We don't think the trap door functions behind current asymmetric crypto are classically reversible (in any practical amount of compute time), but there is no mathematical proof of this. It's a strong conjecture that's held up so far, but it's still a conjecture.

<comment><USER15> Yes, my heuristically rational denial of the possibility of useful quantum computing does not imply that we should not prepare even for the lowest risks, especially when they're an existential threat. That being said I do not understand the need of this NIST competition. I had the believe that current SHA256/512 _is_ quantum proof. Is that wrong? Why?

<comment><USER2> > That being said I do not understand the need of this NIST competition. I had > the believe that current SHA256/512 is quantum proof. Is that wrong? Why?

SHA2, SHA3, and AES256 are all quantum proof, yes. This competition is about asymmetric cryptography though, it replaces non-quantum proof algorithms such as RSA, DSA, ECC, etc.

</comment></comment></comment></comment></comment></comment><comment><USER16> Good</comment>


The Prospects for a Leaner and Meaner HPE - <AUTHOR> https://www.nextplatform.com/2017/09/06/prospects-leaner-meaner-hpe/ <comment><USER2> >"HPE is trying to figure out what to do"

While only applied in a couple paragraphs, it should be applied to the whole article: they're foundering and don't realize it.</comment>


Fraudulent trading activity at Mt. Gox, and how it affected the price of Bitcoin - <AUTHOR> http://willyreport.wordpress.com/2014/05/25/the-willy-report-proof-of-massive-fraudulent-trading-activity-at-mt-gox-and-how-it-has-affected-the-price-of-bitcoin/

<comment><USER2> Current discussion: [https://news.ycombinator.com/item?id=7796748](https://news.ycombinator.com/item?id=7796748) (318 points, 4 hours, 48 comments)</comment>


Overleaf v2 - <AUTHOR> https://www.overleaf.com/blog/654-overleaf-v2-launch-announcement <comment><USER2> I had a quick look since this would be a great time for me to jump into this; I'm starting to write my phd thesis.

Here's my problem, which from the quick look I had doesn't seem to be solved with OL2. I want to write my thesis in LaTex but the people that I need to collaborate with and ask for comments on my thesis cannot/shouldn't have to/ deal with leaving comments on the code part of LaTex (unfortunately "code" scares a lot of people). It would be much better for them to leave comments on the pdf side. Is that possible?

<comment><AUTHOR> This post has advice on collaborating with non-LaTeX users: [https://www.overleaf.com/blog/636-guest-blog-post-latex- for-...](https://www.overleaf.com/blog/636-guest-blog-post-latex-for-the- humanities)</comment></comment>