skysight-inc/HackerNews huggingface dataset:
Oh I absolutely agree and even when a DB is properly configured with references all cleared defined and constrained it's absolutely a good UX thing to pre-check as much as possible.

But, beyond that, it is quite possible to remove FK checks and still have strong guarantees about data integrity. It is stupidly expensive and unless you have a few billion in the bank there is absolutely no reason to even consider it, but if you're dealing with data volumes like GitHub then it's conceivable that all the other salves for enforcing data integrity fall short. In that case there are ways to approach removing FKs, but, when you do so, you're not (logically speaking) giving up the data-integrity from FKs, you are replacing FKs as a tool for data-integrity with another tool for data-integrity (one that will probably be very similar to FKs) - under this guise DB FKs can stop making sense (though also having any sort of RDBMS engine likely also stops making sense as you're essentially adopting the functional responsibility for being an RDBMS into the primary application).
The "Shorthand Sue Teaches Teeline" YouTube series take maybe 20 mins together and give a very good basic understanding.

A decent web intro: http://realerthinks.com/teeline-for-the-curious-a-story-of-l...

A text on some general rules (intermediate level?): http://natashacspencer.blogspot.com/2010/10/introduction-to-...

A searchable dictionary, good as a reference: http://realerthinks.com/a-searchable-teeline-dictionary/

I also bought the "The Teeline Gold Course Bk". It's good.

Another one which I bought (used for a few dollars) but not yet opened is "Teeline Gold Word List".

HTH
Nothing Apple is doing prevents people from writing good native apps for any of the other platforms. They are just forcing developers to meet a miniscule quality cut off to be in the App Store.
Would if I could. Still not theft. ¯\_(ツ)_/¯
The Real Moral Dilemma of Self-Driving Cars
Well there we go.

So while postgres makes for a pretty awesome database, and a pretty good queueing system, some folks may be seriously impacted by the max number of connections
That has got to be the biggest strawman I've ever seen in my whole life!
All of these are mostly issues with the database engine implementation:

1. "FKs are in your way to shard your database." => not a problem for distributed databases that can query and duplicate data across shards/servers; alternatively, if the referenced data just isn't there in the database, a foreign key is not usable by definition

2. "FKs are a performance impact" => the app either just got the foreign key value from the database, so it should be cached in memory in a properly implemented database engine, or otherwise, the application relies on the database checking so you need the foreign key for correctness

3. "FKs don't work well with online schema migrations." => not a problem with database engines that properly support online schema changes without locking, downtime or table renaming hacks
Heat cogeneration doesn't really improve efficiency of the methane generation process itself. Cogeneration refers to using the waste heat of a thermal plant to assist in some other facility. Using the waste heat of a gas plant to heat water in desalination is an example of cogeneration. So it does improve overall energy efficiency, but it assumes that there's a convenient source of heat next door. Wind and photovoltaics don't generate any significant amount of heat though, so there's no opportunity for cogeneration.
The NYTimes just hates history. It's apparent in all of their reporting and opinion articles.

Probably just needed to fill the column and she is mad they had to study the Mona Lisa in college for their fine arts credit.
These complaints may be valid, though for me, the upsides of Go makes it worth it, depending on what you want to do of course.

Arrays/slices/maps/pointers: Go abstracts over the inherent safety-limitations in ways that do not make much sense. They may make sense from a blend of safety- and performance perspective.

Index usage: Go allows to loop over elements instead of indexes and also provides the correct range of indexes in for-loops. More functional expressions would mystify execution, while Go is more WYSIWYG of languages.

Shadowing: Yes bad, but also bad to have many layers of deep scopes for this to become problematic. Best practices of Error-variable has problems.

Initialization in if/switch: Go being a niche lower level ("system") language, it's closer to the actual physical layer. A good idea not to do too much in the same expression/line, making it easier to read and making correct assumptions.
Hey, you're totally right, I misread the article, conflated electron with phonegap (have never worked with electron and haven't touched iOS in years), thought apple was pushing out some cross platform mobile apps. Totally off-base comment I'm embarassed about and would love to remove.

I do maintain that the parent's poster takes joy in deliberately ignoring that apple obviously has incentives around building their ecosystem, but yeah, that was dumb.
> Safari is still the best mobile browser available...

This is nonsense. Safari is the only mobile browser available on iOS, so if you're sorting by mobile available per platform, then of course it's the "best [of one]". If Chrome and Firefox had the opportunity to bring their platform fully to market on iOS, there would be some real competition there... They could still do what Android does with displaying any in-app web rendering like Android System WebView, while allowing users the option to use the same browser and experience they're used to on their desktops.
I'm not sure what data structure/language environment you mean, but in programming languages, trees are normally represented using pointers (typically from the parent to the child and back).

All of this literally goes back to hierarchical databases which were mostly replaces by relational databases for what appear to be mainly performance and implementation reasons.
Do you think Bezos' investments earn more than 6% per year?

If so, then his wealth would not decline with a 6% wealth tax.
Life is becoming one long job interview and it's only going to get worse as more data is collected.
I've seen more bugs due to the cognitive overhead of reduce than writing a for loop. And then you don't have to wonder "Hmm is this a lazy stream? Concurrent?" You just look at the code, and know.

(And I almost did a spittake thinking about C++ being more productive than Go.)
There's a balance with both expressiveness and type systems. Too little (PHP, JavaScript) is suboptimal, and too much (Scala, Haskell, Rust) is also suboptimal. Please note it depends very much on what you're building, as to where that tradeoff lies. For some things I use Rust. For others I use JavaScript. I don't touch PHP, Java, Scala, or Haskell for anything in the world - you can't practically pay me enough to want to work with them. For me, for web applications and server side software, Go is in the sweet spot more than any other language I've tried, and I've tried almost 30 by now.

Go is not always elegant, it's not always the right tool, and sometimes frustrating - but it's incredibly good at enabling better productivity than the alternatives in this niche. Sample size of one, this is my opinion, and other disclaimers apply.
As someone getting into a PWA for an easy mobile app, any issues I might need to be aware of with iOS PWAs?
I really enjoyed mtg as a kid but played a few games recently and discovered I don’t really like it. I feel the use of mana makes the game slow and clunky. Moreover, a deck of 60 cards is a lot. My favorite card game nowadays is Gwent. With the small deck size and single card mulligans you can mitigate almost all bad luck and chance and design a really tight and cohesive deck. Also I love the 3 round format, makes the game very interesting.

Mtg at this point just feels dated and I think there’s better ccgs around. Net runner is also great and imo, deeper than mtg. The asymmetrical nature of it also makes things very interesting and deep.
> Certain people or organizations, due to their size (organizations) or influence (people/organizations) become some sort of judges in moral topics and the problem here is that they usually have backgrounds in other stuff, have not been elected by anyone (often times they just start screaming louder, and people follow) and do not apply any form of fairness to the accused.

Indeed. And how far does this go? What if banks, or grocery stores, start denying someone services because they were the subject of social opprobrium? A conference is not quite the same thing, but it is still a means by which some people are able to derive their livelihoods.
I can’t think of a single non game iOS only app that makes enough revenue for Apple to care about. Most of the top grossing apps are games that wouldn’t be using a Javascript framework and are probably using a cross platform technology anyway.

If Apple wants to have exclusive content on their platform, their not going to worry about small time developers who can only write iOS apps, they are going to fund the development themselves - see Apple Arcade.

They care much more about the big name developers like Adobe and Microsoft bringing their apps to iPads - even if they don’t see one dime of revenue from the subscriptions to encourage people to buy top of the line high margin iPad Pros with all of the accessories.
I can't tell if your comment is pro/anti physical books lol.
When something is true, saying "it can't be true" doesn't make it not true. This is happening to existing nuclear plants in the US. Not plans for plants, not plants in construction.

This caught my eye when a nuclear plant in Iowa (near friends, including one who retired from working there) got slated for shutdown, over a decade before end-of-life. They'd lost a key industrial customer that consumed 30% of the plant's output to much cheaper wind/gas. At that point, operating costs went into the red. The plant was no longer generating the revenue to pay off its own debt. It was a purely economic decision.

And yes, the wind and gas that ate its lunch are also capital expenditures, amortized over time. But they're still much cheaper.
This is false. Amazon doesn't have the same rules as most companies, they have cities paying them bribes to put a headquarters in them.
Must be a cranial view (toward the top of the head from the bottom).
I spent a year teaching English in China and most of the teachers were early 20-somethings that were there to party and have a good time..and pay for their lifestyle teaching.

I honestly wouldn't want them teaching my kids. I don't think many would pass a drug test.
Carbon neutrality is a necessity, as is population reduction. I am not advocating for one over the other. Either alone will not work, not short term certainly not long term.
Cross-platform apps isn't really the point though. It's about openness. Native Android, for example, is Java. Java tools are plentiful and open source. Android dev tools work on Macs, Windows, Linux. Google also invests heavily in Chrome allowing for robust apps that don't require an app install at all.

Compare that to Apple who rule the App Store with an iron fist. The don't allow native Chrome at all requiring instead that Google deploy a reskinned Safari. You can't deploy an app to a phone that you own unless you also own a Mac workstation running OS X and pay Apple $100/year for the privilege of using the very expensive hardware you bought from them. They built Swift, they built Xcode. It's total vertical integration and it's all managed at the pleasure of their bottom line.
The outflow is from the earth's crust at the bottom of the ocean. Sure, it doesn't get replaced. But there's enough uranium to last on the order of billions of years. By this logic, solar power isn't renewable either because the hydrogen in the sun doesn't get replaced.
> The only scenario in which the size of a company has a bearing on which laws apply to them is if the business is a monopoly.

I'm sorry but this is not true. There are tons of labor laws, just to give one example, that depend on how many employees a company has.
Language designers: Design a language to not use generics.

timothycrosley: It doesn't do generics!!! Aaargh!!
And yet a quick google search shows that there are indeed gendered differences in how much blood flows to the brain, although not linked to athletic performance.

"... women's brains seem to be more active than men's brains, in terms of blood flow ... [w]hile there was more blood flow in women's brains overall, male brains had more blood flow in certain areas, including the visual and coordination centres of the brain." [0]

> It would not be unreasonable to assume that the ability to get blood to the brain of men is significantly reduced compared with women because of its constant redirection to inflating the penis.

I'm pretty sure that is a real fact, or very close to one. The blood in the penis had to come from somewhere, and could easily be causing reduced brain functionality.

[0] https://www.sciencealert.com/women-s-brains-are-more-active-...
The more pertinent reason to scale horizontally rather than vertically is that horizontal scaling without downtime is easier (if you've nailed down / automated node deployment, which is a big "if", albeit one made easier if you're using any of the big PaaS/IaaS providers):

With horizontal scaling:

1. Spin up the new node(s)

2. ???

3. Profit

With vertical scaling:

1. Spin down the node¹ (hopefully you've got more than one!)

2. Resize it

3. Spin the node back up

4. GOTO 1 unless all nodes are scaled up

5. ???

6. Profit

OR (somewhat simpler, but at this point you might as well just horizontally scale):

1. Spin up the replacement node(s)

2. Spin down the old node(s)

3. ???

4. Profit

That is: vertical scaling has more steps, even when done in a way similar to horizontal scaling. Sometimes it's necessary to scale vertically instead of horizontally, though (but in that case you might as well just horizontally scale with bigger nodes).

----

¹ It's theoretically possible to add and remove resources to/from a running system; some mainframes offer it as a feature (Multics programmers in particular were known to yank hardware out of production systems during off-hours and plug 'em into dev systems for development/testing, then plug 'em back into production for on-hours, all without bringing down the system), and Linux supports hot-adding and hot-removing CPU and RAM provided the underlying hardware supports it (Windows supports hot-adding as of Windows Server 2008 Datacenter Edition, but not hot-removing, last I checked). However, I'm not aware of any PaaS/IaaS providers offering compute instances with this capability; EC2 instances definitely don't support it, last I checked (switching from one instance type to another absolutely requires stopping and restarting EBS-backed instances, and instance-storage instances have to be outright imaged and then reimaged onto a new instance of the desired type).
Yeah, I'm sure he regrets it now. A lesson well learned.

Moreover, I still can't get it how one would think that "Looka" is a better brand than "Logojoy" ️
You've got your normal AWS orchestration working on top of this. If a spot instance is pre-empted AWS will automatically re-start it once the current spot price falls below your bid. One of the parameters you pass to the spot instance is a shell script to run when the instance starts, so that shell script just launches your worker process and in your worker process's main() it checks for the existence of previous WORKING shards with the same machine ID and marks them back as PENDING. You can (and probably want to) also have a retry count that gets incremented so that if there's a problem with the data that results in a permanent failure, you give up, mark it as ERROR (logging the offending shard, record, and error message if possible), and move on to the next shard.

For exceptions, crashes, and other unexpected errors, you just let it crash. In the shell script that starts the worker process, you wrap it in "while (1) { ... }", so it's just permanently restarting. Then the aforementioned retry check in main() handles the previous shard just as if the worker had been pre-empted or finished normally.

There are a variety of low-tech ways to detect when the job as a whole has finished, ranging from manually shutting down the cluster to writing a small cronjob that counts PENDING/WORKING shards and shuts down the cluster if there are none to having your workers return a different exit status if there's no more work to do and shutting down the box if so. A neat side effect of this is that you get an easy status report of exactly which machine is working on which shard and how long you have to go through "SELECT * FROM work_queue". Another neat side effect is that you can view partial results in the DB before the job as a whole completes, something you can't do with MapReduce, and potentially adjust your code and restart the job if you're getting bad data.
I think it's great that Apple chose not to pick favourites and treat the Electron the same as any other application platform. While the release of the latest version of macOS was rushed for many developers and came with some bugs, private APIs should not be used regardless. Ask the Electron people to fix this problem instead of complaining about how Apple is trying to bully web developers.

Or, if you want to build a decent application, make a native one, or make a website. Don't do this weird half-desktop, half-native just because it's easy for you; think about your customers instead.
Non-paywall link: http://archive.is/0v5YA
I like the elegance and simplicity of two-phase commits. I didn't understand the criticism in the article; maybe it's something specific to CockroachDB. In my experience with two-phase commits, if the system crashes before a transaction is fully processed and committed, it should be fully reprocessed (from scratch) once the server restarts.

In one of my open source projects with RethinkDB (which doesn't natively support atomic transactions), I implemented a distributed 'parallel' two-phase commit mechanism by assigning each pending record a shard key (an integer derived from a hash of the record id); then worker servers would decide which subset/range of DB records to process/commit based on a hash of their own server id (which would tell them which range of shard keys/records they were responsible for). Only when a record had been fully processed, its status would be updated as committed by writing a 'settled' flag on that record.

Whenever a server failed and restarted, it would pick up processing from the last successful commit. If a server did not restart, the worker count would be updated and remaining workers would redistribute the partitions among themselves based on the shard keys of the records.
>By Gerry Smith

I'm really suppressing the urge to crack a Rick and Morty joke because this article is fear mongering. The quote from Reed Hastings even demonstrates Netflix acknowledges this issue is one they are likely not going to tackle.
To each their own, but company retreats are a gift that employees give to their employer, in the form of time. Keeping it light and encouraging team building makes sense. Hackathons seem aggressive, IMHO.

> Want to be part of our Insent family?

Also -> https://webcache.googleusercontent.com/search?q=cache:Y6Au8W...
Not only doesn’t Apple stop people from using cross platform tools, Microsoft has said that they work closely with Apple on Xamarin and we know that Apple works with the game engine makers to make sure they support Metal.
An alternative is using a nested set https://en.m.wikipedia.org/wiki/Nested_set_model
I get that it's more potent, i wrote that in my comment. But if composting aerobically releases 50 times more CO2 than composting anaerobically does methane, then composting anaerobically is the better option.
Superb Prefab Homes That You Can Buy on Amazon
Bullshit. Even with the most perfect developers and perfect system, letting application code enforce constraints will lead to data corruption period. Some application will crash or something and leave dangling garbage behind and boom you are fucked.

Would you ever trust that form data is valid because the JavaScript front end “validated” it? No! Why the hell are you going to trust that everything sent to the database is valid? No constraints like FK’s is exactly like not validating input because “the JavaScript layer got it”.

It is out of ignorance that people argue otherwise, sorry. Too many people don’t understand relational database...
Lord knows we have very little privacy left anyway, but do you really want your location known at every minute of every day?

Whether you were alone in that bedroom with that pretty little blonde from Accounting for twenty seven and a half minutes between 1:04 PM and 1:32 PM?
This is an article written by someone who’s never actually worked on a safety critical system. Such systems have an exhaustive threat model with likelihood estimates developed and verified well before a single line of code is written.
'and in most languages these have a performance penalty' - pretty sure this is due to either bad implementation or because of additional guarantees they provide. Because fundamentally these constructs can be rewritten to be loops by the compiler, except where you're wanting to violate the guarantees they enforce (i.e., maybe you want to mutate every item in the array, rather than treating it as immutable; these won't do that). For those few situations you want to violate those guarantees, you wouldn't reach for these higher order functions. There's not really any reason not to include them except for language design ethos.
For me, free will is the feeling and belief that if I want my body to do something I have a pretty good chance of making it do that. Additionally, I can decide to train some reflexive behavior and tailor it to be more of what I want my automatic responses to be. It's a feeling of integration between my desires and my actions that doesn't feel like it's driven from outside my body. For example, if I get a muscle twitch or spasm or a limb falls asleep and I can't move my digits then my sense of free will is lessened. When I walk, talk, etc. then the feeling is reinforced.
I was discussing a system of education that starts early and is more soft. Like having 1st graders using coloring books with nuclear power plants surrounded by beautiful skies and forests while at the same time having pictures of coal plants belching out smoke that cover everything. Later have a class where everyone uses Geiger counters to measure radioactivity in bananas and talk about how it is all around, all the time, and is part of nature. A bit of indoctrination, like all education, but could have countered the high anti-nuclear content of the general zeitgeist.
Sure, but that just comes down to preference. Some might dream of that "thousand of books" scenario. Doubt they read even half though. Maybe it comes down to being a book collector or not.
> People who need secure communication channels often do their research

That only applies to the fraction of people who know they need secure communication channels or that insecure communication channels are even a thing. The article lists references to several cases where people didn't have adequate security and it caused them real harm.

To be fair though, I'm not sure Google or Mozilla are capable of communicating the security trade-offs they're making without putting a huge amount of marketing spin on it, but we should still hold them accountable.
is the failure "i don't see cryptographers as my ideological opponents"?

ransomware existed before bitcoin; it used moneypak, western union and similar services as the payment vehicle.
Once again HN posters fail to understand the definition of a monopoly.