skysight-inc/HackerNews huggingface dataset:
China is ~56.4% coal and dropping fast which is a long way from 2/3's. This is down from 81% in 2007 so having recent numbers is really important.

USA happens to have a lot of natural gas which is better than coal for the environment but still much worse than solar/wind etc. Further, because they still use a lot of coal and they use more total fossil fuels it's not as a big a difference as you might think. Really the important question is what is going to come online to fuel electric cars, and that mix is vastly better than oil especially when you include extraction, transportation, and refinement.

PS: China is something like ~58% coal equivalent vs ~47% USA coal equivalent (assuming natural gas produces 1/2 the carbon of coal.)
What is that called, then? Having small programs, each responding to a different part of the API, all storing data in a single shared DB?
> Our initial microservice architecture worked for a time, solving the immediate performance issues in our pipeline by isolating the destinations from each other. However, we weren’t set up to scale. We lacked the proper tooling for testing and deploying the microservices when bulk updates were needed. As a result, our developer productivity quickly declined.

Well, I'm not surprised. Microservices are made possible by advances in automated testing, CI, and deployment. You should have those things anyway, even if you have a monolith -- but to go to microservices without them is a pretty bad decision.
Show HN: Alkali.app, AI for everyone
Hey HN! We are from https://alkali.app ! Alkali is a tool that allows the creation of AI workflows using a super simple drag-and-drop interface. It manages data pipelines end-to-end.

We would be super delighted to get feedback on the tool! Thanks!
Do you have to have babies to test new accounts?
> That is not completely on the developer, either. Pre 4.0 Mongodb, for example, does not do transactions

I'd argue that's on the developer, if he was the one to choose a database that doesn't support transactions, and then didn't implement application-level transactions (which is very hard to do correctly).
The problem is that Mozilla is aware about the issue for years, yet is not doing anything about it, even though the auth protocol is stable and documented. Okay, I get it that they may not want to rewrite already working parts of the browser - but even in this new Lockbox project they're using a WebView to log in to FxA.

<fud>Maybe they're already breached by highest-profile actors like NSA?</fud>
> Just as bad, just in a different way.

Actually worse in many ways:

- Harder to test

- Harder to debug

- Harder to deploy

- Harder to monitor

- Harder to reason about, refactor, change/add functionality

- You've (basically) turned a lot of the operations your services need to perform into RPCs, probably killing performance on top of everything else, leading to

- More complex/demanding (or just MOAR) infrastructure requirements

- Higher dev, maintenance and infrastructure costs

- Slower delivery of value to the business and customers

- Potentially crippling opportunity costs

It surprises me how often people don't see this coming. Seriously: keep your systems as simple as you possibly can. Unless you're Netflix, dozens or hundreds of microservices probably isn't as simple as you possibly can.
Can't believe they didn't call it Lockfox.
Electrolux Partners with SideChef to Connect Cooking Journey in Asian Market
I’d still pick PHP between the two for usual web apps. There is beauty in the statelessness of PHP and also leverage on Nginx (+ Lua) for more critical and high-speed work.

The issue I have with Node JS is that the entire ecosystem moves way too fast. However, when I need realtime interaction via WebSockets fe. it really feels like a good choice.
Exactly the same thing happened with SQL vs NoSQL.
Thanks for mentioning the code and comments. This is art.
I would go for much simpler things. Like a differential gear on your drive wheels. Without it, you either have a solid axle that literally drags and squeals your tires on every turn, or you only get one drive wheel so your car has a permanent biased to turn one direction and not the other. Or direct injection which would give a permanent advantage in fuel efficiency over competitors.
Maybe the ship has sailed, but I would prefer laypersons not associate the phrase "256-bit encryption" with anything, and would much rather one like "strong encryption practices" if it's a link to the technical specifications. They have no basis on which to evaluate what 256 bits of anything actually mean, so using it as a technical term to throw at their face intending for them to latch onto it as a valuable metric is actively harmful. What if it said "Strong 256-bit RSA encryption". To you and I that phrase should send off alarm bells, but a layperson might actually rank that as more secure because of the added technical jargon. You've just taught them to trust random technical-sounding security jargon so adding more jargon makes it sound more better.

It's probably way to late to make any difference here, but I still wish mozilla could push the boundaries here.
Pure CSS Star Rating System with Color Change
Maybe we could commit to a longer duration with every major change, develop expertise and contribute to improving that solution.
Yes to what kimdotcom says - blue/green is the only real sane way to do it with minimal/no downtime, and that strategy/recommendation is good even if you're not running in Docker. If you're just doing cowboy deploys and accepting a few seconds of downtime while the new war file explodes and tomcat starts up, then Docker won't add any noticeable overhead of its own.

> Does it reinstall the os, the vm, the app,

No. First, "reinstall" isn't the right word. The "OS" is baked into the container. There is no vm, Docker is not a vm. It doesn't re-install the app, it's starting it up in a new container. All your deploys are likely doing is pulling a new container image or layer (about the same size as your war) and calling `docker run` which could be more or less the same as `java -jar...`.

> are the shutdown / startup operation well defined or does the process just get killed?

There is a well-defined container lifecycle that iirc sends SIGTERM by default. This is similar to what systemd or similar would do.
"# we have made it out alive.... for now. @jack's bloodlust
# goes unsatiated nonetheless."
Show HN: A Go content security policy engine for unit testing HTML pages
With all due respect lets all be wary of the 'cult of sacrifice' which often takes hold when someone dies to save someone else. Any time someone dies to save someone else, I suggest the appropriate reaction is that we should simply regret among ourselves that we didn't develop a technological solution to the problem before the problem presented itself, not engage in hero worship (please don't read this as diminishing what this person did, it was a sacrifice, and those kids owe it to him to live good lives now).
I'd say the current administration in India has the willpower and execution to bring big names. Problem is with an ecosystem including the necessary infra to set up something like this.
Eco Virtual is great -> https://ecovirtual.bandcamp.com/
And, in the end, everyone starts writing Java again...
> Old technology is deemed by people too troublesome or restrictive.

"deemed" is the keyword here. Old tech is "deemed" bad, new one is "deemed" good. Without any numbers attached, just by way of hand-waving and propaganda. And it's all "deemed" Computer Science :)
Why is this comment flagged? I thought the exact same thing, it was all a publicity stunt rather than a legitimate humanitarian effort.
I have had thinkings on how efficient Micro services are compared to a Monolith.

In a micro service architecture, the request bounces through different service layers, json serialization, network transfers.

In a monthlith normal application, especially if its on one machine, the request touches main memory and then CPU cache.

Latency Numbers Every Programmer Should Know, I especially think of the Send 1K bytes over 1 Gbps network vs cache latency of microservices/monolith.
https://gist.github.com/jboner/2841832

Ie instead of micro services 10000 ns for a network transfer you could fetch within 10ns from CPU cache in a monolith, that is 1000 times more efficient.

Are we beyond the peak of inflated expectations on Micro services and towards the Plateau of productivity?
https://en.wikipedia.org/wiki/Hype_cycle
What do you think of our personal finance app?
Hi there, I'm George from Moneyspire, and we developed a very straightforward personal finance app that we believe has all the features people need, without being too complicated and feature bloated. We are also very receptive to user feedback, and are constantly enhancing the software based on our users' comments and suggestions. I just wanted to introduce our app, and to answer any questions you guys may have. Our website is www.moneyspire.com where you can learn more. I'm happy to answer any questions, and also very interested in your comments!
Thanks for the thoughtful reply
I can't believe this made it out of any planning meetings.

Engineer 1: "We'll have one repo per downstream service."

Engineer 2: "But we have hundreds of those, so now we have to manage hundreds of github repos???"

Anyone sane: "That doesn't sound right, we should rethink this..."
Nobel-winning economist Jean Tirole on how to regulate tech monopolies
You can step-through your big ball of mud in a debugger, but you can't do the same with your small balls of mud. Not easily at least. That alone makes a huge difference.
Hawaiian Style: The Roots of the Aloha Shirt
Show HN: Wikischool Geo – discover our world
The Average Household Wealth in Countries Around the World, Visualized
In the US at least, you can serve debt collectors notice that they must cease all future communications with you, and if they disregard that, the FTC can and will go after them.

I'd recommend reading the Fair Debt Collection Practices Act.

https://www.ftc.gov/enforcement/rules/rulemaking-regulatory-...
As far as Python goes, yes. Multicore implies multiple processes, which means that each process will have it's own Python interpreter, each with it's own GIL.

If you were to use multithreading instead, you would generally have a problem if you were doing non-I/O work.
Maybe your mom doesn't need an iPhone?
> I think that ultimately, the hardware / software producers want it to fail.

Then why did they invest so much money trying to make it work?
Microsoft surface go
Chocolate Health Benefits Decadence You Can Enjoy
I manage the digitization program for a university library system (though I'm leaving this role very soon).

Yes, digitization is inherently a transformation and remediation of the work. This means that yes, something is taken away. But the value add, in my opinion, is so great that it's very well worth the money and time that goes into it.

My favorite work of art ever is Friedrich's The Monk by the Sea [0]: it fills me with emotion every time I see its digital facsimile. I hope one day that I'll be able to see it in person, but for now, it's accessible to me and billions of others to appreciate and enjoy.

> works are beginning to become 'instagram' friendly

Respectfully, I highly disagree with this sentiment. In my personal experience, I'm seeing just as many artists pushing back on reproducibility and the "prettiness" of art as there are folks trying to create works that look good on office walls or on Instagram stories.

> to hordes of people taking selfies with the Mona Lisa instead of appreciating it

Finally, again, I respectfully disagree. Who's to say that I can't enjoy art and take a selfie with it too? Many people like to add some sort of lens, most frequently their phone camera, to their experiences at concerts, museums, and galleries. I don't think anyone's qualified to tell those folks that they're doing it wrong.

[0] https://en.wikipedia.org/wiki/The_Monk_by_the_Sea
This is what I see the most of online with regards to blogs making money as well. Blogs about how to make money on blogs. No actual content anymore. It's a bit sad, that the internet has only gone as far as classified at the back of magazines.
This is officially how the patent system at my company works. They just ask for patentable ideas related to what we've worked on.
Unrelated, but on the termdriver page, CSI codes C and D are labeled as both being "cursor down", when they should be "cursor forward" and "cursor back".
Why are the comments critical of Musk being flagged?
Technically CloudFlare workers is better compared with Lambda @ Edge no? I don't think you'd be using API Gateway, instead CloudFront right?
Tcl interface to Nano
50 years from now, we won't have an internet. Everything will be accessible only from a proprietary app, on a proprietary operating system, on a proprietary device. Apps can only come from a sanctioned marketplace.

All walled garden, all the time. The internet in general will be replaced by 'Facebook pages'. No more URL bar. Many kids today don't know how to utilize the internet but they do know how to consume apps.

This is the future that you vote for every time you buy an iPhone or a Windows PC. This is the future you buy into when you buy an Android from an OEM that doesn't allow unlocking their bootloader.
Is this based on the misconception that the US violated the Budapest Memorandum by not defending Ukraine? For some reason this idea has a lot of traction, but the agreement doesn’t actually require the signatories to defend Ukraine from a non-nuclear attack, it merely prohibits them from attacking. Russia has violated the agreement but the US has no obligations to act on that.
Good separation: HTML5 data attributes to generalise JavaScript modules
Link for the curious https://testpilot.firefox.com/experiments/side-view/
And at the rate mergers and acquisitions are going, in the end there may very well only be one.
> It might be tempting to try to maintain multiple directory structures, making use of hard or soft links into the code base, but this sounds like it might be fragile, not to mention hard work to maintain.

There are a lot of projects organised around automating this maintenance—though they tend to pop in and out of existence, so I'd agree we're not at the state of having a reliable solution that'll be around next year, or next month. TagFS (https://github.com/marook/tagfs) is the system with which I've been familiar most recently, but it appears to have been dormant for four years.
Completely agreed, and I love postgres' support for JSON fields, I think it fills an important need. Not everything can be conveniently described with a schema.
Microservice based architecture will continue to be used quite a bit as many weaker engineering leads have latched onto it as a way to solve interpersonal problems on their team and letting everyone have their own little fiefdoms. It creates a terrible scenario and a very dysfunctional team, but the hype cycle and a few high scale orgs mentioning it means its part of the "mainstream" now and something that ill-informed leads will be pushing for the next decade, whether it makes sense for the specific context (it doesn't) or not.
Announcing Rust 1.27.1
That's pathetic... it's such a shame Twitter intentionally crippled their API because the platform is so well suited for 3rd party apps
Of course. I agree with the points made here and in sibling threads about schemas and sql databases. But I also think it's hard to dispute the fact that most data lives in files and file systems.

And I think developers too often compare various no(t only)sql solutions with rdms' - without really considering "file-based sql" (sqlite) - or simply file system/DAV based storage (webdav, s3 and work-a-likes, local files, nfs etc).

And again - I think it can be easy to see some examples where files are great (store the images for an image gallery), or where relational model is great (transaction data).

But I think it can be much harder to see where file storage, or file storage augmented with some form of index - is beaten by a nosql dbms.
Alternatively:

Are stuck using the new tech, because implementing it burned bridges with the old tech.
Use Njalla (https://njal.la) to have privacy from whois services
Good work at CloudFlare. I personally figure that Amazon ought to be doing more interesting things with Lambda, like maybe starting the workers from a memory snapshot.
Backward-compatibility is one thing but forward-compatibility is something else entirely.

I upgraded a whole java shop to java8 and it was not a fun experience having two JVMs on the same machine and all the different tools thought they knew which one was the correct one but none of them agreed (it wasn't as simple as setting JAVA_HOME).

All of this java tooling/versioning is simple in theory since java is a pretty simple ecosystem (compared to something like C++ or even python to an extent), but there's so many layers of indirection in a modern build & deployment system that it's really painful to debug when some tool somewhere sets its PATH incorrectly or doesn't respect JAVA_HOME or symlinks or....)

If the apps had been docker-ized there wouldn't have needed to be a JVM on the host machine at all, and teams could come in and use java9 or whatever without having to work with SREs/devops to upgrade the machines and worry about whatever other apps may be using those machines or virtual-machine images.
It's probably impossible for you to fit anything else into your schedule between a full time job and three classes. From my perspective, working fulltime during school makes a candidate more attractive rather than less, even if you're waiting tables. It shows you value your education way beyond someone who's just taking classes, that you're willing to stretch yourself to the limit to get there. That's admirable. Ceteris paribus, I'd take the hard worker over the Github portfolio.
I am a fan of the quality of dev the Firefox team has, and am sure they have thought this through very deeply. For trust and security, it would be helpful if that were reflected in the specs as well as the final product.

I was the architect for a solution solving a similar problem some years ago, and then, as apparently now, the key derivation scheme appears to be a bit of a shell game. Was just reading this and trying to get a picture of how someone could reason about trusting it. This doc specifies four symmetric keys, where two are used for encryption, and two are used as salts.

The salts are derivations, which are hashes from data elements

So simply, we have:

FxA credentials: a string or blob to be determined.

f: some function tbd

k_pre: a bootstrapping scheme initialization key.

k_enc: keystore key.

k_salt: a user-bound diversification component

k_item: a key to encrypt an item within the encrypted container, or "lockbox"

Some definitions:

k_pre :=(f(FxA))

k_enc := (f(k_pre))

k_salt := KDF(k_pre, userid, infostring, length)

item := KDF(k_salt, k_enc)

Question is, what is FxA? Best thing could be is an HSM key with a user-bound diversification component, with some kind of secure provisioning protocol to get it into the device, but from what I can tell from the docs, there are still some exercises for the reader.

What wasn't clear on first reading from the architecture was the protocol they use between where the lockbox is stored, and where its components are used. When I did this, we used a variation of OCRA to prove possession of correct keys and their versions and release verifications for "items," (attributes).

The next useful documentation step would describe a sequence like:

A -> B: init msg

B -> A: challenge

A -> B: (userid, key version, HMAC(k_pre, challenge))

B -> B: derives k_pre(userid)+ HMAC, validates

B -> A: challenge'

A -> B: etc...

Not to be a pedant about this stuff, but to be able to reason about the things we can trust it for, there are some things we can't be handwavy about.
How on earth did you end up with 100s of services?

I can't imagine you have applied Conway's law.

I think there's some serious confusion between FaaS and microservice architecture.
Yes but how much value really?

https://www.ascb.org/newsletter/novemberdecember-2016-newsle...
If VSCode is too heavy, Sublime Text runs like a dream on all sort of low end hardware.
Panasonic makes Tesla's batteries, and as far as I know Tesla doesn't have any proven battery technology that's better than anyone else's. I know people who work on battery technology. Pretty much every chemistry department at a major university has people working on batteries. You often see publications about breakthrough's in battery tech from these universities. Very few of these alleged breakthrough's make it to market, so I'm skeptical that Tesla can succeed where so many others have not.
> JAVA_HOME and installing your JDK or JRE in a standard location

...and that's exactly what Docker + Java does.

Just in a standard format that works with any kind of program, Java or otherwise.
JavaScript prior to ES6 was "old" and obsolete and hated. Building JS objects pre-classes is pretty terrible (to say nothing of the .bind(this) that is spammed everywhere without the => operator)

JS has improved massively over the last few years, it's very nearly an entirely different language than what it used to be.

There's a reason everyone was desperate to avoid writing JS not all that long ago be it the form of coffeescript, silverlight, flash, or GWT. ES5 JS sucks. Like... a lot.
Each and every one of these posts from Cloudflare is direct targeting and completely biased. Should be noted that their response times are indicative of them being far fewer hops away. Unless they can run in the same DC, or even make the RTT fair, their 'Webpage response' metric is utterly useless.

Notice how they admit that they don't know how lambda really works.
They switch between lambda@edge and Region-based lambdas, and don't seem to be able to be consistent with it.

Java Lambdas have horrible cold start times, and I'm not seeing any of this reflected anywhere in their report.

> Our Lambda is deployed to with the default 128MB of memory behind an API Gateway in us-east-1

Well duh the lambda is slower; it's going through API Gateway, and that does authentication processing as well.

All in all, these blog posts from Cloudflare are turning me off from them entirely, because they aren't even saying 'yeah, AWS got us beat in this case here.'
The 25GB/s corresponds to the fastest speed a DDR4 can send memory.

That said, any nontrivial computation is unlikely to keep up with that speed (e.g. 64-bit data will be ~3GD/s, so whatever computation you do has to fit in amortized 1 cycle on a 3Ghz clock, or the CPU is the bottleneck)

GD=GigaDatum
I thought that's what happened? Or is debt not part of the inheritance in this case and only the savings/property given to the family?