skysight-inc/HackerNews huggingface dataset:
I found that even a suggestion to use "grapheme clusters" is misleading. People like to think that there is one kind of grapheme clusters, namely one specified in the UAX #29 [1], but that's just the default and the UAX is pretty much clear about it! Consider an `ij` digraph in Dutch [2] that should count as a single character as a motivating example. "Code points", or rather "Unicode scalar values" are formally defined and not changing; "grapheme clusters" are generally locale-dependent.

I think that we should ask what people want to do with "characters" instead:

- If you want an array of very short strings, use an array. Do not abuse strings. Recent languages even don't like it.

- If you want a string that is not too long when displayed, first and foremost try to resolve that on the actual display (say, with CSS). If that's really impossible, pick a font and actually measure. Make sure that you are using the actual size being printed---the bounding box is not linearly scaled when the font size changes.

- If that display is a terminal, you may also consider using the East Asian Width [3]. But keep in mind that the default width of "Ambiguous" characters greatly varies across locales (Asians tend to prefer dual-width ambiguous characters, for example).

- If you want a string that is not too long when stored, use the encoded byte size. Oh, do you want to make sure that certain languages are not disadvantaged? Do your research to determine the appropriate limit per language then, but I bet you would be much better with generous limits (cough cough Twitter cough).

- (While this is not counting characters, for the completeness,) if you want to navigate a string with a cursor or a keyboard, then default grapheme clusters may actually fit a bill, as that might be the best possible! Someone will obviously complain though.

- If you have to, uh, really, really count characters, the chance is that you can assume a particular script and/or language. Reject others and use the local convention. You may want to read about the Unicode Script Property [4].

[1] https://unicode.org/reports/tr29/

[2] https://en.wikipedia.org/wiki/IJ_(digraph)

[3] https://www.unicode.org/reports/tr11/

[4] https://www.unicode.org/reports/tr24/
Khatabook (YC S18) Back End Engineer (Hiring for Multiple Teams)
Responsibilities and Duties :

- Build, maintain and scale the backend system (client facing api, data sync api)

- Work on microservices based components and message queues

- Write clean, robust and testable code

- Extract insights/trends from user data leveraging data science.

- Able to, willing to and enjoy solving urgent/challenging problems

Requirements :

- Professional experience as Node.js developer writing production backend services.

- Deep understanding of SQL database architecture - data modelling and scalable schema design.

- Working knowledge of message queues, NoSQL databases & caching systems.

- Basic knowledge of python, scripting and common data-science toolkits is a plus.

Job Experience :

- 1-3 years

- Preferable from Top Engineering College

Tech Stack :

- Node.js

- Python - pandas, scikit-learn

- PostgreSQL, MongoDB, Redis

- AWS cloud - EC2, RDS,S3.

CTC : market level compensation + Esop

Location : Bengaluru

Contact : Hiring@khatabook.com
"In the real world...", "Nobody cares about how it works as long it works...", etc. This is a company where the top level management 1) thinks it knows best about everything, 2) micromanages everything, and 3) trusts absolutely no one to do their jobs. The CEO has a software degree but never really worked as a programmer professionally and is as obsessed with exclusively shipping features as any MBA, and it flows down from there.

When you hire subject-matter experts to do professional work and then refuse to believe that they might know more than you about how to do that work, you're going to have deep dysfunction.
> I’m obviously not in line with the tenor of this thread, but I really don’t think it’s a big deal.

If this sort of abuse isn't nipped in the bud, it will only get worse and become standard operating procedure for each and every single ad company, big and small.
Sure, but this is off-topic.

My question was about why one would want to call WebAssembly functions from Go or PHP.
It was in an official news release, not an interview. afaik, there was no indication in print that it was a joke
>Was it really just to become the world's most comprehensive search engine? Hell no

Many around these parts still believe this, and that Facebook is trying to connect everyone, and that Tesla wants to accelerate renewable energy. Such altruism!
My friends at Google: it is time to return to not being evil (2017)
Monzo, Starling Bank and Revolut all have their own backends. The latter two only outsource card processing (aka connecting to the MasterCard network).

The whole point of these banks is to not have branches (I believe that’s the word you were looking for) so it’s not that they rely on third-parties to do “meatspace” things, it’s that their whole point is not to do meatspace things (because it’s unnecessary for most customers anyway) and pass on the cost savings to the customer (that’s how they get away without charging bullshit fees for foreign card transactions or declined payments).
Got to admire the creative thinking involved in this. Are there any more "practical" potential uses? Some industrial process that requires lots of power but not too much other infrastructure?
Khatabook (YC S18) Android Developer
Role: Android App Developer

Responsibilities and Duties :

- Development of Android applications

- Design, build and maintain high performance, reusable, and reliable Java code

- Writing unit-tests code for robustness, including edge cases, usability, and general reliability

- Take ownership of product/features: End to end development with testing and meet the deadline

Requirements :

- Solid understanding of the Android app development and Java Programming language

- Good understanding of areas in the basic areas of Computer Science such as Algorithms, Data Structures, Object Oriented Design, Databases.

- Plus point if you already know Kotlin

- Fast learner and able to quickly adapt to changes

Tech Stack :

- Android

- Java

- Kotlin

Job Experience :

- 1-3 years

- Preferable from Top Engineering College

CTC : Market level compensation + Esop

Location : Bengaluru

Contact : Hiring@khatabook.com
If UK-Based, How Much CO2 Emission Does Your Annual Holiday Add Up To?
Antidepressant use during pregnancy?

https://jamanetwork.com/journals/jamapediatrics/fullarticle/...
and obviously other people can be affected by the impersonation of someone, e.g. an impersonator taking advantage of a deceased person's trustworthiness within a community that is not yet aware of their passing.
Looks like there is another version of waterfox at the .org domain. Which domain is the correct one? Can you get the incorrect domain de-listed from google search results?

https://waterfoxproject.org/en-US/
A bit off topic, but I worked with someone who interviewed with the NSA, got a job offer and declined the job.

The funny part is that he has a 100% chance of getting “randomly” selected for search every time he takes a plane.
So the rating system is basically hot-or-not. Kind of pointless
This seems to me a "least bad option" case. The alternative is that they'll do it without showing their colours, so you won't even know that it's a possibly biased edit.

Corporations are also frequently under attack on Wikipedia, so that they want to do some kind of reputation management is quite understandable. Better they do that openly and have to be clear in their intentions, than that it's hidden.
Incredible.

Bitcoin used to be a solution looking for a problem.

Now it's at least a solution to it's own problem.
Boden – Native mobile cross-platform applications
One of my best friends worked at the NSA, then the CIA. Smart guy. Unfortunately he got charged for Vault7 leaks and is going to spend the rest of his life in jail.

So, in short, don’t work for them. It might seem cool, but it’s not worth it. If they don’t like you, they’ll fuck you.
same here: i feel sorry for those not blocked
You don't even need emoji; eg U+63,U+300 (c̀) is one characters but two code points, and U+1C4 (Ǆ) is two characters, but one code point. There's also U+1F3,U+308 (ǳ̈), which is two characters in two code points, but segments incorrectly if you split on code points instead of characters.

It's ambigous how to encode latin-small-a-with-ring-above (U+E4 vs U+61,U+30A). Decoding is also ambigous (most infamously Han grapheme clusters), but I'm not fluent enough in any of the affected languages to have a ready example.

Also, that's seven code points, not five.
This will probably get lost, but Raymond Hill confirmed that he will keep developing uBO and uMatrix for Brave (and any other Chromium-based browser that exposes access to webRequest) after Chrome deprecates webRequest for non-Enterprise users.
Doesn't DNS over HTTPS and HSTS bypass pihole?

(isn't it funny how every single "modern web security" feature, from DNS over HTTPS, to HSTS even to HTTPS itself always ends up with someone giving up control to 3rd parties yet this is always dismissed and pushed through insane amounts of peer pressure - usually by people who have vested interests in those 3rd parties - because 'security'?)
It's about the audience. People who don't know or care about telemetry tracking are also probably not going to know about Waterfox.

The ones that do know about waterfox are probably technically savvy enough to disable telemetry in regular old Firefox.
Connecting to Windows via SSH Like in Linux
Classic Cartoons Created a Culturally Literate Generation
This is an unfortunate downside of onion URLs and a restriction imposed by Zooko's triangle (the CAP theorem of naming systems)[1].

One possible solution would be to issue a TLS certificates for both the clear-web and .onion domain (for services which are offering .onion services to provide better anonymity for users not their servers).

Unfortunately, the CAB forum has decided to not allow this -- only EV certificates can be issued for .onion services so you can't use LetsEncrypt for this.

[1]: https://en.wikipedia.org/wiki/Zooko%27s_triangle
I am having the same thought too after reading through it. Good job on the step by step explanation together with the illustrations.
Today it is, unfortunately history has shown that trusting Mozilla is also foolish.
Another data point: I haven't had any of these in Firefox on Linux (Kubuntu) except for occasional crackling audio. For me, that happens (I think) after a non-playing video tab sits there for a few weeks, and I can fix it by restarting Firefox. I have ~800 tabs open.
Congrats on your book, your work in the space is inspiring.
Why would someone fly from London to Paris?

High speed train is more convenient and electric (so nuclear-powered at least when on the French side).
This is such a great way to get girls into programming. I'm a proud supporter!
That's sort of the point, since it's actually generated from a public key that the operator holds [1].

Once you have confirmed a domain is correct, you should save it yourself, and only access that saved link.

Using any forums/wikis/search to find onion links (may) leave you with stolen credentials or a hacked machine.

It's cumbersome for sure, but the beauty is it's self-authenticating. Don't forget to turn off JS. :)

[1] https://trac.torproject.org/projects/tor/wiki/doc/HiddenServ...
How to Create a GNU Hello World RPM Package in Fedora
AFAIK about Julia, Rust and Julia handle strings similarly. i.e., Strings are represented by UTF-8 internally, and they are required to be valid UTF-8.

I've also built strings in Rust that are only conventionally UTF-8, similar to Go. It's still an experiment though: https://docs.rs/bstr --- It turns out that conventionally UTF-8 strings can be quite useful in a lot of cases, since the real world often provides data without any guaranteed encoding (e.g., the contents of files).
I don't think it's misleading in the slightest.. When you disable telemetry in an application or operating system, you're disabling that application's collection and transmission of metrics to its developers.

Disabling telemetry in Windows doesn't prevent programs from collecting metrics, it disables the transmission of Windows metrics to Microsoft. Can you give an example of the kind of 'disable telemetry' option you describe which prevents third parties from fingerprinting or transmitting data?
Switching to Firefox costs $0 and works on every network, not just your home net.
>Of course you could argue that these heavyweight designs are a bad idea in the first place, but that's a trickier discussion.

I would argue that, and I don't think it's a particularly tricky discussion; If your site design subverts the normal, expected behaviour and functionality of the browser to such an extreme degree, then you created a poor user experience.
SpaceX is putting up a mega-constellation because of the laws of nature
I can't speak for everywhere, but it's generally not that hard to get another software job. Places like that tend to have few people with both experience and the ambition to improve things. The turnover rate in general is usually high.

Anyway, developers tend to have plenty of leverage, in switching jobs or teams if nothing else.
Better watch out for third party sellers on Amazon then too. I know of a few people that source from Walmart specifically for FBA.
Sure! Like everything there are levels of experience...

- you could be setting up an Airtable to run online courses but you want someone to help you level it up
- you may need some help on an advanced automation using Zapier
- you may have starting building sites with Webflow but need someone to give you some pointers for an extra level of polish
Oh, I totally agree to the magazine route as well. I actually like some of the geopolitics ones. Even of views I don't agree with. They're at least thoughtful essays.
Social Media Is the New Baby in My House
Moneyball for Cattle Is Creating an American Steak Renaissance
Best thing ever said on HN.
The console.log was only there to illustrate that the code in useEffect's callback is only being run on the client-side (see the codesandbox I linked to).

I think it's clear from the parent I was responding to that they have better use-cases in mind :)
I find that surprising, given the lengths OB go to to ensure that only registered, accredited entities can participate in using their APIs. I'm not saying you're wrong, just that I find it surprising.

(Source, I consult with OB and have a hand in their PKI, I don't speak for them and I'm not part of or informed well about anything to do with the regulatory environment)
I say this all the time when this kind of thing comes up.

Please use Firefox!

Even if it's worse. Even if its slower[1]. Even if it doesn't have that one feature or bug fix that you personally consider really important. Just use Firefox anyway. Find a workaround. Suffer whatever it is you dislike about Firefox because in the end if we don't act as individuals against the chrome monopoly then google are going to own the web and we'll suffer a far worse period of monoculture than the IE6 ever was.

If you can't go all the way, going part of the way is still valuable. I personally have chrome installed still because there are a couple if internal sites at my work that have problems on Firefox, so I use Chrome for those but Firefox for everything else.

Firefox for Android is also solid browser, and as a bonus you don't see any AMP stuff.

If you're a website/app maintainer, check for compatibility in Firefox.

It's worth supporting Firefox to keep the web the way it should be. I know they make mistakes sometimes, but we need a viable alternative or it will be too late.

([1] I don't think it is, it's made soild improvements in recent years, but lots of people seem to have their own specific issue they hold dear against it)
I think you have some very interesting ideas, thank you for your feedback. I'll be improving the sign-up process taking these comments into account :)
No, this won’t push energy prices up. If anything it will decrease them because it increases the margin by which natural gas operations are sustainable.
Simple enough. When a company ceases trading, nobody expects the people who bought their office equipment to honour outstanding warranties, or even the people who bought out the lease on the building they traded from. If another company buys the design of their products and continues making them, that doesn't oblige them to honour warranties for the products they didn't make.

This is exactly the same thing, except it was the company name that was sold. Acme Corporation sold the Acme brand to RoadRunner Inc, then quietly ceased trading taking all their liabilities with them.
> Unit tests will actually make bad code even worse because it will be even more difficult to change the underlying logic (because the tests lock all the poor implementation details into place).

This statement is patently false, unless for some reason a project includes unit tests themselves as the production code, which would be highly unusual.

At most, unit tests must be refactored along with the code, but that's the standard operating procedure.
The symbol is not an actual infinity. The abstract concept we access with our minds is an actual infinity. That's the point. The abstract principle cannot itself be embedded in a program or symbol. All we can do is describe it with rules we infer from observing it. Like a painting of a tree will never be the tree itself, and we will not be able to infer everything about the tree just by looking at the painting.
This project is such a cool way to convince young people that coding is something that is fun to do! Keep up the good work!
Netcat Tutorial – How to Use Netcat in Windows and Linux
Yeah, that's the runtime perspective... but for the type system, they're different... with the "naked" union being much harder (as they're non-algebraic - `a | b | b` always equals `a | b` and might even equal just `a` for some values of `a` and `b`)
Yep. GCHQ was recruiting on our CS course and the starting pay they offered was within £30-35k range. Working for literally any IT company in the region would pay more.

(obviously there are perks working for the government that the private industry cannot match, so for some people lower pay is acceptable)
Chrome is (or was) good. Safari is fast, but is a bit clunky and doesn’t have many extensions, and Firefox has never felt like a proper macOS app. Maybe it’s better on Windows where platform standards are less strict.
Which 'tech' industry would that be?

Textiles? Steam power? Railways? Steel? Shipping? Industrial chemistry? Automobiles? Aircraft?

Kind of amusing that what you think of as the "first tech industry" is only one of a very long list.
I thought Safari for Windows was a thing for a while? Never really took off but I think it existed
Regardless of the user's gender, this product simply makes technology less intimidating and it's just brilliant. The notion that coding is hard or complicated is often too common and deters young people from engaging with it. This product teaches logic. I think the focus shouldn't be on making it "simple" for girls. It is making it simple for all young people while making it appealing to young girls in particular because WHY THE HELL NOT! For the bitter boys out there who feel left out, get over it. It is time we make technology inclusive!! Because as it stands today, it is not.
If it were really the case that people don't care, then D-Day wouldn't have been a thing.

People do care - but are led into apathy by those around them who choose to remain inactive. We are a social species, and this is precisely why we must always work to uncover the crimes of those who would use the destruction of other nations to profit.

Please stop enabling criminal behaviour.

I urge you to take your opinion and re-assess it. Should we not report crime in our own neighbourhoods, because "people don't care"? If that is the case, you are enabling criminal behaviour.
How do you get charged for leaks if you weren't the leaker?
This is really cool, so there's a way to radiate heat to the space much more efficiently than the sun does, which destroys the argument of the physicist.
If you have experience and follow best practices, you should produce decent quality code in the same amount of time as producing bad quality code.

In those cases, the gains from improving the code further are not always worth the costs since you should already be taking care of the low hanging fruit. There are always more you can do, but often times good enough is good enough.

It is often worth it for inexperienced developers to spend more time refactoring their code though. Besides the obvious improvements to the code base, it helps them gain the skills to do it "good enough" the first time.
Huh? This never happens to me and I usually don't restart when it nags me to for weeks, because it has a tendency to forget the previous session on updates.
That's okay, I switched to Firefox (+uBlock Origin) a while ago.
Bitcoin mining required more energy. Thus, ramped up power plants to burn MORE fuel.

Burning more fuel means more emissions. More green house gases. More global warming.

IF bitcoin was going to push energy companies to go more green. It would have already.

https://arstechnica.com/tech-policy/2017/12/bitcoins-insane-...

Bitcoin has been the best thing to happen to fossil fuel power plants across the planet.
This seems like a classic principal-agent problem. I can guarantee you that Google leadership doesn’t want this happening. It’s illegal, it’s possibly more expensive in the long run, and it leads to PR black eyes like this article. But the executive in charge of the team is motivated to deliver as much as possible without going over budget; gotta get that promotion even if you quietly act against Google’s interests along the way. Designing correct incentives is really hard at Google’s scale and in this case their failure led to really shitty illegal behavior by the management of this team.
I just had a read through the press release and the way this 'joke' is disseminated does not read at all in the same light as jokes I have read in court opinions. I find I am still in complete disagreement with you here. To not report this use of language would be a much greater issue and it is one indication, out of many, that there is a fundamental diconnect and utter lack of seriousness at the top.

edit - also, I regularly hunt out press releases after reading an article on a topic, I am sure that I am not the only person to do so.
Science Was Never Unique to the West
Show HN: A Pure ORM for Node
> Perhaps counting code points is useful in that it gives a lower bound on the length in any reasonable encoding.

But "á" is two code points (U+61, U+301). If you're looking for some lower bound (whatever that means), shouldn't it be 1? I imagine if you're looking for something like information density, the count of UTF-8 code units would at least be somewhat more informative than the count of code points.

I guess the crux of this whole point is that a sequence of code points is arbitrary in the same way as a sequence of bytes; neither "code point" nor "byte" necessarily corresponds to something that a user would see as a unit in human text. So why are we not using the simpler abstraction?
Why do people have such a problem with advertising on the internet? A lot of useful websites could not afford to exist without putting up some paid advertisements.

Imo, Apps like uBlock should focus on blocking scams and phishing sites.
You can use wasm as a lingua franca between languages if you have some good libraries or programs that you want to share.