skysight-inc/HackerNews huggingface dataset:
As with a lot of things, it comes down to communication. Between teams, and between the services they write. Which is just another expression of Conway's Law.

IIRC Fred Brooks pointed out that the # of bugs in a system correlates closely with the # of lines of communication within and between the teams. Joshua Bloch recommends in "Effective Java" that, if possible, 3 potential clients should participate in the design of an API, for the same reason. So a well-designed interface or OpenAPI spec is worth its weight in gold.

Ofc, "microservices" here means separate running instances available on a network. But monoliths can be "service"-oriented as well. OSGi was good for this in Java, but any system able to load shared objects or plugins dynamically can follow the same pattern. And the benefit is that, if your app hits the jackpot and needs to scale outwards, the service interfaces, ie the lines of communication, are already well-defined.

So, service-oriented monolith first, then microservices if needed.
>According to research on Wonder (Wonder, 2016) an average of 1.8 billion digital images are loaded (globally) each day, totaling around 657 billion photos sent per year. Unfortunately, the percentage of images sent with iMessage is unknown. To make an estimation, we will use WhatsApp's statistics as a placeholder. 2.5% of the messages sent through their service are images. So on a daily basis, assuming this is the same for iMessage, 45,000,000 images are sent through the app everyday.

That is some weird arithmetic. Multiplying the number of images they think are circulating online each day by the percent of images from total messages they think iMessage sends, does not total the supposed volume of the images sent through iMessage.

But perhaps it doesn't matter for the purpose of the article to have proper data and proper arithmetic. Such puny details as proper data and arithmetic can not delay your fighting for a great cause.
Because the law treats the "partner" relationship as something that was freely negotiated between equal parties, despite the obvious power imbalance. Video creators need to from a union to protect their interests, but since they're all "temporarily embarrassed millionaires" I doubt that'll happen.
So the encompassing term would be, I think, gig economy.

I can't think of a single gig economy company that wasn't an ethical disaster.
Antibody tests support obvious: Covid-19 is much more lethal than flu
It makes the claim that using const can improve performance. It doesn't properly substantiate this claim though, and it doesn't seem likely that it's true.

It makes the same claim about code reuse, with the reasoning that code is more likely to be JIT compiled if it's a single hotspot rather than two, well, 'warm spots'. Again it doesn't properly back up this reasoning.
Severe acute respiratory syndrome coronavirus 2 Wuhan-Hu-1, complete genome
If your code is bad in a monolith, it’ll be bad with Microservices. If you can’t build a good monolith, you can’t build a good Microservices architecture — because it introduces even more complexity and requires even more consideration.

Discipline is fundamental to good software engineering: you can’t force it with Microservices.
I was replying to a comment saying there are laws against impersonating people, so just changing the context because you think it’s not obvious that these are deep fakes creates a straw man to argue with. I’m not sure I believe you that you couldn’t understand that these were AI generated speech either.
I feel this at my current work - and the worst thing is that they have some really smart folks which can understand the whole thing and make it work for a few years more.
Debts and taxes are just numbers. Capitalism is a system which knows to enforce the consequence of debts and taxes. Outside of the system people can and will shit on debts and taxes. The rich already do.
Uber pulled off a massive bait-and-switch in India. Offered drivers incredible bonuses, baited them with "rumors" that the bonuses were permanent, encouraged them to apply for loans to buy cars and even has a financing program of its own.

And then they pulled out the bonuses, practically forcing drivers to work 12+ hours/day (some even sleep in their cars) just to make minimum loan payments. No driver I've ever spoken to has been happy driving for Uber, but they do it because they have a car to pay off
"Turning everything into an object can make a small program into a big program, so it’s maybe not such a good idea for small-scale stuff."

In my experience OOP actually makes programs smaller. Assuming of course they have good programmers/architects and the program itself is larger than "Hello world".
How would you be able to afford a mortgage?
A lot of schools function effectively as childcare for parents to go to work (or do their own thing). You can hear that in what some parents are saying now that schools are closed.

You can get more effective education from a couple of hours employing an educator to work 1-1 or in small groups; you can get more effective socializing from going to sports and hobby clubs which don't have to be segregated by age and where you can leave if it isn't working out - this teaches you how to value your time.
I run https://www.eternum.io/ (an IPFS pinning service) and created Hearth (https://hearth.eternum.io/, a Dropbox-like way to publish files on IPFS), and this is a very welcome release.

IPFS has been a real pain to work with in the past (the node would just consume all RAM and CPU and had to be restarted a lot), but it's been getting better, which is great to see.

I really hope it gets good enough to run on everyone's desktop machine, since that's the way IPFS is meant to be deployed (rather than just on gateways). It seems that it doesn't take up too much RAM or CPU now, but it looks like it might be a problem bandwidth-wise, if you host some popular content.

Still, great news overall.
Why should your product team use wireframes more often?
I like that idea, but I also want to keep the user experience really simple. Would you want to display a single list from Reminders? Or show all reminders alongside?

And the other way around: would you add to Reminders from MonkeyMind?
so true. There's a great paper by prof. Ioannidis published back in 2005 [1]. It's also important to remember Feynman's words: "science is belief in the ignorance of experts"

[1] https://en.wikipedia.org/wiki/Why_Most_Published_Research_Fi...
This is why I struggle with microservice architectures. It seems like there is a basic contradiction. On the one hand, it's vitally important that the microservices are carved into the correct modules otherwise you get a nightmare of operational complexity where simple functional changes require coordinated changes across multiple services. But defining the correct way modules requires a bird's-eye architectural view of the entire system, which seems contradictory to idea of self-organizing, independent teams. I can see how it works when the right way to divide things up is obvious or when you are dealing with IaaS or PaaS services, but in a complex business domain who decides how to carve things up?
> So the whole tree is rerendered.

As you said yourself, only children components will be re-rendered. This is relative to the component that had it's state changed (using setState or the useState hook). So not the whole tree rerenders, only the affected component and it's children. And again, when we speak as "re-render", the render() functions of the components are called and then the VDOM diffing happens. That is, even if child components got -rerendered (in react terms), there might not be a DOM update at all (which is the slow, costly operation).
I've got close to 3000 bookmarks.

Almost all of them are saved as full text + PDF in my email (Gmail) inbox under separate labels like 'JS', 'Design', 'SEO' etc.

Gmail's search is pretty decent so it helps me find stuff that I am looking for quickly.
How the 5G Revolution Has Changed the World
Fully automated ecommerce platform to make a fulltime income with ecommerce
> For IPFS to work, there needs to be no central authority who can block files.

There isn't one.

> any Joe Random can DoS any particular hash

Sounds pretty decentralized to me!
The key word is "optimize." Note that the author didn't say "maximize."
The Unspoken Expectations of Working at a Startup
Effective writing might be an even better advantage.
Ask HN: Recommended web framework for Python/SQL back end in 2020
Hi,

I'm a self-learned programmer working in finance who primarily uses Python and SQL. I am a team of one which allows me freedom in choosing what I want to work with but unfortunately also comes with the downside of having no mentorship on the programming front. Right now, everything ends up in Excel and I want to start migrating things to a web app. I want to create some simple web apps for displaying (for now) minimally formatted tabular data and as a distant second some basic charts. I do not know any JavaScript but would be willing to learn if it would assist. I previously have tried out Flask and hated working with HTML/CSS each time. Is Flask still recommended for a minimal/easy to get started setup in 2020 or is there anything else out there? Any advice would be greatly appreciated.
To add to lgas' point:

The distinction between functions with side effects and descriptions of what IO will be done at run-time has many practical consequences. For example, if you execute the Haskell code

greet name = do
putStrLn ("Hello, " ++ name)
repeat3 action = do
putStrLn "Doing it thrice."
action
action
action
putStrLn "Done it thrice."
main =
repeat3 (greet "themagicalcake")

you get the following output:

Doing it thrice.
Hello, themagicalcake
Hello, themagicalcake
Hello, themagicalcake
Done it thrice.

But if you execute the similar-looking Python script

def greet(name):
print ('Hello %s' % name)
def repeat3(action):
print ('Doing it thrice.')
action()
action()
action()
print ('Done it thrice.')
if __name__ == "__main__":
repeat3(greet('themagicalcake'))

you get

Hello themagicalcake
Doing it thrice.
Traceback (most recent call last):
File "test.py", line 10, in <module>
repeat3(greet('themagicalcake'))
File "test.py", line 5, in repeat3
action()
TypeError: 'NoneType' object is not callable

instead. The Haskell value `greet "themagicalcake"` has type `IO ()`: it is a value that describes IO to be done at runtime. In contrast, the Python value returned by the call `greet('themagicalcake')` has type `NoneType`, and this value does not describe anything. Calling `greet` itself had the side-effect of printing "Hello themagicalcake".
Plenty of schools and colleges include a 'study skills' class. It's just usually in a 'general studies' class and focuses on mnemonics and mind-maps.
"This data, known as “CVVs” in the cybercrime underground, is sold in packages for about $15 to $20 per record"

Would it be terribly complicated to make single use credit cards? Like if you have an app from your bank (which they push on you these days, anyways), you could generate a new virtual credit card for every transaction?
> Also Airbnb and Uber have enabled lot of people earn livelihood without having to wait for trade union approvals for sharing taxi stands or getting hotel licences.

There were reasons those approvals and licenses existed in the first place, as a lot of cities are learning right now. That said, shortcomings were also revealed.

> but i feel it's gonna stay whether through Uber or other service(s).

I don't mind the other services, in particular ones that can take what works and what doesn't, and do it like civilized people do - by working together with the cities to provide said benefits in a legally above-board framework, and without disastrous externalities.

As for Uber, may it rot in hell.

> What about CocaCola, Pepsi, Amazon (and AWS) Google, Microsoft, Facebook, Nike and hundreds of other brands ?

I don't think any of these brands ever claimed they're a poor upstart fighting the good fight against the Evil Taxi Mafia (whereas in reality, they were VC-backed international corporation, leveraging their deep purse to conquer market after market, extinguishing local competitors).
OTT vs IPTV
Yes, I can see the design of D was made carefully.

D is actually a great language. I just "don't understand" why it's not massively used instead of more recent versions of C++, I consider newer version of C++ as a totally different language with more drawbacks than advantages. Half of new features are present to fix previous half baked features. This is quite embarrassing.

Sorry for my selection of words (and for the unrelated opinion, I had to rant), I'm not good at spending time to rephrase when the end content is the same.

I remember one time I spent the whole day browsing the website of D, everything actually make sense. There are still features that I wouldn't use, but this is what I expect from a programming language design. I was impressed by a lot of decisions.

I seemed to remember that I was a bit sad to not find proper performance benchmarks against other languages. I was intrigued because the documentation was so complete, it was just lacking this (maybe I just couldn't find them). It was a long time ago so it has probably been fixed. I will give it a try at some point.
Triflic Anhydride Market 2020
Damn, Im sorry for your loss. School, like university, is not just about being looked after by more competent people. Its a place where you not only learn academic disciplines but also begin to understand how the real world works - social hierachies, networking and building relationships etc etc. To an extent, its what you make of it.
Yes, I don’t think that you need microservices to be able to tackle Conway's law. At least it doesn’t have anything to do with each other.

You could still do microservices and still fail to deal with Conway’s law.
I figured it would be ok since it's been over 6 months since it was last posted and I only found out about it today :-)
German experts want African migrants given visas in exchange for cash
Copyright law specifies that a photograph or a scanned copy becomes an original work of art if there's a discernible original creative element present.

Copyright law doesn't define that creative element though. It's entirely subjective. And for good reason because copyright laws are intended to be universally applicable. Another legal principle is the principle of equality when applying a legal framework. A lot of discussion ends up halting in struggles over equal treatment.

This can be avoided in the context of digitization of historical objects though.

When a photographer is contracted or employed, part of the procurement process or the employment contract could include a waiver of photographer copyright.

However, this is a policy choice, not a requirement.

On 26 March 2019, the European Parliament adopted the Copyright in the Digital Market directive. Among all the upheaval about internet freedom, it also contains legal changes that make it more clear for member states on how to deal with cultural heritage in the public domain:

https://pro.europeana.eu/post/copyright-reform-passed-by-eur...

Now, Article 14 sounds like it's banning the practice of acquiring revenue through copies of public domain works. However... it's - again - far more complicated:

http://copyrightblog.kluweriplaw.com/2019/06/27/the-new-copy...

Ultimately, the hard part about copyright law is that it tries not to differentiate between specific formats and representations. And so, if copyright law bans the sale of reproductions of public domain works it would also, unintentionally, ban the sale of other reproductions: postcards, printed t-shirts, coffee mugs and so on: it would put a lot of souvenir shops out of business as well.
Haha! brilliant =)
VDOM itself is not a silver bullet either. One example is Imba (https://www.imba.io/) which compiles to JS and is supposed to be much faster. The "todo list" example they give is almost 50x faster than React. They use a technique they call "memoized DOM"
I saw in a recent tweet (can't find now) that React-based web apps were draining mobile phone batteries significantly faster than the comparison, because, with the constant re-renders, they were generating a heavier CPU load. This is something I had never thought about before.
I agree that he was wrong about that :)

Or to put things more accurately, he exaggerated for humor. It's a communications style. He was wrong if you read it too literally.

If you read him less literally, the basic point he was making was right.

If you start out in a language like BASIC, plenty of programmers never make it to the other side. And it applies much more to Java than to BASIC. With BASIC, everyone who goes into programming will move on at some point (there aren't BASIC jobs out there), and they'll be forced to learn something different. With Java, plenty of people learn it, work whole careers, and never know any better. That doesn't just prevent them from coding in Ruby on Rails or whatever else -- it makes them worse Java programmers too. They understand WHAT, but they don't understand WHY. They can't reason about things like abstraction from first principles.

You want to start out with a broad view of computation. From there, you then want to narrow. Java is okay for a junior-level course on OOP, but it's really, really lousy for a first exposure to programming, or a freshman course.

(I started out in BASIC too).
With microservices there's no way around it, as there's additional overhead when splitting a for loop between multiple services.
Won't stop people from jumping on the bandwagon though.
If I was an US citizen I would be highly disturbed by the level of corruption showed in this article.

I would be displeased if I would have anything to deal with Goldman Sachs and other companies involved in this scheme.

I would be angry if I were a malaysian national.
At the risk of sounding argumentative, I will suggest Textbroker does a pretty good job.

http://writepay.blogspot.com/2020/03/the-textbroker-solution...

I don't think the gig economy has to be an ethical disaster. I'm aware a lot of gig platforms are awful in that regard, but I don't think it simply can't be done well just because it mostly hasn't been done well.

"Ninety percent of everything is crap."
At a previous company, we literally did that, and also had to get our VM limit increased.

But it only gets you so far, its a cost optimization at the low end, but eventually it isn't "worth it".

You are checking your bandwidth use against the pool limit, then spinning up a new VM when you get close to the limit, but then back down the next month so you aren't paying for unneeded bandwidth, paying the extra $5 and not worrying about some custom price hack is a lot easier and less stressful.
We're exposed to a lot of it, but it's Hollywood depiction of violence, which is a very sanitized, stylized version. People back then had more direct contact with nature and death, it was part of their everyday life and all around them. Many kids would die young, so they all have lost some brothers and sisters. They were expected to work on farms and land, take part in all activities. How many kids today have ever helped parents to slaughter and butcher a pig? Can you imagine today's 5-6 years olds holding a bucket to collect the pig's blood. Or 8-9 y/o being sent by mother to go and cut of the head of a chicken with an axe, and then pluck the feathers and clean the chicken by pouring boiling water over it, all alone without any supervision? And everything else was rougher also. If there was a war it was perfectly common for soldiers to rob, rape, kill and burn down villages along the way. People (poor ones at least) accused of thievery would be killed without much trial, and usually in a very bloody manner (hanging, drowning, boiling, quartering, etc.). Their corps would be left in sight in public places for days. It was a very different world than today for a majority of people.
I agree. I'm curious why you chose to reply to my comment with this complaint when I was directly responding to the claim, which you quite reasonably view to be "misdirection," in the parent comment.
Logic programming comes the closest. (Not that the goal is fully achieved yet.)
>> It is fine for consumers to look at things from a consumer's perspective.

This, in combination with 'small government' and deregulation, is a recipe for a race-to-the-bottom disaster where everyone gets shafted (including the customer themselves) except the big corporations that run the whole show.

I think it has been sufficiently shown by now that making everything as cheap and abundant as possible, everything else be damned, is a net negative in the long term.
Read this: https://sarabander.github.io/sicp/
Your example is a bad one.

const a = { prop: "value" };
a.prop = "different";
Scientists explore the power of radio waves to help control fusion reactions
Nit: shouldComponentUpdate is a lifecycle method, not a hook. The corresponding approach in React's new world is React.memo.
Revolut has a feature that does exactly this, and it works great! It's the sole reason I have a Revolut account. I know my usual bank used to do this as well, but they stopped some time ago unfortunately.
Let's not forget that YouTube's ContentID system is a direct result from them being sued by Viacom et all: https://en.wikipedia.org/wiki/Viacom_International_Inc._v._Y....

If YouTube stops taking down these videos based on this "fiduciary duty" and they get sued again, will this union pay for the legal fees and potential damages? Yeah, not likely.
One per developer seems like a fairly loose upper bound.
> A team that fails to understand how to write modular code, is just going to write spaghetti RPC calls

This is interesting. I always assumed we were talking about good developers here.

I wonder what's a more likely cause for a failed attempt at microservices. Is it developer incompetence and lack of discipline, or is it environmental factors related to the product and the organization?
Try handing your rust implementation over to a Java programmer. Or even your C implementation, which might be worse because they might think they can hack it, but are likely to introduce nasty and hard to find bugs. With Haskell, once they've learned enough Haskell to be able to understand some of your code, if they modify it and it compiles it's (more) likely to be correct.
Those are on a much smaller scale though, and their target market is mostly formal-sector, whereas Amazon and WhatsApp's initiatives seem to be aiming much wider.
That article is from 2014. This one from 2017 says otherwise.

https://skift.com/2017/03/10/airbnbs-growth-is-being-driven-...

In the US as a whole, 64% were renting out an entire home unit. Obviously, some of those could be owner-occupiers letting their own home whilst on holiday themselves.

I have no trouble believing that Uber and AirBnB may have started out as facilitators of sharing. However, that is not what they have become.

I may be wrong in saying "most hosts". There is a potential long tail of thousands of not-very-active spare-room hosts. However, do such operators count much terms of numbers of stays and money spent?
Deliveroo cuts ~15% of staff as coronavirus challenges food delivery
Great resource, thank you for building it!
[Obsolete]
You don't. The closure ends, the stack is popped, `a` is disposed, and then, in another closure, you have this line:

const a = 1;

`a` was never re-assigned, but the value of the variable we call `a` changed. I think the key here is knowing that if you have the following:

function Foo() {
const [a, setA] = useState(0);
return <span>{a}</span>
}

`Foo()` will be called on every render, `useState` will only use its argument the first time it's called (and then after that just remember its value), and `a` will be a "new `a`" every time, after which, like all variables declared in a function, it's discarded when the function returns.