skysight-inc/HackerNews huggingface dataset:
For small- to mid-sized projects, I’ve always realized huge gains in simplicity by haves “Files” tables to store various assets.

It means instances in a web-farm can pull the files down when they initialize easily, it means files are automatically versioned, it provides an obvious place to put the files when they are being uploaded on the Admin panel. It means all the files are getting backed up as part of the database snapshots automatically.

Things I’ve used this for range from static HTML assets, to logos which are used to dynamically brand a page, to files that get attached to transactional emails, etc.

So yes, if you are building a massive scale system holding millions of files, sure, find a purpose-built system to store, distribute, version, and backup your files.

But for many projects I believe the files-in-database approach is dismissed too early for not being “clean” enough. But having a single source (the DB) for everything the app needs to initialize is a massive simplification. You may find it’s well worth the trade-offs. Really the only downside I ever found — at the scale I was operating at — was that it bloats the database backups.
Upvoted for that nugget, but incidentally I noticed your name before and wondered if it was a ref to Yoruba the language?
Would you be able to elaborate more on your 2nd paragraph?
Go in and stand in line? How is that convenient?

If I have to physically enter a gas station, I never return. I want my gas, and then I'm out of there.
I grew up in Poland, which experienced explosive capitalism during the 90s and with it a surge of banners, billboards and ads.

Most of them done on the cheap and in bad taste - optimised to draw attention.

Fortunately at least in some cities regulations followed and most of that clutter was removed during the first years of the XXI century.

Only bad second order effect I experienced are people employed to lure you into some places like strip clubs etc.

My take is that banners should be allowed as long as there's a style guide issued by the city which they would have to follow.

Italy is doing great in this regard - the worst I saw there were outdoor photo prints of menus which aren't nearly as bad as large posters in safety-vest yellow I saw back home.
While I can't say anything from the prospect of an interviewer, as an interviewee I am a big advocate for this style. Give someone a set of requirements, and then talk through how they would solve it. Allow for further clarification, and just talk about tech. It's a little more unstructured and less formal, but surely you'll very quickly pick up what experience they have, whether or not they've made past solutions that'll fit, what new technology they'd like to use, what technology they'd end up actually using, and there's no set right or wrong answer. The interviewer might even end up learning about something they themselves weren't aware of.

If someone could blag that while not being able to even write FizzBuzz, all I can say is well played to them.
It is a legal minefield either way; current FOSS practices are to put signs around the minefield instead of pretending that it doesn't exist.

For example, some jurisdictions don't have a way for authors to dedicate a work to the public domain and surrender all rights. Complications like that are why having explicit lawyer-vetted licenses are preferable, even if not all provisions of the license have been tested in court.
Does this mean, two people can tell each other the government is shit, but 10 people can't get together and tell their collective opinion even if it was the opposite?
I thought this would be a good idea on that super hot hamburger chain a few years ago. I then learned that short interest changes based on short demand for that stock. I was putting 120% interest per year to short the stock. Be extremely careful with shorting, Warren Buffett himself says he won't touch it.
To Fix the Climate, Tell Better Stories (2017)
And this is an example of the "Economics Platitude Fallacy".
Yes, that looks like a valid solution to me.

If you’re saying only the top 10-20% of CS grads can answer such questions then that would make sense. I’d guess I was getting a random selection of candidates.
There are a handful of SDRs that can handle 80MHz for well under $1k.
> but the CompCert compiler is a highly non-trivial example of a program verified using dependent types, and which would not really be possible using automated methods.

First of all, it wasn't really verified using dependent types; it was verified in Coq. Coq's theory is, indeed, based on dependent types, but Coq is used more like a traditional proof assistant (HOL or TLA+) than a dependently typed programming language like Agda or Idris.

Second, CompCert, while certainly non-trivial, is also about 1/5 the size of jQuery, which means it's at least one to two orders-of-magnitude away from the average business application.

> You can similarly formalize the kind of reasoning that a model checker (or any other automated method) does and then use it in your proof assistant.

Yes. In the few cases where deductive proofs are used in industry, they're often used to tie together results from model checking.
My favorite screwup- my BP station prompts with something like "BP points 500, Yes No?" What am I supposed to answer to that? I just hit No on the theory that not doing something random is better than doing it.
Theoretically there could exist filesystems that can do well on thumbnails and small files, but in practice this has never been true. Databases are typically better at this and specialized solutions can get you even farther, like over an order of magnitude barrier farther.
> if you can't speak certain words, then you can't think certain thoughts

That's the strong Sapir-Whorf hypothesis and it's not been a serious linguistic theory for nearly about a century now. It's not a concern.

You might have been thinking about the weak Sapir-Whorf hypothesis, which is about the much more reasonable idea that linguistic structure merely influences thoughts and decisions. Except that it's such an obvious no-brainer, it's hardly worth mentioning. Also it makes it quite a leap to go from there to being unable to feel your own feelings (again, instead of influencing ones feelings).

(see https://en.wikipedia.org/wiki/Linguistic_relativity )

On the other hand, speaking about being genuine: I personally believe that being PC is about being sensitive and aware of other people's feelings, to genuinely spend the effort to understand why or why not something would be offensive to people. And with understanding, you'll find that your language changes (just like it changes when you become friends with someone). That is really taking the substance over just the style.

And personally, I have found that cultivating this awareness in myself has allowed me to actually think MORE thoughts, and feel MORE feelings. Claiming it does the opposite is not helping. This is a matter of feeling comfortable with the other person's feelings, not about yourself.
Nice paper.

It is interesting to note how practical data structures have evolved over the last 20 years, since this paper was written. Balanced trees were pervasive back then and the primary workhorse in all database systems I designed or worked with. Today they are rarely used in new system designs, since the practical tradeoffs started making less and less sense over a decade ago. Balanced trees have a very high space overhead that becomes prohibitively costly as data sizes grow.

Succinct implicit tree structures are unbalanced, so in theory have higher latency variance, but they also can have a space overhead 2-3 orders of magnitude smaller. As a practical consequence, the cost of traversing a level in the tree is dramatically lower than for balanced trees. The number of levels traversed tends to be used in literature as a shorthand metric for "optimality" but it smuggles in the assumption that traversal costs are similar across algorithms in practice. Searching a nicely balanced O(logn) gigabyte metadata structure has a hard time competing with an equivalent unbalanced tree that fits the metadata entirely in L2 cache, even when the tree is very unbalanced (and the average case is much better).

I am not entirely sure when I stopped using balanced trees. I went from always using balanced trees to never using balanced trees, gradually over many years.
It gets weird when you throw Linux in the mix - open/close are extremely cheap on Linux, to the point of being free - at least used to be before Spectre and Meltdown and what not. So on Linux doing n more open/closes isn't much different than doing a single pair if n is not humongous and the program is doing other things besides just open close.
In the end, it will be the individual who makes the final decision. And we are going to decide to be comfortable now, rather than save the current state of the planet for future generations.

I am a pick-up-the-litter kind of guy, but I am not going to do without air conditioning.

Leanardo DiCaprio feels passionately about climate change, but he's not giving up his private jet flights.

Barack Obama feels strongly too, but he's not going to give up yacht vacations.

Human nature dictates the final result. Perhaps we'd better devote our energies towards ways to deal with the inevitable. Because nobody's going to voluntarily live 100 years in the past for the benefit of those 100 years in the future.
Retailers may sell data (via payment networks) to Google so the latter can use it for their advertising business, but it seems (at least to Matt Levine in the article I linked) that they can't/won't sell it to hedge funds to trade on:

> does that mean that Capital One was allowed to trade on this data for its own profit? Wouldn't that be amazing? Surely the answer is no: I assume that Capital One signed agreements with retailers (or rather, with Visa and MasterCard, which signed agreements with retailers) in which it promised not to disclose transaction data, or use it for nefarious purposes.

If you think about it this makes sense. A retailer selling material non-public information to a hedge fund which then trades on it is essentially the same as them executing trades based on the data via the fund, which is obviously insider trading.
The press is a propaganda engine. Chomsky has been saying this for decades.
At the moment Lithium batteries are cost effective for about 2-4 hours of storage, if you halve costs that would go down to 4-8 hours, but the point is that it’s very unlikely that you will ever get reductions large enough to store energy over weeks or months. Even 2 days would require costs to fall to 10% of where they are now.
I'm a gamer in 2019 and I'm using an i5 2500k processor from 2011. It works well enough for the games I run. I might upgrade if I scrounge up $700 for cpu/mb/ram.

The point I'm making is that the processor doesn't matter much for gaming. An older computer can easily outperform a new computer if it has better components where it matters for gaming and casual use (SSD and GPU)
You can always pay in gift card, gold or some other thing like bitcoin.

Also, many escorts I've seen accept credit cards and it's mostly appears on your card statement as "XYZ Entertainment".
Everything in moderation, problem is humans aren’t good at self-policing.

I never respond to instant messages instantly. Ever.

15 minutes later when I do respond in 80% of times the issue or question has been solved. Soon the people who keep pinging me all the time cuz they want to save 10 minutes googling stop pinging me. It’s quicker for them to do it themselves.

Slack is very helpful as a means to discover previous conversations and insights, for companies in multiple time zones and remote workers.

Channels for me are ignorable shared inboxes of CC-all email chains where I only pay attention if someone calls me out or if I’m looking for something.

Slack’s integrations to other services can be very helpful as you don’t need to go digging somewhere to get a quick overview of how some other app is performing or the status of some ticket.

It’s a tool. If you let it dominate your life it’ll harm you for sure and sometimes it can be hard to recognise when a ha it is developing and it’s having a negative effect.
A really good overview of the field of CS is _Great Principles of Computing_ by Peter Denning and Craig Martell, 2015. It's a good book for CS students who want overviews of less familiar areas of computer science, and for anyone (in other areas) who want to know more about computation.

Another is Subrata Dasgupta's _Computer Science: A Very Short Introduction_, a 2016 addition to Oxford's Very Short Introduction series. It has over five pages of further references to more detailed and specialized works.
> That's not the "stable protocol that's been around for decades" situation that FTP is in.

That is literally the point I was making when I said, "if they're being actively maintained there's always the possibility of introducing new bugs."

Moreover, just because a library had its last fix a decade (or whatever) ago is no guarantee that unfixed bugs do not lie undiscovered in it.
This article also directly aligns with my experiences. Once a team has sunk its teeth into Slack (or a similar real-time tool), it’s extremely painful to remove it.
That almost made me laugh. IMHO carbon sequestration isn't a good solution for anything. But those who think it is should be fine with sequestering plastic in a landfill.
> was that it bloats the database backups.

Having a deduplicating backup solution might help with that. Simplest way to do that (in terms of ease-of-implementation), would be to keep backups on a ZFS or btrfs filesystem. Note that (AFAIK) with btrfs, deduplication must be triggered manually, so you'd need to run `btrfs filesystem defragment` on the backups to take advantage of it.
How does that 1.89% work with mortgages?

Do I pay that tax on the amount I have currently returned to the bank or on the full property?
In the past I've had huge speedups by moving simple single-table databases that had grown a bit (e.g., time series data) from sqlite to postgres. Insert performance is also quite bad forcing you to write applications with extra caching layers to be able to do a bunch of inserts at once. Sqlite is great for many applications but it's speed is somewhat oversold. I really wish the postgres engine was embeddable into applications easily.
Agreed. We used to think similar things about email, Slack has just amplified the problem. One place that I do think Slack is to blame is not providing a way to filter noise. Because they seem to think that Slack communications are business oriented, they've done little to allow an individual to add ignore rules, like one could do with an IRC client. The reality is that even most professional Slack services I've used collect significant noise (I just joined a Slack and was added to more than a dozen channel, each seeming to have their own bots) after just a short amount of time. (Try and find one without a gif bot.)

Synchronous chat is spam and we need to be better about understanding the productivity hit that cokes with always-on comms where we expect instant response.
More or less that.

My Chinese friends discuss the politics openly, sometimes even on WeChat. As long as you don't do it over group chats or in public no one would bother you.

There was just this funny thing that the famous llama pic was automatically filtered even in 1-1 chats.
This will shift any new gas plants away from combined cycle toward simple cycle. Minimizing capital cost will be more important. Steam turbines may be on their way to the technology museum.
I buy recycled 3d printing filament and use it for printing stuff I used around my house. The recycled plastic so far seems strong enough for my purpose.
Flawed logic. The idea with asynchronous communication such as e-mail, chat and such is that you CAN be slow in replying, if you chose to. Establish that culture, and this is not a problem.

Most of these articles against chat or digital communication base their criticism on the fact that people can't focus, can't plan, can't decide what to do. With that assumption or decision nothing will work.

Figure out how to focus instead, figure out how much chunk of time you as an individual need to perform a task and make progress. Then check e-mail, Slack, phone etc in between ... and it will be just fine. fud!
All of what esotericn said, plus oil and by extension plastic is a limited resource, it makes sense to reuse it, so yes I would say it is superior, plastic is equivalent to plastic. Co2, heat and a bit of residue, not so much.

I know human nature though. Once that shiny expensive incinerator is built, people will want to use it, for everything, and they'll rebrand it 'smart' incinerating so they can tell themselves its the 'good' solution, and pretty soon we're using more plastic than before, and releasing more co2 than before, so my support (which I do have) is very measured.
I must be missing something. Modern data science workloads involve fanning out data and code across dozens to hundreds of nodes.

The bottlenecks, in order, are: inter-node comms, gpu/compute, on-disk shuffling, serialisation, pipeline starvation, and finally the runtime.

Why worry about optimising the very top of the perf pyramid which will make the least difference? Why worry if you spent 1ms pushing data to numpy when that data just spent 2500ms on the wire? And why are you even pushing from python runtime to numpy instead of using arrow?
What if you create something that is optimized for performance without offering the full SQL language? Just a container to store small files with padding to avoid the expensive open/close calls.
What if your business is neither a failure nor a success?
For the most part, I only use Windows VMs when I need Excel for >50MB spreadsheets. Or to test Windows VPN clients.

Your analysis strikes me as implausible. Few adversaries could see all of those parameters. For example, it's typically Tor through a nested VPN chain. So it'd be nontrivial for a local observer to know that I'm using Tor. Or for a remote observer to know that I'm using VPNs.

And seriously, why would I use my meatspace timezone? But actually, I do sometimes, just to be more random. Also, my sleep schedule is highly irregular, as one can tell from my HN posting history.
My Utrecht house is marked as 1888 but the facade has an ornament that says 1898. Very close still.
Even so. It would be a flaw to not consider that at some point in time a women may put full force on the heel. Thus the example is valid.

Also I have seen high hees being abused by walking mostly on the heel.
> A WISP, at scale (50 users or more), should have a cost per user of about $10/m. You can oversell bandwidth considerably, more than most people realize.

I run a small non-profit WISP (with price per user about $15/m), and the cost of bandwidth is not a significant part of the budget (about 15 %). Biggest part of the budget (about 60 %) is hardware and work for development and repairs of the network.

> since it's wireless your costs per user are actually rather low, given a good tower.

I would say that wireless has pretty high cost per user. To have good coverage and not overloaded APs, you target ~5 users per AP and 1-3 APs per node.
This might be the answer on how to make file-heavy tools like npm/yarn work adequately on windows...
I remember when AT&T made arguments against splitting up Ma Bell because the new system wouldn't have "five 9s" reliability.

It turns out the optimal reliability/cost tradeoff, from the consumers' points of view, isn't necessarily what the entrenched incumbent producers want to provide.
Define “need”. If five billion people want to live as Americans live now, and Americans will all have flying cars (1), go on holiday in space stations, etc, and we want to put back the carbon of a few cubic miles of oil in the ground each year to fight climate change, what we “need” will be quite different from what we think it is now.

If solar cells become essentially free, we _could_ get there.

Also ”ground based installation is really cheap.” doesn’t matter. Putting cells in roads _may_ become even cheaper, even though the cells themselves would produce a lot less power per square meter.

”it’s an extremely difficult problem, but solving it without massive reduction in panel costs is kind of pointless.”

I didn’t claim it was easy or that it was efficient now. I just pointed out that reduction in panel costs can lead to a situation where using them in suboptimal settings can be economically viable, if installation costs are lower for that suboptimal setup.

And massive reduction in panel price has been the norm for decades. https://en.wikipedia.org/wiki/Swanson%27s_law:

”Swanson's law is the observation that the price of solar photovoltaic modules tends to drop 20 percent for every doubling of cumulative shipped volume. At present rates, costs go down 75% about every 10 years.”

(1) of course, if Americans start having flying cars, road surfaces may become a thing of the past.
> One major benefit that proof assistants have over other formal methods is that they can be used to prove essentially arbitrary properties of programs, which is not true of any automated methods.

It is true of model checkers.

> There are plenty of other examples, like the seL4 microkernel.

Yep, there are plenty of such examples, I'd say 2 or 4, and they're all less than 10KLOC, i.e. 1/5 of jQuery.

> I also do not understand what bearing computational complexity results have on humans manually formalizing their informal intuitions about program correctness in a proof assistant.

Because humans can't outperform Turing machines.

> Humans do not work on arbitrary problems where they have no intuition at all about why a program is correct, hence referring to worst-case computational complexity results does not make much sense here.

For one, the results aren't just worst-case. One of the most important ones is on parameterized complexity. Second, problems that are very hard in the worst case have rarely been proven easy in the "real world" case, unless the real world case was somehow categorized in a neat subset, and this isn't the case here. It's possible that we're usually far from the worst case, but if so, automated methods could also exploit that, and still be better than manual ones in most cases.

> In fact, if you have no intuition about why a program works, then how did you manage to write it in the first place? You surely did not write random garbage in the hopes that you would get a working program.

This is a common assumption, but a wrong one: https://pron.github.io/posts/people-dont-write-programs

> In this sense, proof assistants subsume all other formal methods, since they can be "scripted" to include them.

The same can be said about all other formal methods. Indeed, various sound static analysis tools like Frama-C or optionally fall back to manual proofs when needed. In the end, though, in practice deductive proofs don't scale as well as other methods. It's a good tool to have in your toolbox, but you don't want it as your default. Your model checker could just as easily ask for help from a proof assistant. So it's not the case that any one method subsumes all others, but you could combine them. Which is why dependent types are problematic, as they make these combinations harder than, say, contract systems, that are flexible in the choice of verification method.

> You may be thinking of a programming style where the type of a program encodes all the properties you are interested in, but you can avoid this style where necessary, by separating your program and its correctness proof.

True, but that's not the style discussed here, of dependent Haskell or Idris.