Hacker Newsnew | past | comments | ask | show | jobs | submit | more evanweaver's commentslogin

You can get a physical HDMI button so you don't even have to unplug anything: https://www.amazon.com/gp/product/B01L8LLP2G/


"4Kx2K@30hz resolution"

The issue is 4k@60.


Does something like this exist for USB-C devices? I have to plug and unplug a certain device to change it between machines.

Not full emulation and remaining "connected" - just the ability to press a button and change what the device is plugged into.


I have been looking for the same thing. I want to connect my 2 laptops to the same dell monitor via one usb-c port, charge them, use the mouse and keyboard attached to the monitor. Now I have to move the usb-c cable from one laptop to the other, which already started to leave a mark on the port enclosure.


Would the one in the article work for you? https://www.amazon.ca/gp/product/B01N6GD9JO


That doesn’t look like USB-C


It doesn't. Sorry, what was I smoking.

Edit: the only ones I could find with usb c were full KVMs and far more expensive. I would guess a female usb c to male usb 3 adapter might be a cheap workaround.


Yeah, I did use a switcher before I upgraded my resolution.


Congrats Guillermo and team!


> There are in fact distributed transactions, and cross shard joins. You can in fact do full cross shard ACID transactions.

The Vitess docs explicitly say that 2PC transactions are not isolated and are not ACID.

Did something change?


We will normally list it as ACI*D since there is a situation where you can break isolation.


What situation? Are cross-shard transactions ever isolated?


Yes they are normally isolated, however its only at a READ_COMMITTED level, and a nuance of the implementation is that you may see committed data rolled back by the protocol in the event of a failure. Its still technically READ_COMMITTED, but its an unexpected behavior from stock MySQL so we make sure to qualify our documentation.


What you describe is read uncommitted. From your own docs:

> A third party that performs cross-database reads can observe partial commits while a 2PC transaction is in progress.

Regardless of rollback status, the in-flight transaction will not be observed correctly across shards, for example, with a cross-shard join. It doesn't matter what the consistency guarantee within a shard is; this is not ACID nor is it serializable.


Its not, its still read committed. Its the same thing as if you had to read from two rows in a transaction, and your isolation was read committed, and both those rows would be modified by a different transaction. Its possible you read the first row, a transaction is committed and then you read the second row with the updates from the transaction. You have just read a partial commit. It is ACID and it is not serializable, the thing is MySQL lets you use higher levels of isolation like repeatable read or serializable which are very useful and today Vitess can't guarantee that in a 2PC.


Y'all really should hire me at some point. I've been building out transactional analysis tooling for Jepsen that can help distinguish between exactly these cases. :-)


Yes! We have it on our todo list to have you test out Vitess.


I may be just tripping over semantics here, but how can you consider data that may still be automatically rolled back to be “committed”? I thought that’s supposed to mean the data has been fully stored such that it can only be changed/removed by a subsequent transaction.


The data will be committed, but you may get a subsequent read that has the previous value, before it is overwritten by the final value. This would only occur if the shard where the commit is occurring fails, while the promoted shard replays the transaction before the final commit is propagated to the user. Since the shard as failed is impossible for a single transaction to experience this behavior, but an outside observer would be able to see this behavior. Transactionally everything would still be isolated, but outside the transaction you would see behavior you won't expect.


Private/restricted social networks do not work as businesses. They are antagonistic to both viral growth and hit content.

Many, many have tried.


There have been talks at GDC and elsewhere about this...my memory is that humans don’t like being surprised by a smart AI that silently builds up resources and suddenly and mercilessly betrays and annihilates them, which is the obvious winning strategy. Humans don’t even like the random battle results to be truly random but expect them to hew very closely to the outcome of the odds as presented. The AI is grindy and unsophisticated on purpose.


I believe you're thinking of Sid Meier's GDC 2010 keynote "Everything You Know Is Wrong" [1]. The entire talk is interesting, but section on player perception of probability is about 20 minutes in.

One takeaway is to be careful about how strength numbers translate into odds. If your strength is 100 and mine is 1, does that mean I have a 1% chance to out-and-out beat you? Your armored tank shouldn't have an even 1% chance of being completely annihilated by my club-wielding warrior (that's somehow still around by then).

The later Civ games have taken odds out of the equation, and I think it's for the better. Instead, the amount of damage each unit takes per combat depends on the difference in their strength deterministically. From my own perspective, this is overall more fun than 'randomly' having really strong units lose against weak units occasionally.

[1] https://www.youtube.com/watch?v=bY7aRJE-oOY


> Humans don’t even like the random battle results to be truly random but expect them to hew very closely to the outcome of the odds as presented.

Because of this Civ2 added health and firepower stats to units, random battles sometimes meant an ancient trireme could destroy a battleship, which is fun to imagine...


The classic example is a militia (the weakest unit in the game, relying on no technology at all) defeating a battleship bombarding it from the sea, causing the battleship to sink. :D


Warrior, actually. But yes. Militia required gunpowder.


Civ1 Militia == Civ2 Warrior

Warriors should never be able to defeat a battleship in Civ2 because of the new combat system. The AI cheats (of course); I have had armor go down to knights on deity level


This is not correct; the weakest unit in Civilization is the militia, and the unit you get from gunpowder is the musketeer. There is no unit called "warrior".

How do I know we're talking about Civilization?

> Because of this Civ2 added health and firepower stats to units

I think it's unlikely Civ II added stats in response to feedback from Civ III.


You're right about musketeers. https://civilization.fandom.com/wiki/Musketeers_(Civ2)

I was thinking of Partisans which spawn when a city is captured, https://civilization.fandom.com/wiki/Partisans_(Civ2); I think of militia when I think of Partisans.

However, the weakest unit in Civ 2 is definitely the Warrior: https://civilization.fandom.com/wiki/Warriors_(Civ2)


And the weakest unit in Civilization is the Militia. As I just said, there is no Warrior.

In the same way that Civ II cannot have made changes in response to Civ III, it also can't have made changes in response to itself.


Did they patch out the way supply crawlers completely break the end game? How do you get started simply with these mods?


Well I’ve only installed the widescreen patch. I’m not sure I have the time to get into all the other stuff they have!


Never had any problems with Da Bird wand.

https://www.dabird.com/da-bird


The SQL support? Yes, even that.


Nobody in industry understood how to apply Calvin until we did at Fauna. That is the only reason; the rest is engineering path dependence.


if you don’t mind sharing, I’m curious to learn more what was the main challenge was applying Calvin.

Thanks!


See @freels’ reply above.

I think it is fair to say that the Calvin paper is visibly incomplete and expresses some constraints in a way that makes them seem insurmountable when they are not; specifically, they are only constraints within the log, but do not constrain the database experience overall.

Applying Calvin to traditional RDBMS workloads was a very unlikely creative exercise because it required questioning these explicit constraints.

The Spanner paper also leaves a lot unexplained, but it is less obvious until you are too far down the path to turn back. After all, it worked for Google. Calvin did not have that real-world proof. Combine that with the pessimism of the paper itself and nobody was willing to pick it up.


> Are you certain a MySQL SLA-level support contract would have solved their scalability issues?

This pitch may have been mentioned in passing to me but I don't remember. From the perspective of I and many others who ultimately solved the scalability issues, the MySQL boat was simultaneously sinking and on fire, while nobody knew who the captain was supposed to be. An insurance policy that promised that somebody with a badge would dedicate 8 hours a month to buffing out scratches was not useful.

It was less "it's OSS, we don't need to pay" and more "only God can help us now".


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

Search: