How Amazon Can Blow Up Asset Management - T-A https://jirisancapital.com/amazon-can-blow-up-asset-management/ <comment><AUTHOR> Amazon has a serious problem with counterfeit goods and fake reviews. One might think that with the rise of AI/ML catching fake reviews and counterfeits will be much easier but Amazon doesn't seem to be doing any thing. In which case, allowing them to handle money seems like a recipe for disaster.

As for the Ant Financial comparison, I find it hard to believe that Amazon is not utilizing the reserves it gathers by selling gift cards on its platform. Those too are excess reserves to be paid to suppliers once customers utilizes and buys something from a supplier.

<comment><USER2> > but Amazon doesn't seem to be doing any thing.

I would have thought that on Hackernews of all places people would recognize the scale that is involved with a site like Amazon and recognize that fixing this problem is far from trivial.

I'm sure Amazon is taking it very seriously - when have they ever shown anything but "obsession" about positive customer experiences. But it is hard, and it will take time to do it effectively without completely blocking all 3rd party sellers on the site.

<comment><USER3> I disagree. There seems to be so much low hanging fruit to at least reduce the problem but they haven't taken even the smallest steps. This is because they're prioritizing revenue, volume, and selection over fraud prevention.

<comment><USER4> Not true, they banned incentivized reviews. That's a big step towards getting more accurate reviews.

<comment><USER5> I'm not sure how they're enforcing the ban because I still see tons of reviews that are openly declaring that they were incentivized with the boiler plate "I received this item at a discount in exchange for my honest review." tag at the end of their review.

</comment></comment></comment></comment></comment><comment><USER6> If Robinhood, a start up with very few resources, can offer commission free trading, I'd bet Amazon could offer approximately 0 cost S&P500 funds.

If the partnership with JP Morgan works, people could direct deposit money into their Amazon account, auto-invest into Amazon funds, and then spend on Amazon ecommerce. In this model, Amazon immediately saves ~2% on credit card transaction fees, a small portion of which could be used to subsidize cheap or 0 cost investments.

Essentially Amazon could vertically integrate the money that will be spent on their products in the future...

<comment><USER7> vanguard and fidelity offer approximately 0 cost S&P500 funds already today.

you're talking .03% in fees. On a $1Mil investment that's $300 a year.

<comment><USER8> 3bps is certainly dirt cheap - but thats purely explicit cost. You have to look at how the fund is managed. If the fund manager is an idiot and forgets to rebalance or makes some other error - that 3bps can pale in comparison to missing the benchmark.

<comment><USER9> Is there any reason to believe that cheaper fund managers like Vanguard forget to rebalance?

<comment><USER8> Ah - no - I wouldn't think someone like Vanguard would forget. I was just highlighting that the "headline cost" number isn't the only cost you should consider.

Guys like Vanguard actually make money on their rebalances because they are so big. And they keep it in-house - avoiding the costs (both explicit and implicit) of outsourcing their flows to other firms. So being large brings economies of scale as well.

EDIT: By "make money" I mean they use their cost-savings to make or beat the benchmark

</comment></comment></comment></comment></comment><comment><USER10> I am amazed, how much people underestimate the whole complexity of setting up a _successful_ fintech. Basically, you don't have to work for the clients - you need to work for regulators, and also for risk and compliance, and also for duty of care, and much much more, on the thinnest possible margin, if you want to be competitive. Setting up AI to help people make investment decisions is a nightmare due to the number of dimensions you need to take into account while validating data.

I really hope Amazon doesn't start the investment service in the way described in the article.

</comment><comment><USER11> I don't think this would be a good idea for Amazon. I don't trust it right now to provide me things that aren't counterfit unless its sold by the actual supplier. Allowing funds to be on its platform without proper vetting seems strange. If Amazon actually wanted to go into the Asset Management space I would actually see it buying something like Robinhood. The problem in Asset management is all of the people who would regularly be retail investors are too smart to be peddled a bunch of random mutual funds and instead try to use index funds. The margins for those are already cut to the bone. I don't see how they could compete with something like Schwab intelligent portfolio either.

<comment><USER12> > I don't trust it right now to provide me things that aren't counterfit

That might be true for a small percent of HackerNews readers that are also Daringfireball readers - but the world at large still trusts Amazon; that's the whole point of the article, really.

As anecdotal evidence, an Amazon Investment might be the only way to convince me to become a Prime member (if that'd be a required precondition). I'd almost certainly use it, if allowed.

<comment><USER13> I don't know, I've seen a lot of trust erosion in the last few years even just among people I know (many of whom don't even work in tech), largely driven by them getting burned by problems with sketchy third-party re-sellers.

Unless you're paying close attention, it's not obvious to the average consumer that so many products are being sold by independent resellers vs Amazon themselves, so people aren't as careful as they might be on, say, eBay.

<comment><USER5> Amazon's reputation is starting to converge with Walmart imo.

</comment></comment></comment></comment><comment><USER14> In addition to ETFs, why not go 1 step further? Offer hedge funds too. Amazon has a ton of data on which consumer brands are overperforming every quarter. Use that data to make investment decisions.

<comment><USER15> Now that's a competitive edge...

</comment></comment><comment><USER16> Why does it _have_ to be Amazon? Look, Amazon's strategy isn't complicated.

Find a market where margins are large ("your margin is my opportunity"). Bring a simple, easy competitor to the market and aim for zero profit. Grow wildly. Build related products that either your customers want (and go elsewhere for) or else you are currently spending money on. Repeat until billionaire.

Anyone with some capital, industry-specific knowledge and a bit of courage can try this strategy. It won't always succeed. But the point is that waiting for Bezos or Musk or some other behemoth to solve all the world's problems rather than doing it ourselves is a very poor way to live.

<comment><USER17> If a VC or an angel investor would just give me $10,000 a year as salary, I would work on any idea full time for them, 90 hours a week, fighting fires, everything.

The issue is that the labor demand in this country (VCs, corporations, angels, basically anyone with money) would much rather prefer to spend $120,000 on one "really good" programmer than say $30,000 total on a team of 3 young and hungry programmers.

Something something, "adding programmers = adding delays and complexity to a project". And maybe it's true.

But the result is that the one amazing programmer lives lavishly, and the other 3 starve.

And what is worse, there's no guarantee the project will succeed, no matter who you hire.

<comment><USER18> This comment is so odd I'm not sure where to begin.

You would work more than 2x full time hours on any idea proposed by some VC for ~$2.25/hour? And you think there is an availability of competent "young and hungry" programmers who would do the same? And the lack of availability of this arrangement is causing these young hungry programmers to starve?

Is this entire comment some kind of joke or satire that went over my head?

<comment><USER17> No, I promise it isn't satire. There are a lot of us out here who are trying hard to get jobs but can't.

I would rather work for $10,000 with a chance at more responsibility and future promotions than not work at all.

Additionally, where I am currently, $10,000 would more than pay for food and rent and internet!

<comment><USER19> What are some reasons you can't find a job? I'd love to be able to tell my AVP that I can hire someone for $2.50/hour. We've paid $20/hour for data entry clerks just as a stop-gap measure before we automate things. At such a price we'd stop all our investment in automation and just massively hire people.

<comment><USER17> Perfect! Then we should be able to get to work together right now. Let me tell you my history, and why the $10,000 year number makes sense to me.

I graduated from a "top ranked" university, UNC Chapel Hill, with a degree in History. Because I knew a thing or two about computers, I got a job as a sales engineer (demonstrate and configure a hw/sw product for a customer) at one of the traditional IT corporations (HP, Dell, Cisco, Oracle, etc).

After 4 years, I was laid off due to extremely political management taking ownership of my manager's organization. This is common knowledge.

I was making about $55,000 a year, with some commission and bonuses. This again is typical for the industry.

I tried quite hard to get a job right back in the same line of work, but was unable to. If you look at unemployment statistics, unemployment is actually growing in the IT industry. Perhaps I am just bad at interviewing, or don't have good connections to get around this process.

The only other work I am qualified to do is retail management at about $45,000 a year. After taxes and living expenses in the North East USA, this is not exactly a profitable undertaking.

However! If I am able to do data entry, or basic web/game programming (think things that don't require "Senior" or "MA/PHD preferred), for $10,000 a year, remotely from my rural property, then I would be more than happy to do this. If I could have a small portion of equity, then great. My expenses would be more than covered, because I wouldn't have to pay city rent or commuting or etc.

</comment></comment></comment></comment></comment></comment><comment><USER20> Isn't the virtual distribution shelf for investment funds already a pretty established thing? When I log into my online bank there is an online market place for funds, allowing you to place money in funds with maximum trust and minimum effort. How would Amazon improve on this?

(That said, I like the idea of always selecting the top 1% of fund customers and allowing them to offer their own funds)

<comment><USER21> Because that existing "online market place for funds" is gibberish to most retail customers.

You go to Amazon, you type in "best AA batteries", and what you get back is not a raw list of battery serial numbers or technical specifications about battery performance (which is basically what you get in the existing brokerage experience, describing funds and their performance). What you get on Amazon is plain-english descriptions, reviews and ratings, and a sorted order of relevance or price or whatever. All these things smooth out the buying experience, reducing any possible source of friction for your purchase decision (hell, you can subscribe-and-save for new batteries every 6 months, thereby precluding ever having to make a purchase decision ever again); they want to make it as easy and natural and automatic as possible, for you to click Buy. But for investments, customers face a huge upfront barrier in terms of lack of knowledge and uncertainty, before they can make a purchasing decision; sure, all the raw information is there, but only highly motivated customers (relatively speaking) are going to dig through it or overcome it before transacting.

Now, I'm not saying that Amazon should add customer reviews of ETFs or funds or whatever ("5 stars: I bought VTSAX and made $43.26, and you can too!"), but it can certainly do a whole heck of a lot to reduce the friction of making a transaction. The point is, the customer shouldn't have to do any work (or as little as humanly possible), before clicking the Buy/Sell button.

And sure, the existing financial institutions can work on this same problem, but this is a actually not their biggest problem. Their biggest problem, is convincing customers to even think about them and take a look at their offerings, in the first place. 70+% of American households have Prime; how many have brokerage accounts? Some Googling around puts this at ~14% ([1] DOL 2015 report says 17 million households had brokerage accounts in 2013, DOWN from 19 million in 2001; total there's roughly 120 million total households in America). Also remember, this 14% of households is split amongst all the competing brokerage firms, while the 70% of households is ALL Amazon's.

All the brokerage ads I see, are targeted towards traders or people who want to become traders; this makes sense for those firms, because why would someone who has no interest in trading, ever use their brokerage? But this is narrow- minded and ultimately self-limiting thinking, and this is not at all how Amazon thinks. EVERYONE is an Amazon customer (or potential customer); once you're on the platform, figuring out exactly what to sell and how to sell it to you is easy. Prime is a huge economic engine/pool of consumers, at which Amazon could throw just about any product at, at any time. Some will stick, some will fail, but even those that fail can be recycled and improved and retried.

Everyone else is fighting over their shares of gold, while Amazon is working to create/feed the golden goose instead. Strategy over tactics.

\---

[1] [https://www.dol.gov/sites/default/files/ebsa/researchers/ana...](https://www.dol.gov/sites/default/files/ebsa/researchers/analysis/retirement/brokerageaccountsintheus.pdf)

</comment></comment><comment><USER22> Don't financial firms have to isolate their business models? Banks traditionally couldn't offer brokerage services for instance. I can't imagine the government granting Amazon a license to operate a retail trading desk, particularly if anyone can offer products on it.

</comment><comment><USER8> Great thought piece. Read this carefully and certainly written by someone knowledgeable about the industry (I would hope so if he's running a hedge fund!)

I see some comments view this as a far-fetched idea. Maybe that's why its a good one....

RobinHood, the stock trading app, didn't exist 5 years ago. Now you trade for free - challenging a dozen well-known incumbent platforms like Schwab, Fidelity, etc... Luckily, these big guys offer more than just stock-trading. Imagine, zero fee trading with a fund-management platform as described by OP - I think it would crush the competition.

</comment><comment><USER23> So here is a pitch you could make for the tech companies to get into finance. Simply replace <x> with either Amazon or Google

1\. <x> Advisor: Retail investors are moving rapidly to passive tracking instruments such as ETFs, <x> can help educate investors on how to allocate their funds to this asset class based on individual risk/reward profiles. <x> can make better sense of all the data available and become the 'ultimate' robo-advisor.

2\. <x> One View: <x> is in position to own account aggregation and build up an incredible view into the spending/saving habits of the general population in the developed world. Initiatives such as PSD2 in Europe will help fuel the growth in aggregation in the next few years. Going forward beyond simple read- only aggregation,combined with <x> Advisor and write-APIs to to financial institutions, <x> can allocate my funds to the best products across multiple different institutions in real-time.

3.<x> Bank: With my investments taken care of through <x> Advisor and One View whats left is a utilitarian bank account to manage my free cash flow on a daily basis. Something practical and highly functional without the fuss that offers features such as peer-to-peer FX swapping at mid rates when I go on holiday. This is where <x> could create the challenger bank people have been anticipating.

</comment><comment><USER24> Maybe they should offer an Amazon weighted fund, that invests based in your personal consumption, ie if you buy a lot of Gillette razers then buy some Gillette shares.

<comment><USER25> I think I'd by the 3x leveraged inverse of my consumption habits.

</comment></comment><comment><USER26> Article:

> Jeff Bezos' disdain for Wall Street is well known

Is it? Bezos got his business education on Wall Street at D.E. Shaw. What is known about his having "disdain" for that industry? Is this just a botched reference to his strategy of ploughing profits back into company growth?

</comment><comment><USER27> Lots of FicTech in my city. From friends who work for these companies. They are a mess. Amazon needs to come in revolutionize the market place. But if they did, they would get broken up.

Short term question is whether Walmart will survive, I hope they do much as I despise the company. Amazon needs competitors. Longer term is will it be Alibaba vs Amazon worldwide? Interesting times...

<comment><USER28> > Short term question is whether Walmart will survive

Why do you think they wouldn't survive? $15B in free cash flow versus $46B in debt makes bankruptcy a virtual impossibility.

</comment></comment><comment><USER29> > Amazon is rich with the most important resource in asset management: trust.

I'm sorry, but what? I don't even trust Amazon to deliver eclipse glasses that aren't counterfeit, and I know most of my friends/family feel the same way at this point.

The only thing I trust them to deliver is streaming video at this point.

</comment><comment><USER30> Given the level of counterfeiting and gamed reviews this seems like a quick route to financial dystopia.

</comment><comment><USER31> If Amazon wanted to move into Asset Management, I think they'd have to show financial experience/competence first for the trust to be there. Wouldn't it make more sense for them to open a bank first?

</comment><comment><USER32> How long before we see Amazon break themselves up as Google did into Alphabet? This seems like a solid approach to prevent government anti-monopoly action.

</comment><comment><USER33> If you want average returns and low fees just use Vanguard. You can't scale above average returns to Amazon scale.

</comment><comment><USER34> I see them lending before doing funds. Buy x for y per month, etc. Also, possibly lending to suppliers.

</comment><comment><USER35> The fact that an article like this about Amazon (or any of the tech "giants") is in some way credibe (I think it is) is curious. IE, a company that does retail, sells media & tech infratructure could also go into financial products...

I think it's several things are going on. First, this new breed of companies _is_ highly eutrepreneurial and competant. Maybe it's youth. Maybe it's the fact that they emerged recently as winners from a high competition dynamic... If Google or Amazon declare they will now be running schools, I'd be a lot more interested than if Unilever or Shell did the same. I know we're concerned about their power, size, monopoly power & vested intertest in the anti-privacy camp, but credit is still due... I think.

Second is the power of ....power. The modern economy is top heavy. Most markets are structurally hard to break into. "Normal people" can't just start company doing banking, insuring, medicines, transport, tobacco, energy, gambling. There are upstart-hostile rules, locking out new and/or small players or structural reasons preventing small players.

"Can't" is strong. Uber started a transport company. But, there are structural and regulatory reasons that make most large markets much more closed than search engines and online shopping. There is no chance for a thousand entrants, with winners emerging from a wide field. This leaves the field open almost exclusively to large companies running lower risk gambles.

Third.. third is financing. Financing has changed in ways that I don't understand well enought to express concisely. There is a lot of financing available these days, via "back-channels." The less formal sectors like VC and (much bigger) corporate lending.

Think of what california's VC & angel complex does. It is, in many ways, the heart of the startup ecosystem. Promising founders get to take big chances without liability. This makes it possible to start a Google or an Uber.

How would SV look if founders had personal liability, like regular small business people? How would it look if they were limited to bootstrapping? Startup financing is an exception, and a relatively small one. Elsewhere on earth, finance is a much more closed shop. You have to be an insider of some sort.

Financing is (to quote Buffet) *resource allocation.

Take for example, "leveraged buyouts" and similar arrangements. Leveraged buyout means that I get a loan from you to buy company X, which then owes you repayment. Some form of this is how Russia's oligarch system came to be. It's how a lot (most) private sales of comapnies happen. It's how infrastructure companies happen. Mining.

I don't quite understand it. The big risks are go to the financer, but the profits don't. Regardless, the structure exists and being big is a prerequisite.

</comment><comment><USER36> This has an insane amount of detail. Is this a pitch?

</comment><comment><USER37> I got my law degree at Costco.

This is the umpteenth thread where commenters are complaining about the sad state of Amazon's retail. I hear a constant stream of complaints about counterfeit goods, fake reviews, less than great pricing, and shipping that takes longer than promised. I've personally experienced all of the above and cut way back on Amazon.

How many companies thrive while the quality of their core business withers?

Of course, maybe retail isn't their core. Maybe the core is providing barely acceptable products and services at razor thin margins. In that light asset management makes perfect sense.

<comment><USER38> Amazon's business model is built on predatory pricing. Their Cloud business is wholly subsidizing there monopolistic grand plan.</comment></comment>


We released our first game – Dotap. Try it out - <AUTHOR> https://play.google.com/store/apps/details?id=com.slashBuff.Dotap

<comment><USER2> Why does it need access to: Photos/media/Files WiFi connection info Device ID and call information ?</comment>


Ask HN: What are examples of GitHub repositories with high code quality? - <AUTHOR> The language doesn't really matter. I'm trying to see examples of what people consider high quality code (clean, elegant, well-formatted, algorithmically beautiful, etc). <comment><USER2> This isn't a github repo - but I think it's an excellent resource and worth mentioning here: The Architecture of Open Source Applications ([http://aosabook.org/en/index.html](http://aosabook.org/en/index.html))

edit: I don't see why this is down-voted, the OP asked about examples of high- quality code, structure and design are also a large part of this and it's not hard to find the github-repo for any particular application mentioned in the above book. Furthermore a lot of examples of excellent code are not necessarily easy to approach with the 'open some random files and start reading approach', having a high level overview often helps.

<comment><USER3> This is an excellent book, but the funny thing is that it only says "what is" and not "why". It took me years of experience and pain to figure out "why".

<comment><USER4> Could you share some resources where "why" is also discussed.

<comment><USER3> Blood, sweat and tears are the only resources I have to offer...

</comment></comment></comment></comment><comment><USER5> The Go standard library is throughly documented and implements all sorts of functionality (HTTP, crypto, libc-esque functionality) in a fairly minimal way:

[https://github.com/golang/go](https://github.com/golang/go)

<comment><USER6> The APIs that you as the programmer are supposed to invoke tend to be well- documented and fairly well-designed.

But there's some parts in there I certainly wouldn't call elegant. For example, if you trace function calls from _http.Get()_ you end up in a lovely function called _doFollowingRedirects()_ [0] which is where the actual request is made inside of a _for {}_ loop.

Be it efficiency, some stylistic tendency I'm unaware of, or some contrived excuse that doesn't make any sense, at the end of the day I'm not likely to look for a function called _doFollowingRedirects_ when I want to see where the initial (and likely only) request is made.

[0]: [https://github.com/golang/go/blob/master/src/net/http/client...](https://github.com/golang/go/blob/master/src/net/http/client.go#L430)

<comment><USER5> I read `doFollowingRedirects` with an elided comma - that is, 'do, following redirects (as you go)'.

In that context, the function doesn't seem so surprising. If you take a look at the function `Do`[0], you'll notice it calls out to either 'send' or 'doFollowingRedirects' depending on whether it's a request that should 'do, following redirects' or simply 'send a single request'.

Many HTTP libraries I've seen are structured around creating a request object and then handing it to a 'do request' function - the crime here at best seems to be the naming 'doFollowingRedirects', which can be read as 'do the subsequent redirects' which might make it seem odd that the first request was included in the for loop therein.

</comment></comment></comment><comment><USER7> Flask, which (for those that don't know) is a popular Python web framework. [https://github.com/pallets/flask](https://github.com/pallets/flask)

I consider it well written. I never dive into flask and come out confused or disappointed.

</comment><comment><USER8> "High quality" is an strange concept. I would look at code you actually use and rely on - that's the best indication of quality. A lot of critical code deals with inelegant, complex problems correctly and efficiently - I'd consider anything that can be relied on to manage that "high quality", even if it is unclean, inelegant, poorly formatted and algorithmically mundane.

That said, if you want to read elegant code, I'd recommend the stb parser libraries (written in C). They are small self-contained decoders for many common media formats, with excellent documentation:

[https://github.com/nothings/stb/blob/master/stb_image.h](https://github.com/nothings/stb/blob/master/stb_image.h) [https://github.com/nothings/stb/blob/master/stb_truetype.h](https://github.com/nothings/stb/blob/master/stb_truetype.h) [https://github.com/nothings/stb/blob/master/stb_vorbis.c](https://github.com/nothings/stb/blob/master/stb_vorbis.c)

These libraries are likely insecure, handle many edge-cases incorrectly, implement fewer features, and perform worse than other options. However, they meet your criteria better.

<comment><USER9> It is not nearly enough for a code to just work and be useful. Code quality is what determines how maintainable it is, how long will it stay relevant, how long will it survive the changing requirements and environment. And it is much harder to get this than just something that (sometimes) work.

<comment><USER8> Absolutely, by all means look at old code - code that has survived and been useful for a long time. It's either adaptable (Linux) or doesn't need to change or adapt much (TeX).

Do you currently use and rely on software which you expect won't be useful to you in ten years time? I can't think of much personally.

(I do use IDA Pro, which has clearly adapted poorly to changing requirements - it still has scars of the 32-bit to 64-bit transition that get in the way of day-to-day usage. I hope there'll be something better in ten years. Of course, I could buy a cheaper, "higher quality" tool instead, but none of them are as powerful or as useful.)

</comment></comment></comment><comment><USER10> Question to C programmers: Every time I encounter some C code, it doesn't take long until the obscurely short variable names start popping up from all directions. Is naming variables in this manner considered acceptable by today's "C best practices" or what's the deal with that?

<comment><USER11> Strangely, golang adopted this practice of very short variable names. Surprising since golang is so focused on clarity and readability.

<comment><USER12> Exactly. The assumption that only long variables are readable is false

</comment></comment></comment><comment><USER13> For JavaScript, Underscore is very good in terms of clean readability. LoDash is a better library, functionality-wise, but seems to have lost the quality somewhat.

Backbone and the Coffeescript compiler are also good; jashkenas & the contributors did a good job trying to put literary programming techniques to use, IMO.

The Elixir source code is very high quality; same applies to the Ecto library. Elixir code in general, because of the focus on including detailed documentation (including doctests) within the code, tends to be very readable. The way the REPL is set up means the docs for modules or functions can be accessed at any point, so it's good for pragmatic reasons.

<comment><USER14> [https://github.com/jashkenas/underscore/blob/master/undersco...](https://github.com/jashkenas/underscore/blob/master/underscore.js)

<comment><USER13> Thanks, have crap WiFi ATM and can't get online for more than a few minutes at a time, I'll add the rest of the links once I'm back in the UK

</comment></comment></comment><comment><USER15> Here's a couple of projects that I've been personally impressed with. I hope you don't mind a non-Github repo in there..

C

      - REDIS @ https://github.com/antirez/redis
      - Postgresql @ http://git.postgresql.org/gitweb/?p=postgresql.git;a=tree;f=src;hb=HEAD

Java

      - Spring Framework @ https://github.com/spring-projects/spring-framework
      - Guava @ https://github.com/google/guava

Javascript

      - ui-grid @ https://github.com/angular-ui/ui-grid

<comment><USER16> Can't say I agree personally on UI Grid - it's a bit of a mess in some ways, especially in its distribution. It is also a bit of a configuration nightmare.

For high quality JS, I would look to some of the major frameworks out there:

[https://github.com/facebook/react](https://github.com/facebook/react)

[https://github.com/angular/angular.js](https://github.com/angular/angular.js)

[https://github.com/angular/angular](https://github.com/angular/angular)

There is a lot one can learn about software design by reading the source code of major libraries, and is far more reliable than any third party library in the ecosystem.

<comment><USER17> A smaller, more accessible project would be Mithril, very nice, clean code. I haven't looked at the v0.2 code yet, but I can't imagine it deviates much from the quality of v0.1.

[https://github.com/lhorie/mithril](https://github.com/lhorie/mithril)

</comment></comment></comment><comment><USER18> I'm a bit surprise that no one actually mention rust programming language codebase.

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

<comment><USER19> I'll note that while the code quality in Rust is pretty good (clean/usually commented/well formatted/tested), it's not exactly idiomatic Rust.

This is because Rust as a language has changed a lot, and the compiler still has old code that was written the "old way" and not updated to use better or more idiomatic alternatives (e.g. elision, if let, etc). Servo is in a similar situation. This is slowly improving as we run clippy on Rust and in occasional manual refactorings (for example when sty was renamed to TypeVariants and ty_foo was renamed to TyFoo to be have the correct capitalization -- the old capitalization was _years_ old), but there still is work to do to make it completely idiomatic.

So if you want to learn how to write idiomatic Rust, I would avoid using the Rust repo as a source. Newer repos and new code in the Rust repo is pretty okay, though.

</comment></comment><comment><USER20> yegor from yegor256.com Did an award in 2015[0] for good quality software projects. I think his evaluation points are sensible:

"Each project must be: * Open source (in GitHub). * At least 5,000 lines of code. * At least one year old. * Object-oriented (that's the only thing I understand).

The best projects will feature (more about it): * Strict and visible principles of design. * Continuous delivery. * Traceability of changes. * Self-documented source code. * Strict rules of code formatting.

What doesn't matter: * Popularity. * Programming language. * Buzz and trends. "

In the end there 158 submissions, 12 finalist and 1 winner. Check them out.

[http://www.yegor256.com/2015/04/16/award.html](http://www.yegor256.com/2015/04/16/award.html)

<comment><USER21> TL;DR (the article) this is the winner:

\- [https://github.com/suseika/inflectible](https://github.com/suseika/inflectible)

</comment></comment><comment><USER22> Pokemon Showdown's code quality impressed me when I looked at it: [https://github.com/Zarel/Pokemon-Showdown](https://github.com/Zarel/Pokemon- Showdown)

It's not literally flawless (hard to find conceptual entry points, short on comments), but when you get to the massive piles of one-off special functions needed to simulate all of Pokemon's moves and abilities (e.g. [https://github.com/Zarel/Pokemon- Showdown/blob/master/data/a...](https://github.com/Zarel/Pokemon- Showdown/blob/master/data/abilities.js) ) it's all much more succinct than I'd have expected. The file I linked expresses more "business logic" in 3300 lines than is contained in the entire 40kiloline codebases of some of the enterprise monstrosities I've worked on.

<comment><USER23> Code organization could use some work. A lot of shared mutable state. Event listeners are subscribed with "on" instead of "once" for one time events... that's all I could find in like 30 seconds... Disqualified

<comment><USER24> High Code Quality is not synonymous with perfect. Your critique is disqualified.

</comment></comment></comment><comment><USER25> [https://github.com/tornadoweb/tornado](https://github.com/tornadoweb/tornado) is one of my favourites. Not a huge number of comments, but in terms of "self- documenting" code it's great.

<comment><USER26> Seconded, it's a clean well-documented API with an implementation that's easy to read.

</comment></comment><comment><USER27> [https://github.com/erlang/otp](https://github.com/erlang/otp) is one of the best examples I can think of. It's reliability focused engineering from a major engineering firm.

<comment><USER28> I was hoping that i'd agree but check the code for Mnesia for example: [https://github.com/erlang/otp/blob/maint/lib/mnesia/src/mnes...](https://github.com/erlang/otp/blob/maint/lib/mnesia/src/mnesia.erl#L1865)

Numerous functions missing essential code documentation all spread in a single file, with commented out code committed in git.

</comment></comment><comment><USER29> I'm surprised no one has mentioned [https://github.com/twbs/bootstrap](https://github.com/twbs/bootstrap)

Maybe because it's getting a bad wrap these days with people doing dumb, repetitive things with it. But I've always found the code quality to be very good.

</comment><comment><USER30> I would like to see people commenting about why they think that the project they recommend has a high quality code.

Otherwise it's too subjective.

</comment><comment><USER31> I'm partial, because I work on these:

Deeplearning for Java [https://github.com/deeplearning4j/deeplearning4j](https://github.com/deeplearning4j/deeplearning4j)

Scientific Computing for Java with n-dimensional arrays [https://github.com/deeplearning4j/nd4j](https://github.com/deeplearning4j/nd4j)

The C++ lib that makes it fast [https://github.com/deeplearning4j/libnd4j](https://github.com/deeplearning4j/libnd4j)

</comment><comment><USER32> I've really enjoyed looking at the GraphQL JavaScript reference implementation source [1]. It is well-commented, consistently formatted and structured, and makes frequent references to the spec. The spec itself [2] is very well written too, and I think the project being spec-driven along with the code quality make it a good example.

It feels like a _lot_ of thought was put in to making the code well-documented and easy to follow for people new to the project.

[1] [https://github.com/graphql/graphql- js](https://github.com/graphql/graphql-js) [2] [https://facebook.github.io/graphql/](https://facebook.github.io/graphql/)

</comment><comment><USER33> I was once searching for a "good" example of a code repository, but was unable to find one I couldn't fault.

In response, I put the effort in for my smallest project to make it as high quality as possible: [https://github.com/daurnimator/fifo.lua](https://github.com/daurnimator/fifo.lua)

It's probably not much help to you unless you're working with lua; but... you did say any language :)

</comment><comment><USER34> [https://github.com/Tarsnap/spiped](https://github.com/Tarsnap/spiped)

</comment><comment><USER35> The Laravel framework [1]. It makes the most of the latest features available in PHP (reflection, traits, namespacing, etc.) and its author, Taylor Otwell, has an almost obsessive attitude with the naming of methods and formatting of the source code. For instance, every multiline comment is exactly three lines long, and every line is three characters shorter than the previous one [2].

[1] [https://github.com/laravel/framework](https://github.com/laravel/framework)

[2] [https://www.reddit.com/r/laravel/comments/20ovey/just_notice...](https://www.reddit.com/r/laravel/comments/20ovey/just_noticed_this_its_like_this_in_every_config/cg5w2x6)

<comment><USER36> Laravel is a pretty bad codebase, making use of reflection or just assuming methods are present instead of interfaces, actively laughing in the face of static typing.

They're also awful at managing issues/bugs, where they'll gladly close issues without explanation, or close an issue when a pull request gets submitted, only to reject the pull request and not re-open the issue.

<comment><USER35> Fair enough, you seem to have contributed quite a bit to the framework after all [1]. However, don't you think they have gotten better with triaging as of late?

Also, I'm wondering, does your criticism still apply to the latest versions of Laravel or does it stem from frustrations with the pre-5.0 versions? Regarding your comments about the lack of interfaces, it's worth mentioning that at least the core components do have an interface now [2].

[1] [https://github.com/laravel/framework/pulls?utf8=%E2%9C%93&q=...](https://github.com/laravel/framework/pulls?utf8=%E2%9C%93&q=is%3Apr+author%3Aanlutro)

[2] [https://laravel.com/docs/master/contracts#contract- reference](https://laravel.com/docs/master/contracts#contract-reference)

</comment></comment></comment><comment><USER37> This is beautiful: [https://github.com/rust-lang- nursery/regex/blob/master/src/d...](https://github.com/rust-lang- nursery/regex/blob/master/src/dfa.rs)

</comment><comment><USER38> Any Python code from Armin Ronacher ([https://github.com/mitsuhiko](https://github.com/mitsuhiko)) or Kenneth Reitz ([https://github.com/kennethreitz](https://github.com/kennethreitz)).

They have really clean code, popular packages and are open about their decisions. It is interesting to understand their design thinking.

</comment><comment><USER39> [https://github.com/yapstudios/YapDatabase](https://github.com/yapstudios/YapDatabase)

Great code, docs and support.

</comment><comment><USER40> Any of the popular Square libraries are great examples, [https://github.com/square](https://github.com/square).

</comment><comment><USER41> Both the deepstream.io server

[https://github.com/deepstreamIO/deepstream.io](https://github.com/deepstreamIO/deepstream.io)

And node client

[https://github.com/deepstreamIO/deepstream.io-client- js](https://github.com/deepstreamIO/deepstream.io-client-js)

are examples for a very clean, "no nonsense" style of writing JavaScript

<comment><USER23> Uses JSDoc, and the code is well structured.

But it has lots of statefulness, some of the state is structured as a finite state machines in ways that are easy to break (similar to the "request" module, also a FSM that is incredible easy to break).

Function parameters are not validated.

<comment><USER42> What do you mean by breaking the fsm? Isn't the whole point of having a fsm to explicitly describe the entire app-state? Honest question

<comment><USER23> A state machine has states and transitions. Some transitions are valid, others are not.

Therefore when you implement a state machine in code the consequence is sequential coupling.

Imagine a car class: You have StartCar(), Accelerate(), Break(), StopCar(), SwitchGear(). Can you accelerate with your car turned off? no. Can you stop your car twice? No. So there should be validations in state transitions. Since in this code those are missing, it's possible to arrive to invalid states that can cause undesired behavior.

In the "request" npm module (an ambiguous module name that wastes a lot of my time in a regular basis), you can abort a request that has not started. That causes an exception. It took me a lot of time to find it. It was all because of a broken state machine.

</comment></comment></comment></comment><comment><USER43> [https://github.com/laravel/framework/tree/5.2/src/Illuminate](https://github.com/laravel/framework/tree/5.2/src/Illuminate)

It's one of the highest quality and cleanest PHP codebases I've ever seen.

PS: Please pipe all the unflattering comments about PHP to /dev/null, heard them all before.

</comment><comment><USER44> [https://github.com/smaato/ui-framework](https://github.com/smaato/ui- framework)

UI Framework built with React and SCSS. The components are nicely modularized, have unit tests, and we put a lot of emphasis on code readability, clear names for things, a scalable folder structure, and intuitive interfaces.

</comment><comment><USER45> [https://github.com/thoughtbot](https://github.com/thoughtbot)

</comment><comment><USER46> The Quaint programming language:

[https://github.com/bbu/quaint-lang](https://github.com/bbu/quaint-lang)

I think the strengths of the C code are: straightforward algorithms without many nonsensical abstraction layers, consistent and clean formatting, sane usage of the preprocessor.

</comment><comment><USER47> [https://github.com/ReactiveCocoa/ReactiveCocoa](https://github.com/ReactiveCocoa/ReactiveCocoa)

IMO very well written and very well run project. I follow most issues closely just because the discussions re: code reviews, new features, and community questions.

<comment><USER48> And a very nicely written and architected example project:

[https://github.com/richeterre/SwiftGoal](https://github.com/richeterre/SwiftGoal)

ReactiveCocoa 4, Swift 2.2, MVVM architected, full test suite.

</comment></comment><comment><USER49> Nethack's repository is pretty great, especially considering how old it is and that it is in C.

[https://github.com/Vanilla- NetHack/NetHack/tree/master/src](https://github.com/Vanilla- NetHack/NetHack/tree/master/src)

<comment><USER50> I... is that sarcasm? NetHack's code is a tangled mess of K&R C.

<comment><USER51> indeed it seems it's often a sea of nested if's and switch's with occasional #ifdef's e.g. [https://github.com/Vanilla- NetHack/NetHack/blob/master/src/a...](https://github.com/Vanilla- NetHack/NetHack/blob/master/src/apply.c#L277)

I think this is a reasonable way to handle the tons of special cases in nethack's gameplay, but not really "inspiring".

</comment></comment></comment><comment><USER9> The threshold of what the high code quality is was set long ago and remains far beyond the reach of the mere mortals.

You will hardly find anything even distantly approaching the quality of TeX and Metafont. Not sure if there are mirrors on github, but you can always grab a copy from CTAN.

</comment><comment><USER52> The LMAX Disruptor is well-documented, fast, and arguably simple considering what it offers: [https://github.com/LMAX- Exchange/disruptor](https://github.com/LMAX-Exchange/disruptor)

<comment><USER53> There are a couple of good episodes of software engineering radio to go along with this codebase.

</comment></comment><comment><USER54> Hanami has really good code quality: it's really easy to understand from a newcomer's perspective and is full of examples: [https://github.com/hanami](https://github.com/hanami)

</comment><comment><USER55> Presto has great source code too, check it out: [http://github.com/prestodb/presto](http://github.com/prestodb/presto)

</comment><comment><USER56> Spree has followed very good standards - [https://github.com/spree/spree](https://github.com/spree/spree)

Language: Ruby Framwork: Rails

</comment><comment><USER23> Id Software's Doom 3: [https://github.com/id- Software/DOOM-3](https://github.com/id-Software/DOOM-3)

<comment> iso-8859-1 Isn't game code notorious for being hastily finished?

</comment></comment><comment><USER57> lodash is great and heavily documented.

[0] [https://github.com/lodash/lodash/](https://github.com/lodash/lodash/)

</comment><comment><USER58> [https://github.com/stripe/stripe-go](https://github.com/stripe/stripe-go)

</comment><comment><USER59> NetBSD

[https://github.com/IIJ-NetBSD/netbsd-src](https://github.com/IIJ- NetBSD/netbsd-src)

</comment><comment><USER60> Ring is pretty special.

[https://github.com/ring-clojure/ring](https://github.com/ring-clojure/ring)

</comment><comment><USER61> [https://github.com/torvalds/linux](https://github.com/torvalds/linux)

<comment><USER62> Have you actually ever read any of the Linux source code? I find it pretty hard to read to be honest. There are barely any comments and the ones that are there are often not very helpful.

<comment><USER63> I highly recommend this gitbook to you: [https://0xax.gitbooks.io/linux- insides/content/index.html](https://0xax.gitbooks.io/linux- insides/content/index.html)

<comment><USER64> "Read the docs" is not an excuse for incomprehensible source code. If links to documentation are not in the code, they might as well be nonexistent.

In this case, I've never read the sources, so I have no idea if the complaint is valid.

<comment><USER65> > If links to documentation are not in the code, they might as well be > nonexistent.

Yeesh. I must either be getting old, or everyone is _significantly_ more busy than I am. I find that I always have time to at least _locate_ any official documentation for the thing that I'm working with.

</comment></comment></comment></comment></comment><comment><USER66> [https://github.com/hapijs/hapi](https://github.com/hapijs/hapi)

</comment><comment><USER67> crystal-lang's standard library is a good example. [https://github.com/crystal-lang/crystal](https://github.com/crystal- lang/crystal)

</comment><comment><USER68> Elixir and Phoenix

</comment><comment><USER21> I'm going to propose one of my own[1], since I can do few projects without time limit (for fun) so I did my best to properly program, test and document it. I overcommented on the past but I'm trying to correct it now. Also, all of the new contributors follow the same style so things stay consistent. As an example, let's try to understand the function `.addClass`:

\- Just to use it you can see the documentation on the website[2], which is the first contact normally.

\- Then when you try to find the relevant files. They are in github's `src/plugins/addclass`, a name that is common and intuitive [3].

\- Not only that, but you also got the documentation in that folder in github thanks to the name `readme.md`.

\- When opening it [4], the first thing that you note is that the function has a tiny footprint; 8 lines. A brief explanation of what it does and a line explaining what the not-so-intuitive function `this.eacharg()` means.

\- Then we use the native `Element.classList` [5] to add classes. Most people familiar with _vanilla_ javascript know it, but otherwise the name is quite descriptive `el.classList.add(name)`

In contrast, while covering quite few other edge cases and older browsers, check jQuery's `.addClass()` code [6]. Or check Zepto.js' `addClass()` code [7]

[1] [http://github.com/umbrellajs/umbrella/](http://github.com/umbrellajs/umbrella/)

[2] [http://umbrellajs.com/documentation#addclass](http://umbrellajs.com/documentation#addclass)

[3] [https://github.com/umbrellajs/umbrella/tree/master/src/plugi...](https://github.com/umbrellajs/umbrella/tree/master/src/plugins/addclass)

[4] [https://github.com/umbrellajs/umbrella/blob/master/src/plugi...](https://github.com/umbrellajs/umbrella/blob/master/src/plugins/addclass/addclass.js)

[5] [https://developer.mozilla.org/en/docs/Web/API/Element/classL...](https://developer.mozilla.org/en/docs/Web/API/Element/classList)

[6] [https://github.com/jquery/jquery/blob/305f193aa57014dc7d8fa0...](https://github.com/jquery/jquery/blob/305f193aa57014dc7d8fa0739a3fefd47166cd44/src/attributes/classes.js#L17)

[7] [https://github.com/madrobby/zepto/blob/601372ac4e3f98d502c70...](https://github.com/madrobby/zepto/blob/601372ac4e3f98d502c707bf841589fbc48a3a7d/src/zepto.js#L732)</comment>


Times New Roman alternatives: You can do better (2013) - <AUTHOR> https://practicaltypography.com/times-new-roman-alternatives.html <comment><USER2> I love a good font (and try to use one on my own blog), but part of me gets really giddy when I discover a site with very little styling. It's like I've found some secret oasis that's going to have a high signal-to-noise ratio, or at least some more "raw" writing than you'd find on ${popularNewsWebsite}. Some sites that come to mind:

\- [https://danluu.com/](https://danluu.com/)

\- [https://100r.co/site/home.html](https://100r.co/site/home.html)

\- [https://meagher.co/](https://meagher.co/)

\- [https://macwright.org/](https://macwright.org/)

Where Times really shines is printed material. I find it (and Garamond) extremely easy to read.

For longform _screen_ reading, I usually prefer Georgia, Freight Text, Source Serif, and Tiempos. San Francisco is a nice sans-serif font for this, too.

<comment><USER3> Those (almost) all do reasonably well where most "minimalist" sites fail, accessibility. Many developers seem to get a kick out of "not caring about design", as some sort of point of pride, but at the same time put in just enough CSS to screw over the visually-disabled.

HN, for instance, can't be zoomed in iOS.

Also, the above macwright cuts off the titles to make room for the Dates, so to me the site looks like:

Rec...2020-06-01

Sec...2020-05-10

Link...2020-05-02

Rec...2020-05-01

<comment><USER4> > HN, for instance, can't be zoomed in iOS

Both pinch-to-zoom and increasing font size work for me in iOS Safari, what zoom are you talking about?

<comment><USER3> Using the font menu in the address bar to change the scaling should increase find size _and_ reflow the text to fit in that size. Currently it just zooms in a. la. pinching. It works correctly on the home page, but not in a comments page.

<comment><USER5> It works fine up to 125% for me, but then it just zooms when you increase to 150%.

</comment></comment></comment></comment></comment><comment><USER6> He lists only three 'flaws' with Times New Roman. The first is:

> It was created for a newspaper, so it's a bit narrower than most text fonts

yet all the alternatives are almost exactly the same width. Plantin is even a bit narrower. How do they "avoid its shortcomings"?

The second flaw is "italic is mediocre", which I'm not in a position to judge.

The third (and main) complaint is "it connotes apathy", and one of the suggested alternatives is:

> EQUITY (designed by me).

I'm all for artists promoting their work, as long as they're honest about it. This page is basically an ad, right?

<comment><USER7> If you're upset by Butterick linking to his own font then you're not "all for artists promoting their work". This is ridiculous. Is he supposed to pretend he doesn't make fonts in his book about typography?

<comment><USER6> It's a good thing I'm not upset by it, then.

</comment></comment></comment><comment><USER8> Has the default font on that site been changed? IIRC it was Valkyrie, but now Century Supra is selected for me, and it doesn't seem to elicit quite the same breath-taking effect. (Not talking about Times New Roman on the linked page.) If my memory and senses don't fault me in the tiredness and drunkenness, then switching to Valkyrie (at the bottom) is highly advised, as with it this site is the most beautiful on the whole web. Every single interval is perfect, which causes fits of irremediable envy for me.

However, Firefox Preview on my phone doesn't seem to answer my efforts towards the aesthetic bliss and refuses to load the font.

BTW, my personal favorite _free_ serif font is Merriweather—particularly for reading long texts. It's somewhat overused on the web, but it's so much better than the next thing. It has the exact right 'density', and the shapes are playful just enough to not tire out the eye.

As for sans-serif, alas! If I could have Rosario with good kerning and support for more languages, or Optima with a bit less contrast and more humanistic shapes—I'd be so happy. Until then, it's back to Fira Sans again and again.

<comment><USER9> fwiw when I clicked the article it was in Valkyrie, and that's the first time I've ever been on that site

</comment></comment><comment><USER10> The best three fonts are: "sans-serif" (for general use), "monospace" (for code), and "serif" (for when you need a secondary font for contrast).

The choice of implementation for these fonts should be left to the reader (who will probably use the defaults for their browser/ebook reader). This way everybody gets the fonts they're used to, which are the easiest fonts to read. I don't even know which exact font I'm looking at now, but I know that I don't allow web designers to change it.

<comment><USER11> I would be interested in reading more about how you prevent web designers from changing the page's font. I used about:config on Firefox to stop fonts from downloading, but that made it hard for me to use github.com and one or 2 other sites because those sites use a font to render icons that are essential parts of the UI.

<comment><USER12> In Firefox: Options – Language and Appearance – Fonts and Colors – Advanced… – Disable "Allow pages to choose their own fonts, instead of your selections above"

It's what I've been using for months now (and I also block web fonts using Firefox Focus' extension in iOS/iPadOS Safari). And that's even though I'm a typography geek, and have bought fonts from Matthew Butterick (the author of the submitted article).

Looks weird for a day or two, after that you never miss web fonts.

Make sure to select a nice default font (for example, Verdana is nice, but I'm German, and Verdana does not have a closing quotation mark for German – it's another one than is in use in English).

My setting is Constantia as default font and serif, Segoe UI as sans-serif, and Consolas as monospace.

</comment></comment></comment><comment><USER13> I think there's a chance that if a document is set in Times New Roman, the author focussed on the content rather than the presentation, which usually is a good thing.

<comment><USER14> It's not an either/or proposition; and given the low cost of changing the base font for a document, all using the defaults says is "I don't care about presentation at all".

</comment></comment><comment><USER15> Since we're talking fonts, I'll recommend a few of my favorites, all serifs:

Lyon Text: [https://commercialtype.com/catalog/lyon_text](https://commercialtype.com/catalog/lyon_text)

Blanco: [https://www.fostertype.com/retail- type/blanco](https://www.fostertype.com/retail-type/blanco)

Bridge Text: [https://www.typemates.com/fonts/bridge- text](https://www.typemates.com/fonts/bridge-text)

Arnhem: [https://www.typeby.com/fonts/arnhem](https://www.typeby.com/fonts/arnhem)

Heldane: [https://klim.co.nz/retail-fonts/heldane- text/](https://klim.co.nz/retail-fonts/heldane-text/)

Ivar Text: [https://lettersfromsweden.se/font/ivar- text/](https://lettersfromsweden.se/font/ivar-text/)

Gliko Modern: [http://r-typography.com/19_gliko- modern/](http://r-typography.com/19_gliko-modern/)

Rialto Piccolo: [https://fontstand.com/fonts/rialto-piccolo- df](https://fontstand.com/fonts/rialto-piccolo-df)

<comment><USER16> Thanks for the suggestions! I checked them all out. Lyon, Ivar and Arnhem are quite nice substitutes for Times.

The others I find a bit too "designed" to be used as straight substitutes. Their design is quite striking, and risks distracting from the message in long paragraph text. Particularly Gliko, which is beautiful for titling but I can't imagine reading more than a few sentences of it.

I'm personally quite partial to the Adobe fonts for book text:

* Adobe Garamond [https://fonts.adobe.com/fonts/adobe-garamond#fonts-section](https://fonts.adobe.com/fonts/adobe-garamond#fonts-section)

* Adobe Caslon [https://fonts.adobe.com/fonts/adobe-caslon#fonts-section](https://fonts.adobe.com/fonts/adobe-caslon#fonts-section)

* And to some degree, even Minion [https://fonts.adobe.com/fonts/minion](https://fonts.adobe.com/fonts/minion)

<comment><USER15> Right on!

Quick followup to share: [https://typefoundry.directory](https://typefoundry.directory)

</comment></comment></comment><comment><USER17> Honestly speaking for myself I think roboto and Calibri are excellent fonts.

Readable and aesthetically pleasing, what's the general opinion on these default fonts in the typography world?

<comment><USER18> I don't care for Calibri and I wish Segoe were the default in Word.

<comment><USER13> Yes! Segoe UI looks brilliant. I'm not sure how it looks on paper, though.

<comment><USER18> I think it looks pretty good printed.

[https://imgur.com/a/mpJtv8o](https://imgur.com/a/mpJtv8o)

</comment></comment></comment></comment><comment><USER19> I finished Practical Typography yesterday and highly recommend it! In fact, I recommend anything Matthew Butterick I've seen so far. Triplicate is a perfect programming font, Pollen, Beautiful Racket, Reversing the Tide of Declining Expectations [1], his newsletter...

[1] [https://unitscale.com/mb/reversing-the- tide/](https://unitscale.com/mb/reversing-the-tide/)

</comment><comment><USER20> The DejaVu Serif fonts bundled with Ubuntu are a really nice alternative to Times New Roman (and much nicer licensing!)

I have a hard time quantifying why, but they're much easier on the eyes.

Not a shameless plug I swear but we converted DejaVu Serif to a web font and used it here, if you want to see it "in action:" [https://www.obsessivefacts.com/memespeech](https://www.obsessivefacts.com/memespeech)

<comment><USER21> Unfortunately, development of the DejaVu fonts stalled years ago. There are still some typographic infelicities that could be ironed out, and its Unicode coverage basically stopped at where Unicode was in the early millennium.

<comment><USER20> Are there any good free/libre alternatives?

<comment><USER21> One of the reasons that DejaVu's development stalled is because Google launched the Noto Fonts project, which is free/libre (SIL Open Font License) and quickly outdid DejaVu in Unicode coverage.

</comment></comment></comment></comment><comment><USER22> This was an interesting read, thanks.

I can see Times New Roman being the choice of no choice - when you don't think about it, you get that.

Reading this inspired me to think that I should search for an article like, "best fonts for people who don't know anything except Google Fonts" (I searched Google, wasn't very illuminating).

I don't know much more than Comic Sans bad, Helvetica good, Times New Roman meh. But, I'm learning.

<comment><USER23> Besides the practicaltypography website, reading Thinking with Type from Ellen Lupton was in my case a short, easy, and educative introduction to typography.

</comment></comment><comment><USER24> For long-form text, my eyes are now persuaded that only TeX Gyre Pagella and very close relatives -- Palatino, Palladio -- will do.

Luckily I can usually arrange for that.

<comment><USER25> I used to share that thought, and I have a font that hangs around called Modded Palatinx that contains a few improvements from the days when it was more important to me that my system be right, than that it be compatible. But nowadays, it looks a bit weak compared to other serifs - more of an acknowledgement of serifs without their meat. It's possible that hi res screens has made me think differently. I'm not sure.

(But in any case, the standard Computer Modern Roman is not my cup of tea. I like more rounded fonts, but its serifs are too strong and dominate the shape.)

</comment></comment><comment><USER26> To me this conversation is more about popular opinions in general and how many of them persist as a result of ubiquity over any sort of merit

Times Roman is just another example of the defaults becoming the standard and we've all been trained to know the defaults serve hardly anyone yet we keep hammering away at them relentlessly as if they'll give us anything but default outcomes

<comment><USER27> I love every article that comes up on HN/reddit about typography and fonts because the inevitable onslaught of "I find X unreadable and Y delightful because of Z" gives me new fonts to try.

There is some objectiveness to this subject but damned little and 99% of the comments are opinion. As a developer of many years, I've learned to just skip over any post that uses any form of the 'readability' adjective. It's totally subjective, and the poster more often than not will have a religious fervor about their opinion.

<comment><USER26> Strong opinions held loosely.

For a lot of us fonts were a key selling point of early computing and there's a story about Steve Jobs taking in design courses in fonts as an inspiration for the design of the Mac operating system.

The whole concept of fonts on the machine is another example of the message in the new medium essentially encapsulating the old.

Fonts are an important tradition going back to the printing press and we are rightfully protective of them.

</comment></comment></comment><comment><USER28> I stumbled upon this article on readability recently [1]. It mentioned an interesting "rule" about what the optimal typeface width is for readability.

Apparently the "rule" is that the lowercase alphabet should take up about 13 em of space.

From this image [2], you can see that Nimbus Roman No9 (which is a Times New Roman clone) is a little bit narrower than that. It would be interesting to see what the lowercase alphabet width is of the fonts proposed in the OP. Especially since the author noted that one of the criticisms of Times New Roman is that it's "too narrow".

[1] [https://hstuart.dk/2008/02/13/readability/](https://hstuart.dk/2008/02/13/readability/)

[2] [https://hstuart.dk/img/2008-02-13-widths.png](https://hstuart.dk/img/2008-02-13-widths.png)

</comment><comment><USER29> I'm not sure I want to take typography advice from a website that doesn't even underline its links.

</comment><comment><USER30> In addition to appearance, there are of course potentially other constraining factors in font choice, depending on your use case.

For instance, I need a good 'editor' font which is both monospace _and_ supports combining diacritics well, for writing papers in LaTeX in Emacs.

And I need good 'display' fonts for the PDF output of those LaTeX documents, which also of course have to support a wide range of combining diacritics well.

For both use cases, there is a surprisingly small range of choices given the full set of constraints.

[Details here: [https://babbagefiles.xyz/beautiful-and-free- typefaces/](https://babbagefiles.xyz/beautiful-and-free-typefaces/) ]

</comment><comment><USER31> I found a really good new font recently which I'm going to be using in place of Baskerville and Times New Roman, my two go-to serif fonts. It's called Literata[1], and it (to me at least) conveys this really nice professional, formal look, which approximates what I feel when I open a printed book, but on the screen. There's something to it that's hard to describe that I really like (also the italics is very good imo).

[1]: [https://fonts.google.com/specimen/Literata?query=liter](https://fonts.google.com/specimen/Literata?query=liter)

</comment><comment><USER32> Fitzcarraldo makes Times New Roman sing. It's fine if you give attention to other aspects of typography.

[https://fitzcarraldoeditions.com](https://fitzcarraldoeditions.com)

</comment><comment><USER33> First, as a type nerd, I don't agree that Times is a bad font or that it signals "apathy." When I see nice kerning, judicious leading and tracking in a book design or webpage using a Times font - particularly LaTeX documents using TeX Gyre Termes - I'm generally very pleased.

Second, Plantin is not a "Times alternative," it is a variation on Bembo. Bembo is the opposite of Times ... it is e x p a n s i v e. It's like suggesting black as an alternative to white.

Third, I think the best alternative is actually NYT Imperial.

<comment><USER34> > Plantin is not a "Times alternative," it is a variation on Bembo.

Plantin was released about 15 years before Bembo.

<comment><USER33> I stand corrected. Let me rather say that Plantin shares a lot more with (say) Bembo than it does with Times, and I don't see why either would be a times "alternative".

</comment></comment></comment><comment><USER35> >When Times New Roman appears in a book, document, or advertisement, it connotes apathy. It says, "I submitted to the font of least resistance." Times New Roman is not a font choice so much as the absence of a font choice, like the blackness of deep space is not a color.

The author never considers the fact that a writer may simply like the way Times New Roman looks. There's nothing wrong with liking things that are popular or the default choice.

</comment><comment><USER36> I grew up with Times New Roman as the default font in MS Word. It's not the default any longer but I tend to switch to it _precisely because_ it is the font that symbolizes least resistance. "To look at Times New Roman is to gaze into the void" is often exactly the statement I want to make with my presentation, similar to how I can romanticize the typewriter and _not_ having a choice with font and layout.

</comment><comment><USER37> I really can't tell between a good font and a bad one. I have no idea how to develop a sense for good typography despite recognising it's importance.

<comment><USER27> This may be the most honest post in this thread. Bravo. (I'm with you; I know what I like and don't pretend my opinion is any more than that.)

Look how many posts here use emotionally charged words like "unreadable", "love", "hate", "loathe", "abomination", etc.

</comment></comment><comment><USER38> I don't disagree with this from a design point of view (I'm not a designer), but I can't stand the modern web thing of "I'm using a fancy custom font, so you'll see website load and then flash over to the correct font after a second or two". In an attempt to use a slick font we've made things look really janky. But I guess it's not the designer's FOUT...

</comment><comment><USER39> Reports we did in high school were supposed to be submitted in Times, but I hated it for the same reason of it just being the default. I always used Garamond instead. I don't expect many of the teachers knew or cared about the difference, but it made me feel a whole lot better. I was such a rebel...

</comment><comment><USER2> In a related vein, I'm curious to HN's preferences. For electronic reading, do you prefer serif or sans-serif fonts?

<comment> mark-r I prefer sans serif on a typical resolution PC monitor. I might prefer serif on a high-DPI but only my phone qualifies, and I don't do much reading on that.

</comment></comment><comment><USER40> I really like Nature's new font, Harding. But I don't think it's even commercially available.

</comment><comment><USER41> I personally dislike all Serif fonts, but TNR most of all. Too much Windows, probably (I also loathe Arial)

<comment> mark-r I too hate TNR, but mostly just because I think it's ugly and too small. Georgia makes a surprising alternative for Windows users - it's the same style but the details are much better thought out.

</comment></comment><comment><USER42> My favorite is "Linux Libertine O". My desktop browser is set to use it for serif, sans serif, and all page-specified fonts except mono (which is Inconsolata).

Firefox on Android refuses to use the fonts I have designated in about:config, so HN remains depressingly sans.

</comment><comment><USER43> So funny, I was just helping my 20 year old with a page layout in which she had used TNR. I said, "We need to select ANYTHING but Times New Roman." Article forwarded. ;)

</comment><comment><USER44> > " In 1984, Apple licensed Times Roman for the Macintosh; in 1992, Microsoft > licensed Times New Roman for Windows."

Holy frig, Monotype vs. Linotype flamewar anyone?

</comment><comment><USER45> Worst thing for me in TNR: rn looks like m. Learned that the funny way in a lecture I gave about Apache Maven (with its pom.xml).</comment>


Liquid blood found inside a prehistoric 42,000 year old foal - bra-ket http://siberiantimes.com/science/casestudy/news/unique-in-palaeontology-liquid-blood-found-inside-a-prehistoric-42000-year-old-foal/ <comment><AUTHOR> Off-topic-ish but had to look it up because it caught my eye - the Batagai depression[0] (pictured in article) looks quite beautiful and surreal. Almost like an alien ship or huge manta ray landed there (or both!)

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

<comment><USER2> Reading it's kinda scary out of control feedback loop. Like a permafrost ulcer.

</comment></comment><comment><USER3> They did a similar feat with a mammoth, which they caught on film. See the documentary "Genesis 2.0"

The mammoth DNA was not really good enough to successfully clone it so far, let's see how good this DNA is. They are certainly better prepared now</comment>


What is Science? (For Dummies) - <AUTHOR> http://www.whattofix.com/blog/archives/2011/08/what-is-science.php

<comment><USER2> I think you can simplify science to this: observe, theorize. Repeat these two steps over and over again, refining your theory (or improving your statistical bounds) based on observations.

Note that there is no "end" state. Theories get better, but they don't get perfect.

<comment><AUTHOR> Falsifiability is critical, as is the provisional nature of inductive reasoning. So I can't simplify as far as you would.

But you could probably simplify from this article, no doubt. I think the trick would be to do so in a way that kept the "gotchas" mentioned in the notes.

<comment><USER2> The reason I explain it like I do is that "observation" and "theory" are the core elements; everything else (all the notes and gotchas) are constraints, requirements, or clarifications of those two elements.

For example, falsifiability is a constraint on what qualifies as an allowable scientific theory. Recognizing that theories are probabilistic leads to the understanding that they remain provisional (with probability never quite reaching 1). Testing a hypothesis means making observations of a particular sort and comparing them to specific predictions from the hypothesis. Making data and algorithms public is a way to ensure observations can be passed from person to person with a minimum of bias creeping in. And on and on and on...

<comment><AUTHOR> Nope. I got you. Excellent distillation.

I was just saying the purpose here was to distill enough to keep a short list, while not too much to leave out significant details. (Common mistakes)

You are absolutely right about observe and theory. If I had to take it to two words, those would the the ones.</comment></comment></comment></comment>


Ask HN: Is hacker news now responsive? - <AUTHOR> I just visited HN site from my iPhone and it looks so much better, I have not seen a notice about it but I love the new look <comment><USER2> You can leave feedback: [https://news.ycombinator.com/item?id=10489499](https://news.ycombinator.com/item?id=10489499)</comment>


Ask HN: Is it still a developer's job market? - <AUTHOR>

Over the past two or so years, the developers job market has seemed quite hot. Looking through Stackoverflow and friends, Indeed and its competitors, the Board of Labor (US) statistics, etc. it looks like the job market for developers is still very much alive with a great deal of negotiating power on the side of said developers.
Does it still feel this way on the ground? For developers: do you still feel you can change jobs easily, pick whichever one you want, negotiate your salary easily, etc.? Recuiters and businesses, does it still feel hard to find even decent developers at market rates (not below, that's ridiculous)? Do you have to offer extra perqs, signing bonuses and such?
My personal experience in the NY Metro area says absolutely yes, but I'm wondering if others are seeing the same thing (both here in NY and elsewhere in the US.) <comment><USER2> If we look at the basic economics, I think the jobs demanded is growing faster than talent supplied. Talent also takes a long time to harness and develop.

Thus, it may technically be a developer's market forever.

<comment><USER3> Agreed! This is not necessarily a bad thing.

</comment></comment><comment><USER4> I'm located in the South (New Orleans), and from a hiring perspective it seems like a bit of a buyer's market down here. When I've posted ads for developers, I've gotten a lot of replies, and I've been able to dictate contract terms pretty easily thus far. From what I've seen, there's really a firm/freelancer divide; firms are charging incredible fees and don't really move off them, but freelancers have been easier to negotiate with and get at market (or slightly below market) rates.

Frankly, I don't even talk to firms anymore. From what I've seen, their quality isn't any better, and their fees are so much higher it isn't even worth talking to them.

</comment><comment><USER3> Chicago here. Devops/Sysadmin/Developer (.Net, Ruby, Python). I've been able to name my price for the last 3 years ($130K/year+), and still get opportunities several times a week from both recruiters and businesses direct.

<comment><USER5> Contract or FTE?

<comment><USER3> FTE at the moment. Salary, full medial/dental/life insurance paid for by the company, 6 weeks paid vacation, flex time.

</comment></comment></comment><comment><USER6> I believe the developer market is the hottest we have ever seen.

A friend is working as an RoR developer at $250/hr billable and all expenses paid. They are unable to get enough developer, which is expected to run for several years.

With the economy on the fritz, there are still always professional areas in demand. Because of the many economic forces of downsizing, both Enterprise and Startup are seeking the same resources as others are laid off.

Great thoughts, cheers</comment>


Why I'm saying goodbye to Dropbox and hello to SpiderOak Hive - <AUTHOR> http://dougbelshaw.com/blog/2013/08/28/why-im-saying-goodbye-to-dropbox-and-hello-to-spideroak-hive/ <comment><USER2> This is a 2 year old article that starts out by saying the author has partly moved back to dropbox.

</comment><comment><USER3> Spider Oak has some serious issues with their syncing functionality: [https://gist.github.com/aphyr/b53faed7aed740482ddf](https://gist.github.com/aphyr/b53faed7aed740482ddf)

</comment><comment><USER4> Spiders and hives... not a tool for the insect-phobic.</comment>


AI/ML? Too much hype to ignore ¯\_(ツ)_/¯ - vladimir-malyk https://email@example.com/how-to-deal-with-machine-learning-in-the-wild-65d00fea72d8 <comment> vladimir-malyk Made a short story on how to deal with Machine Learning if you're just a Developer.

No rocket science, just a few facts.

Hope you'll like it :)

ps. even Apple features Neural Engine as a new big thing — you just can't stand apart ಠ_ಠ</comment>


Ask HN: Primer on Web Security - <AUTHOR>

What reading would you recommend to get started learning about security?  Maybe the basics about protecting your site from attacks would be good... <comment><USER2> I like Dafydd Stuttard's "The Web Application Hacker's Handbook", despite the title. Work through the examples.

A lot of people will direct you to OWASP, which is not a bad free tertiary source (owasp.org). There's lots of HOWTO stuff there. Be careful about the OWASP Top 10. You want to know what it is, but it's showing its age.

<comment><USER3> While looking at the recommendation, I noted that the book's website has a page of links to tools:

<http://portswigger.net/wahh/tools.html>

Nothing eyebrow raising, but if you're starting out, worth knowing about.

<comment><USER2> Portswigger is the author of Burp, which is _the_ industry standard web application testing tool. Almost everyone I know in the field uses it.

</comment></comment></comment><comment><USER4> Hindsightly I'd start by reading a book about internet security. The only sound thing is to start with a book, giving an overview of the matter and gather information from that point onwards. Most rational thing to do. That's my recommendation.

You wanted to protect your site from attacks: I found a pdf document on the net quite informative: "ethical hacking"(pdf). It covers packet, transport and network layer security up to "google" hacking. It is broken on [<http://www.scribd.com>], but there are several other similar guides there. And it is out there I found it via google.

There are some good documents at defcon.org as well, I read one about firewalling which was impressive.

You must go elsewhere for cgi security issues, protocols, encryption and all that.

</comment><comment><AUTHOR> Awesome, thanks for the tips everyone. So much to learn, so little time.

</comment><comment><USER5> hacker's handbook was where i started.</comment>