skysight-inc/HackerNews huggingface dataset:
They need to tighten that a bit, though. “Lexicographic” isn’t clear enough even ignoring locale dependencies.

Looking at the reference implementation, it contains

encode = encodeUtf8 . generate

So, the sorting is done before conversion to UTF-8.

Relevant line, I think is

genObject hm = "{" <> foldl' go mempty (sortOn fst (HM.toList hm)) <> "}"

So, it uses Data.String’s sort order, which seems to be to lexicographic by Unicode code point (https://stackoverflow.com/a/3126287)

⇒ implementations cannot sort the UTF-8 byte st sequences lexicographically. I think that’s a bad choice (if it was a choice and not an oversight)

I’ve never written a single line of Haskell, so corrections welcome.
JSON will easily dominate CPU usage in any modern application that uses it for its API (and is not itself something intrinsically CPU-hungry like crypto or machine learning).

We benchmarked one of our apps, written in Go, which uses JSON extensively both for the API and for internal storage, and we found that around 90% of the CPU time is spent serializing and deserializing JSON.

The JSON code itself is a tiny portion of any app, so it's one of those rare optimization cases where a small change can yield significant speed-ups for the entire app.
They have no problem snail mailing other adverts. There is also e-mail, so no excuse.
Having studied economics and married to a PhD in behavioral science, I would urge you to separately consider the academic utility of the models of “most economists” from real life. Economic theories and models have a lot of value, just not applied to anything to do with real humans.

Better said here [0]:
“Economics is plagued by the spurious exactness of mathematics. It neglects human behaviour and grovels before its paymasters in government and commerce. Its forecasting is as much use as Mystic Meg and the astrologers.”

[0] https://www.theguardian.com/commentisfree/2017/jan/06/econom...
I wrote quite a few. I wouldn't call that horrific at all.
Learn React Native in the right way
Exploring Type Annotations in Scala
Google have dedicated (no more there) language, platform, library, etc. teams that can push really huge refactoring changelists - for example if they've noticed that code had plenty of: "if (someString == null || someString.empty())" - they would replace it with something simpler.

Or if they've found some bad pattern, would pull it too. I do remember when certain java hash map was replaced, and they replaced it across. It broke some tests (that were relying on specific orders, and that was wrong) - and people quickly jumped and fixed them.

This level of coordination is great. And it's nost just, let's do it today - things are prepared in advance, days, weeks, months and years if it had to. With careful rollout plans, getting everyone aware, helping anyone to get to their goal, etc.

It's also easy to establish code style guides, and remove the bikeshedding of tabs/spaces, camel braces or not, swtich/case statement styles, etc. Once a tool has been written to reformat (either IDE, or other means), and another to check style, some semantics - then people like it or not soon get on that style and keep going. There are more important things to discuss than it.
Yes, there are some topics that are quite empty with resources sadly. However this can change with contributions and users using the website.

For example there is a map for learning Machine Learning (https://learn-anything.xyz/machine-learning) which is quite large. There are a few other maps like that in the database.

All together there are over 2,000 maps available currently but this number too will grow with contributions.
Lithium-ion and lead-acid battery technologies are very different. A lead-acid battery performs extremely well so long as power keeps flowing through it - my first car was 12 years old when written off and had its original battery, because it was driven often and kept charged.

Lithium-based batteries suffer chemical degradation of their electrodes related to time as well as charge cycles. Even an unused lithium-ion battery can die before it's ever installed in a product. The electrode damage is what causes the capacity to decline.

For the record, lead-acid batteries can suffer similar degradation due to sulphur build-up on their internal plates, but regular use keeps this at bay and a well-maintained battery will just keep working. Part of the problem is that it's nearly impossible to maintain modern batteries as they're all sealed by design.
No, _here_ is the current best guide to cryptocurrencies:

https://www.amazon.com/Attack-50-Foot-Blockchain-Contracts-e...
>The Content Trap: A Strategist's Guide to Digital Change -

I read that book and it's not bad. The main idea is that having a mindset of being protective of your content is flawed. The bigger opportunity is "network effects" like community, crowdsourcing, etc. It's the platform, not the content.

If you already agree with that, your time would be better spent reading "Modern Monopolies" because it has more tactical ideas for execution: https://www.amazon.com/Modern-Monopolies-Dominate-Century-Ec...
This is a man who makes a living by performing engineering work, just like me. We are both “Professional Engineers” and no state certified labor monopoly can change that. It’s neither moral nor legal to try, given both the US and Oregon constitutions(1). Which is why the “Professional Engineer” scammers are trying to avoid legal rulings. They should really only call themselves “State Certified Engineers”

(1) The right to self expression is so well protected in the Oregon Constitution that strippers have a right to perform with full nudity.
Ads from website owners are not new, what is new is ISPs injecting into other people's pages, this sets a new precedent. Its a fundamental principle that was violated, so saying "just block it" is like saying people in China should just use a VPN... while a valid point, its still an outrage to some people that a government/ISP would tamper/block your traffic. Not trying to equate Comcast to China by the way, just using a metaphor
What criticisms have you eliminated using this strategy? glibc does not do the things that people hate about systemd.
Natwest train their customers to be bad at security
Consider how you would estimate anything else. Say you want to retile a kitchen. Would you expect someone to just say, I could do this in a weekend? Because, that is what shows typically seem to need?

Or would you feel more comfortable asking how much they will have to actually do? For example, they would have to disconnect the fridge and move it out of the way, disconnect the oven and move it out of the way, then buy enough tile and mortar for the space, which would be X boxes, and then clean and do the work.

Benefit of this way is when you come back, if none of those tasks has been done on day two, you know it isn't likely to get done on day two.

So, try and use the same approach for programming. Don't just say "it will take 2 weeks." Instead, say, it requires updating X component, modifying Y tests, incorporating Z new dependencies, etc...

As a team, you can try and portion size estimates on each of these. But don't spend too much time on that. Experience is the secret, not perfect estimates. (That is, the more things the team has done, the better they will estimate what they can do.)
Which city? I'm moving there.
Why can't you run Debian with another init system? Some things probably won't work, but wasn't that always the case?

Sincerely asking, I never tried running a non-default init system.
Assuming Comcast adheres to their RFC[1], this injection method would only affect unsecure HTTP per general requirement R3.1.2.

[1] https://tools.ietf.org/html/rfc6108#section-3.1
First bullet point:

- No exponential notation

That's going to give you some pretty big numbers. It would be better to require exponential notation.
No mention of monero? To me that’s a glaring omission in a beginners guide.
Whitelists
Derivatives are legalized gambling. And this wasn’t manipulation, just two parties doing their fiduciary duties.
My objection is not just to the entitled hypocrisy, but also to giving leniency to young vandals with little self-awareness or understanding of how the world works. I see it as a failure of earlier education rather than something to be forgiven.
> "Look! It can be mutated! Therefore it cannot be functional!" And the response to that is, "Don't be so technical about how you define functional. Or immutable. You know it when you see it."

I think I can offer something to the discussion here, as I'm straddling the 2 camps - having a fairly intricate understanding of git (I've held training seminars at my company about it), and basic familiarity with functional (technically "persistent") data structures thanks to a long-standing interest in Clojure.

What the functional camp is talking about, when they refer to git as a "purely functional data structure", is the core of git's implementation - commits are immutable snapshots of the repository arranged in a directed acyclic graph (or a tree, if there are no merge commits), and branches are "just" movable pointers to some commit. In this view, everything other than this core model of history as a graph is extra details layered on top.

The other camp (let's call them the "git camp") looks at git in its entirety, including branches, tags, the index, the working tree, stashes, and so on, and they can't help but come to the conclusion you mentioned - "Branches are mutable references! The index is mutable! The working tree is mutable! How can git possibly be called a functional data structure?"

While this 2nd perspective is understandable and technically correct, I think it misses the point the other camp is trying to make: that the immutable commit is the "fundamental unit of git" so to speak, that we interact with everyday, and that most of git's history-manipulating commands (git commit, git commit --amend, git rebase, git merge, git cherry-pick) can be described in terms of purely-functional operations on the commit graph. Once you understand this, many complex git scenarios become easier to understand (rebase, and filter-branch, for example), so this view does have practical value. Then branches, tags, the index, stashes, etc can indeed be understood separately.

In fact, this perspective of git as a data structure is so useful, that I rarely use "git log" as it is, preferring these additional flags to view the entire graph instead:

git log --graph --all --decorate --oneline

I hope that helps, cheers!
My "quote" isn't significantly different from what was actually said, in fact hews extremely closely to it, and is designed for rhetorical purpose of making clear how small a distinction is being relied upon in order to claim the statement is something other than a request for you to buy a new modem.

Moreover there's nothing in the guidelines about "making up quotes" (which again isn't a reasonable interpretation of what that is), whereas there are actual, explicit guidelines against addressing yourself to unreasonably interpreted versions of other people's comments.
Geeks (illustrated by those of us reading HN) tend to value function over form. Unfortunately this is not the market Apple appeals to. They have successfully managed to appeal to enough people that 'thin is good' at the expense of everything else, and here we are with laptops and phones you can practically shave with.
Nothing dishonest about this. The contract and rules were clear.
Thanks, this is the healthy way of looking at it.

My hunches are based on my underlying understanding of psychology and economics.

> Consider what "there's still money to be made, I just have to sell off before the crash" looks like if lots of people believe it and act on it simultaneously.

A market correction event is inevitable since the amount of money going into it wouldn't be able to go into circulation as a viable currency for goods/services. I know some companies are starting to accept BTC as viable payment, they will remove that function in a heartbeat if something drastic ever happens to the market.
I have a five month old SE, works great. None of the issues which plague my friend's 6s.

Can't comment on long run performance. I can say I've never heard it mentioned in these threads. I'd google SE battery throttling specifically though.
What is the result of INT_MIN / -1 ?
Ditto. Haven't complained or followed up with anyone yet, but seeing all of this info has me now thinking it's not just me.

Every action is noticeably slower (~1s response for everything) and now, as of last week anyways, need to recharge my phone midday where I've never had to do that.
> Available alternatives are not great

You admit alternatives exist, but decided to modify webpages anyway? Adding your own modifications to a copyright protected work (e.g. any web page) creates a derivative work. Generally only the copyright holder of the original work can create or authorize derivative works. Unless you have a license the copyright holder for each webpage you are modifying, this is copyright infringement. Why did your legal department approve a plant that might make the company liable for up to $150,000 per work infringed?
A common approach on Android. Nobody really seems to know exactly why, but evidently crap accumulates, either from old apps or from sloppy in-place OS upgrades. A full reset clears all the crap, and you start anew.

I prefer to skip even the backup step, instead relying on cloud sync for contacts etc, and manually dumping a couple apps.
The arrogance is unreal. Your difficulty communicating with your customers is not my problem. Keep it out of my website.

This is a perfect example of the culture problem at Comcast. You seem to have worked yourselves into believing that you're something other than a dumb pipeline. Now you feel entitled to stick your fingers into the content.

I suspect this mass-psychosis is coming from the top, and the need to move into higher-margin businesses. Keep your messages on xfinity.com.
Please don’t quote with code snippets, it’s unreadable on mobile.
If the library/component is wide spread, it either can be developed in a branch, and specific version be tagged, or always developed "trunk" mode with feature toggles (may not be always possible, but one can adjust), e.g. - certain features are disabled, and need to be enabled after others come across, or after some specific time, etc.

While at google, we used that kind of development for the project I was in. Someone would push source code changes for new features, but prefferable behind a flag (normally a command-line flag, driven to a configuration, like the one ksonnet has). The confiuration file would say - enable this flag, only the binary was compiled with this CL version, and/or these cherrypicks, or some other rule.

This also allows a feature to be quickly disabled by SRE, SWE, or other personnel if it's found to be not working well.
So your file system check is killed and leaves your array in a possibly corrupt state? That is simply insane.
I've always thought that if we are redefining time units a better solution might be 100000 metric seconds in a day (making them a bit shorter than the existing 86400 in a day) and otherwise the same relationships you've suggested:

1 metric minute = 100 metric seconds

1 metric hour = 100 metric minutes

1 day = 10 metric hours.
If rather switch to a base-12 number system
Plus when you search for a Chromecast you get a Fire stick. Amazon is in the wrong here and glad to see Google push back.
Limiting the size of numbers is intentionally left out of Son right now, because I'm not sure where that limit should be. My hope is that we eventually have a good schema language for JSON (something like JSON Schema, though I'm not sure about that one in particular) and then people can set number ranges in their schemas based on their particular use case.

There shouldn't be any remaining string escaping problems though! If you find one definitely open a GitHub issue.
Working uncertainty into time estimates still just gives you two sets of times to consider, with no way of knowing why you missed the low one and just if you will hit the high one. (Unless you do really wide bars on your estimates, in which case, the high bar is going to be worthless.)

That is, if you give me a high confidence and a low confidence estimate, how do I know why you missed it when the time passes? More, how "close" to making it were you? If you got half of the work you estimated done by that time, I'd know you were about halfway there. If the date just passed, all I know is that you didn't make it.

And I used "I" up there. But it is really even more personal. All you know is that you didn't make it. You literally don't have anything to learn there.

Contrasted with any work you do. Look back and quantify what you did. Not how long it took to do it.
There is also Slackware!
Plus Amazon hijacked someone search on Amazon for a Chromecast and gave them a fire stick. Hope Google can set Amazon right.
That's great, but most JSON libraries don't give you that level of access... they just decode in to a bunch of nested maps/dicts consisting of your languages native data types. So one day you swap out your JSON library and the behaviour of your application silently changes.
> Depends on your culture (and regulatory requirements). I prefer companies where anyone can modify anyone's code.

This is still true at Google, except for some very sensitive things. However, every directory is covered by an OWNERS file (specific or parent) that governs who needs to sign off on changes. If I’m an owner, I just need any one other engineer to review the code. If I’m not, I specifically need someone that owns the code. IMHO, this is extremely permissive and the bare minimum any engineering organization should have. No hot-rodding code in alone without giving someone the chance to veto.

>ripgrep, ElasticSearch

Having something understand syntax when indexing makes these tools feel blunt. SourceGraph is making a good run at this problem.
> Before looking for something 'better' than JSON, build a basic prototype of your app and see if your application actually needs to use something else.

That implies that JSON is somehow the gold standard of serialization formats. I don't see it that way. The fact that JSON is ubiquitous in some areas doesn't mean that it's the gold standard for all other uses.

In my experience, protobufs are easy to work with, concise, safe, and efficient. There's never any ambiguity to them, and both creating and parsing messages is fast and easy. That doesn't mean that there aren't cases in which JSONs aren't a better choice, for instance when working with browsers, or needing a text based format for debugging or inspection purposes.

> Protocol buffers are very clever and really cool but using them where you don't need them is a huge waste of effort.

In my experience protobufs require very little effort, with most of the effort being put into defining the schema. It's pretty frictionless afterwards with one notable exception - when you want to manually inspect a message. That's where JSON wins hands down.
Now that's some epic if accidental trolling, lost in time like tears on scrolls.

Burning the greatest Greek poetry (including that of the 10th muse) and replacing it with works by Gregory of Nazianzus. Then getting everyone to believe it was a pope who ordered it... a different Gregory. Not all heals are wounded, but knowledge is lost, if we believe the traced and misquoted documentation.
+1 for this one. I just finished it.So much wisdom.
I have only used ROS for a few simple projects, but I found catkin (which is actually a thin wrapper around cmake) relatively easy to grasp.
As far as I know, catkin is actually an improvement over previous build system, rosbuild.

You can look up more informed and lengthy threads/holywars about build systems, but in my experience, they always end up being complex for large projects. Some IDEs try to hide the complexity behind dozens of GUI tabs (build settings), but that usually makes headless/CI builds complicated, and sometimes even impossible.

Also, what I have seen a lot is: when people are struggling with build systems, they usually don't have a clear understanding of major underlying steps that need to be performed to build the executable: invoke compiler to compile individual source files to corresponding object files (with correct include paths and compiler flags for architecture) and then invoke linker to link them and any required libraries together, producing an output executable.

Once this process is clear, reading the documentation of particular build system to achieve what you need gets a lot easier.
Ok then s/most/much

Over 2.8 billion people, a bit less than half of the worlds population commonly use a date format other than dd/mm/yy. My point stands; use ISO-8601 to avoid ambiguity.

We run a SaaS application that spits out ISO-8601 date formats in reports. Hundreds of thousands of “normal humans” seem to under that format just fine.
First, thanks for participating.

Second, I am a Comcast customer who will never see these messages precisely because you do things like MITM unprotected traffic. Because I can't trust you to leave my traffic alone, all my traffic is tunneled.

So at the very least, if you feel this is a critical service you are offering (as implied by the RFC), you need an alternative communications channel for people like me who don't permit this one. Snailmail is fine; you try to upsell me constantly through that channel already.
But you probably wouldn't read it, because lots of people don't read their email (at least partially because of the junk).
It's even easier to sprinkle with Vue.js
Or Google should do what Amazon does and when you search on a Fire give you a chromecast.
I think it should be read by everybody, period.
Very nice tie-in to the planned-obsolescence theme others are throwing around - Apple would much rather push you towards buying a new phone (and because of their advertising, their target market would probably accept their reasoning) while a simpler option exists that won't make them nearly as much money.
As that page describes, Caddy's detection only works on SSL-served pages, by comparing the TLS Handshake, to the expected TLS Handshake pattern of the advertised User-Agent.
I agree that functionality would be great to have. We planning it in the next 3 months but we also very open to someone contributing it earlier.
So they print Important Plan Information on the envelope.
While what you say is technically accurate, I think you're missing the bigger picture here. The author's point still stands: git's commit history (arguably the most important part of a version-control system) can be viewed as a purely-functional data structure, and that view has practical benefits too. I tried to explain more here: https://news.ycombinator.com/item?id=15892013
Robots Will Transform Fast Food – That might not be a bad thing
> I'm always surprised just how many people here on this site think you have fight social/political fights with technology. Especially when it comes to entities that can bribe legislation and control your communication.

I don't understand. Your second sentence seems to contradict your first; Comcast bribing legislators is a social/political attack. What did you mean?

I currently see more hope in tech solutions than political solutions to the problems of privacy, net neutrality, and script injection. We have the option to use content and routing encryption technology that looks something like TOR or I2P. Instead, we're asking politicians who don't understand the tech to protect us from ISPs who will never stop trying to leverage anything they can find in our traffic. Allowing Comcast to see the traffic at all is the problem, and politics will never prevent that.

If it's apparent to you that the political fight is more winnable, or that technical approaches to privacy are doomed, then what is the social/political solution to internet privacy? Because we don't have any right now, and it looks like we're losing the political war.