Hacker News new | past | comments | ask | show | jobs | submit | clayg's comments login

IME you have to be willing to recalculate the summaries up to some kind of consistency window.

Yes you may be changing history and you may have a business reason not to address that revision immediately (you've already billed them?) - but the system can still learn it made a mistake and fix it (add activity from Jan 30 evening that comes in late to the Feb bill?)


But can't any log be implemented as a CRDT? Was that not implied in the post? I didn't read it that close...


CRDT is really only useful when inconsistencies could be acceptable in some situations and so it depends on the application.

For something that is trying to solve the general problem of consistent single ground-truth log, you can't really do much better than Spanner.


the "conflict-free" in crdt is like miller high life being the "champagne of beers." it really means conflicts ignored and conflicting items discarded by established rules, which works well for some use cases, but for many does not.


I feel like I have some intuative understanding of how go achieves colorless concurrency using "go routines" that can park sync/blocking io on a thread "as needed" built into the runtime from the very begining.

I don't understand how Ruby added this after the fact, globally to ALL potential cpu/io blocking libraries/functions without somehow expressing `value = await coro`

Python is currently going through an "coloring" as the stdlib and 3rd-party libraries adapt to the explicit async/await syntax and it's honestly kind of PITA. Curious if there's any more info on how Ruby achived this.


> I don't understand how Ruby added this after the fact, globally to ALL potential cpu/io blocking libraries/functions without somehow expressing `value = await coro`

In Python gevent can monkeypatch the standard library to do that transparently (mostly). I assume it works the same way except better: have the runtime keep track of the current execution (mostly the stack and ip), when reaching a blocking point register a completion event agains the OS then tell the fiber scheduler to switch off, the fiber scheduler puts away all the running state (stack and instruction pointer) then restores an other one (hopefully one that's ready for execution) and resumes that.


Java has shown that a sufficiently strong runtime can take the burden onto itself long after the facts have been established.

Python in contrast has a runtime ultimately held back by its deep integration with the C-ecosystem which creates more black-boxes inside the runtime than you can find inside a swiss cheese.

Similar with C# and Rust. No strong runtime, no colorless functions for you.


Greenlet has been available for Python since 2006. Troubles with asyncio are mostly self-inflicted.


> Similar with C# and Rust. No strong runtime, no colorless functions for you.

Zig is the exception here but not sure how well it worked out in practice.


Well, the feature is temporarily killed, but users can enjoy zigcoro which exposes a similar API until the old async is back.


C# has a strong runtime.


The C code in Ruby has to yield to the scheduler when it detects a fiber.

For historical context, python had several "colorless" attempts but none achieved widespread adoption.


Unless I'm misunderstanding: isn't the JVM's virtual threads another instance of this colorlessness?


I think you're right. People describe Java as being colourless.


this line had me rolling. Love it!


Ambition might stand out in the same list as laziness. Plus I'd be reticent to tell programmers to "be more ambitious!" - I see greenhorns esp just trying to do too damn much at once.

In the context of "code that is going to be reviewed" maybe even "vanity" might have been closer to what he was getting at? (did you even RUN this?) Except us old neck beards obviously don't care about how WE look ;)} - just how our code reads.

I think "take pride in your work" would have substituted well; but given the options, maybe hubris was fine - he explains what he means in a couple of sentences.


Or just "pride" and then an explanation.

Using a word and then redefining it seems very humpty dumpty "a word means what I want it to mean"


I have this theory that what-about-ism as a debate technique, elevated by more readily available un-helpful "facts" (e.g. single varient evaluation of complex system), hased cause people to forget the utility of facts. When you and I have a REAL disagrement about something importand and complex the FACTS that we can both agree on and take for granted are what ENABLES us to find a new higher resolution understanding - we can get further because we can focus. I try to look out for what-about-ism disguised as refuting evidence, and approach people's belief epistemologically.


I think "cloud gaming" was pretty accurate:

https://en.wikipedia.org/wiki/Cloud_gaming

... given the "client" in this case was just telnet and the game was "running" on another machine "in the cloud" [1]?

1. like literally on alibaba, amirite?!


> This is by design. As long as it's profitable to exploit labor, nothing will change.

Do you by chance believe in "Intelligent Design" as an explanation for complex biological systems? It's not obvious to me that inefficient social systems (i.e. not optimized for worker/human happiness) require "design"? If we create an organism who's survival condition is "generate profit" won't it just do that as efficiently as we let it? When I think about exploitative systems as requiring "malice by design" I rarely seem to uncover a solution other than "wait for someone else to be less evil" or occasionally "live with it and treat the worst of the symptoms".


To me the irony is that you seem to narrow Intelligent Design to merely mean a fatuous scientific theory that is unnecessary for explaining the development of complex biological systems. But the very inception of Intelligent Design was in fact "malicious by design."[1]

Intelligent Design was the functional equivalent of `s/creationism/intelligent design/g` in a creationist textbook to get around a Supreme Court ban from 1987. That revised textbook was then banned by a district court in 2005.

I'm fairly certain that Ken Miller and the many others who fought to keep that book out of classrooms in 2004-05 understood clearly that the "Intelligent Design" side was acting in bad faith. I'm also fairly certain they weren't constrained by their knowledge of the "designed malice" of the other side but instead used that fact to rally more citizens to their cause.

[1] https://www.newscientist.com/article/dn8498-judge-intelligen...


This maybe isn't the place to get super political but I'll give it a shot.

The systems of production aren't optimized for worker or human happiness, they are optimized for profit making. That is certainly a design choice, at least on a firm-by-firm level. Maybe nobody sat down and said, "how can I make my workers miserable today?" but they have certainly sat down and said, "how can I profit more today?" And typically, when there is a choice between that profit and workers' happiness, profit wins.

Once all or most firms start operating by this logic, the exploitation becomes inescapable. If the firms are smart, they will band together to use some of their profit to influence politics, shaping systems that enable them to make more profits.

"Live with it and treat the worst of the systems" would be sort of like the American Democratic party: enact reforms and put restrictions on what firms can do so that they can't exploit so much. This rarely seems to work, first because firms find a way around restrictions, second because the restrictions are often shaped or even written by the firms that are to be regulated. (If you're going to be regulated, you might as well make it happen on your terms.) As you said, it treats the symptoms but not the cause.

I don't know about "wait for someone else to be less evil", but I suppose that would be people who can see the problems with the current system but propose no solution. Also, you might have some people in this category who do think that the system could work, if only people were nicer to each other. But again, the problem isn't a lack of niceness, it's that the system is optimized for profit at all costs; given a choice between niceness or profit, profit usually wins.

An alternative would be to actually treat the cause of the problem. Have a system where firms are optimized for human needs rather than for profit.


Social systems is created by Humans consciously. Complex biological systems are by evidence we have, created by evolutionary process and in fact, not intelligent.

Company policy doesn't want you to disclose your salary. I think this is an explicit thought out design. Companies doesn't want worker union, history tells us why.

Church policy to stop people from learning how to read. Church want you to keep believing in God and doctrines and has mutual benefit with the monarch via believe in Divine right.

The people will work towards less control. Just as in computers, centralized power is simply not scalable. We will eventually move towards something like worker-owned cooperatives.


I really like this line of questioning as a response to the gp. hopefully I will be able to use this myself.


Another fun/easy-to-follow intro to basic Reed–Solomon coding

[...] by the end of this post, we will have written a complete working implementation of a simple variant of Reed–Solomon coding, not entirely unlike what is used in [OpenStack] Swift itself. No prior knowledge will be assumed except a working knowledge of high-school algebra and the Python programming language.

https://www.swiftstack.com/blog/2015/04/20/the-foundations-o...


SwiftStack - http://swiftstack.com/jobs - San Francisco, CA (preferred)

We are making running private cloud storage awesome. Our core product - the SwiftStack Controller - makes it easy to configure, deploy, manage and monitor your own personal Swift[1] cluster. It's a Django app, with a background task and alerting/eventing engine, a 0mq based remote execution agent to control the fleet, and statsd feeding graphite for telemetry.

But our core deliverable is OpenStack Swift. OpenStack is the open-source alternative to AWS, and Swift is Object Storage (think S3). And our team is actively driving new capabilities[2] with the open source community.

Our customers are managing distributed storage systems growing at dozens or hundreds of terabytes a month - we're literally taking on big problems - wanna help? We're primarily a python shop, actively recruiting Sr. Engineers and opinionated UX designers who have experience working with a Django team - but we've got lots of room for experience at all levels, if you're interested check us out:

https://swiftstack.com/jobs/

[1] Swift: https://wiki.openstack.org/wiki/Swift

[2] Storage Policies in Swift: https://swiftstack.com/blog/2014/01/27/openstack-swift-stora...


Join us for AI Startup School this June 16-17 in San Francisco!

Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: