HNHacker News
TopNewBestAskShowJobs

XCabbage

1,167 karma · joined April 11, 2018

markrobertamery@gmail.com https://stackoverflow.com/users/1709587/mark-amery https://github.com/ExplodingCabbage
submissionscomments
XCabbage··on Untyped Python: The Python That Was
With Python + mypy you get this middle ground as well. No need to type-check before you run your code, if you don't want to.
XCabbage··on Untyped Python: The Python That Was
You get 99% of what you want by just using Python with Mypy (as a pre-commit hook, editor plugin, and/or CI step). Python has static type checking; it just comes in the form of Mypy instead of being baked into the Python executable.
XCabbage··on The Coming Enshittification of Public Libraries
> their first sale copyright doctrine is totally different from the US and most of the rest of the world

This sounds interesting but I couldn't discover what you mean in 30 seconds of googling. Explanation/source?

XCabbage··on InfluxDB Cloud shuts down in Belgium; some weren't notified before data deletion
This was announced months in advance (albeit not in a way that could possibly guarantee that most customers would ever discover it) so I don't think your speculation is true. As best I can tell from the information publicly available, they really did shut down the data center and delete all data simply to cut costs with no external push whatsoever.
XCabbage··on InfluxDB Cloud shuts down in Belgium; some weren't notified before data deletion
There's no regulatory consideration involved as far as I can tell. On Slack at https://influxcommunity.slack.com/archives/CH8TV3LJG/p168894... they explain the shutdown thus:

> "The region did not get enough usage or growth to make it economically viable to operate, so it became necessary for InfluxData to discontinue service in those regions."

So it's worse than you believe. Yes, the handling is a scandal for all the reasons you say. But they weren't even pushed into this by some regulatory issue; it's pure cost-cutting.

XCabbage··on Don't Take VC Funding – It Will Destroy Your Company
Hmm. I can believe this happens, but definitely not all VC investors take board seats. In fact I'm not aware of this having happened at any of the 5 startups I've worked for in my career, despite having at least partial knowledge of who made up the board of 3 of them (for at least 1 of whom I know the entire board membership and can say with certainty there were no VC plants on it).

Would be interested in stats on how normal this is or information about VCs' policies on it.

XCabbage··on InfluxDB Cloud shuts down in Belgium; some weren't notified before data deletion
The link to Slack in this post by "developer advocate" Jay Clifford is a rabbit hole worth diving into a bit: https://community.influxdata.com/t/getting-weird-results-fro...

Find your way into that Slack workspace via https://www.influxdata.com/blog/introducing-our-new-influxda... and you'll discover some interesting things:

* That the only reason being given in that thread for the shutdown is "The region did not get enough usage or growth to make it economically viable to operate, so it became necessary for InfluxData to discontinue service in those regions.". i.e. there's no regulatory issue here like other answers speculated - just pure cost-cutting.

* That on July 5th, a couple of hours before they started shutting everything down (based on the shutdown timeline at https://status.influxdata.com/), that same "Developer Advocate" announced that they were suspending their live "office hours" sessions for July.

* Multiple people are asking for help after finding that they can't connect and getting ABSOLUTELY NOTHING in the way of support from the company. It's literally falling to _other users_ to tell them that all their data is gone.

* One person chiming in, Matthew Allen, DID have a colleague who saw the notification email, but notes that...

- it was a pain for him to migrate has data to a different region due to InfluxDB Cloud's rate limiting, but that he did it anyway

- ... but that the documented migration process doesn't seem to have worked properly anyway (given that some of his data points have ended up as nulls)

- plus on top of all of THAT, even after doing everything he was supposed to do, he still can't log into influx cloud after the migration because when he logs in he gets automatically redirected to the no-longer-existing cluster and hits an error screen

What a clusterfuck. Shame on everyone from Influx who had a hand in this - the CTO Paul Dix who's turned up here on Hacker News to blame his customers for Influx's negligence, Jay Clifford the Developer Advocate for a spectacular failure of developer advocacy, and anyone else on the team who was close to this and didn't push for brownouts, blog posts, a mention in the newsletter, retention of data for some window after the final shutdown date, or any of the other obvious measures that could've made this less of a catastrophe. The multiple people noting that they were able to receive the company's newsletter but did not receive the notification that it was about to delete all their data tell me everything I need to know about this company and its priorities. I will never willingly do business with them again (although we used them at a startup I worked at once) and will advocate against any time I hear a colleague suggest using them.

XCabbage··on Don't Take VC Funding – It Will Destroy Your Company
> VC Funding Means You Will Sell Your Company

> Remember when I wrote earlier that the VC dudes definition of “making everyone happy” after investing in your company doesn’t mean making it profitable? So now you might ask: Okay, so what do my VC investors want? ... They want to make a lot more money.

> ...

> Now, all of this might be none of your business, you might think. But it is! Because now the inevitable consequence, once you’ve taken VC funding, is that the objective of your company has changed: You’re no longer building your company the way you like it. You’re building your and the VCs company so that they can sell it, for a price higher than the one they paid. There are no alternatives. The course is set. You’re building to sell.

Why? Why do you have to respect the VCs' desires? Why can't you take VC funding, then use it to build a company that yields modest returns and live a comfortable life running it (and paying modest dividends to the VCs that over a few years return their investment)? Doing so would (I presume) not constitute any kind of breach of fiduciary duty, so what right can the VCs possibly have to enforce their preference for a more aggressive strategy?

People commenting on startups often imply - like in the quote above - that VC investors ultimately control any business they invest in, and not the founding CEO, even when that founding CEO holds the majority of the voting stock. This strikes me as bullshit. At least, nobody ever spells out the mechanism of control, and their inability to do so makes me think they don't know what they're talking about.

If I'm right that the narrative of VC control is bullshit, then what's the alternative explanation for why CEOs so often choose to pursue aggressive growth and sell their "babies"? Simple: the CEOs themselves want big money. It's not that the evil VCs are forcing the CEOs to do something they'd rather not do. It's that the VCs and CEOs are aligned in their objectives in the first place.

XCabbage··on Ask HN: Disabled and out of work for years, but need some side income
Apex is based on Java, not on JavaScript.
XCabbage··on $90k to $900k: Pay transparency laws usher in baffling pay ranges
What's your basis for this claim?
XCabbage··on Microservices are hard
This doesn't make much sense. "Interesting business conversations" should map 1-to-1 with microservices but also each microservice must perform a "simple, idempotent business task" but also microservices can't be coupled to a database? Okay, enjoy developing your business with no data persistence whatsoever and where your architectural principles forbid you from ever so much as sending an email.
XCabbage··on Show HN: Futurecoder – A free interactive Python course for coding beginners
I think the parent's point is that you can't quite do "whatever you want" with it anywhere in the world, at least until Alex dies, because in some countries authors have inalienable moral rights that cannot be waived by any agreement or license. For instance, if you go to France and distort or mutilate Alex's work in a way that harms his reputation or honour, he will be able to sue you for it, and no possible license will waive his right to do so; there is nothing whatsoever other than commit suicide that he can do to grant you the freedom to mutilate his work in a way that harms his honour while in France.
XCabbage··on Show HN: Futurecoder – A free interactive Python course for coding beginners
I think breck's point is that, since many jurisdictions in the world grant authors inalienable rights over their works that cannot be waived nor transferred by any means (e.g. some "moral rights" in France and maybe other European jurisdictions are unwaivable), no license ever makes a work "100% free".

Which is true, but not spelt out clearly by breck, and it's kind of annoying for it to be phrased by breck in a way that leaves unclear whether it's merely a semantic nitpick or an actual suggestion that the author should've done something more to waive rights over the work. (I don't think it's the latter; I'm unaware of anything more the OP could do to "fix" this "problem" other than kill himself, and I'm not certain if even that would be sufficient in all jurisdictions.)

XCabbage··on Rogue geoengineering startup attempts to affect atmosphere despite warnings
The critics don't exactly provide a persuasive case - neither here, nor in the previous open letter on the topic at https://climateandcapitalism.com/2022/01/17/climate-scientis.... Indeed they argue their case so badly that they actually make me strongly support experiments in solar geoengineering where previously I would've been unsure.

They do a terrible job of arguing against this tech on the basis of risk. They suggest that it could be counterproductive, but the ONLY mechanism they even suggest for how this could be the case is that geoengineering could reduce the incentive to tackle climate change in other ways, such as by reducing CO2 emissions. But if geoengineering works and has no problematic side effects, then... so what? This is pure status quo bias; the argument would be just as valid (or rather, just as absurd) if we flipped it and said that all attempts to reduce carbon emissions are dangerous and immoral because they reduce the incentive for solar geoengineering. This mindset - where attempting to develop any new safeguard against a danger is presumed to be unethical on the basis that it could reduce the incentive to use other safeguards - is not how we think about any other kind of risk and I see no reason at all why climate change risks should be a special case.

And it gets even more aggravating when they argue against doing even small-scale experiments with this tech on the basis that "The current state of science is not good enough". Again, unless you are articulating some kind of plausible downside to the experiment, this is a fully general argument against all science. It makes no sense to argue against research into a technology on the basis that we don't yet know whether the technology will work - that's what the research is for!

I have only a layman's understanding of climate science, and my first instinct is to be scared of attempts at global-scale climate engineering going catastrophically wrong and destroying the world, but if all the world's climate scientists can't articulate anything that I would understand as a risk and instead seem to be terrified by the prospect that the tech will solve climate change so effectively and harmlessly that it makes their ideologically preferred set of social changes unnecessary, then that sounds fantastically reassuring and I wish everyone working on this tech the best of luck.

XCabbage··on A simple guide on words to avoid in government
Wait, what is a portal, then, and where are you getting that definition from? I have been a web dev for a decade and I also understand a "portal" to be a broadly applicable term meaning basically any webapp that grants access to some data. Did it once have some narrower meaning, in times long past before I was a dev?
XCabbage··on Kiwifarms Dropped by Their ISP
Like who?

Whenever Kiwi Farms comes up, I see these claims made about it - that people were threatened with violence, that the forum was used to coordinate harassment campaigns, that home addresses were posted, etc etc - but never with any specific examples shown of any of that happening.

XCabbage··on PayPal closes account of UK's Free Speech Union without explanation
How did they break the Ts & Cs?

How have they ever scammed anyone?

These exact same talking points were all over Twitter, but with no more substantiation there than you've given here.

XCabbage··on Tell HN: Google Cloud suspended our production projects at 1am on Saturday
How would invoice billing even reduce the risk of this outcome? Surely any system with more manual and asynchronous steps involved is MORE likely to result in Google erroneously claiming you haven't paid, not less? I don't grasp what the logic behind this suggestion is even meant to be.
XCabbage··on Copilot sells code other people wrote
People I've worked with have different philosophies on this, but personally, if you check in code that is distinctive enough that I can identify the source you copied and pasted it from, and you provided no indication (whether in a comment or a PR description) that you copied it, I will really get quite grumpy at you about it.

Way too often I burn half an hour needlessly during review in one of two ways:

* trying to figure out how the heck someone figured out some "magic" code that achieves something by invoking a bunch of poorly documented library or framework internals, and trying to reverse engineer WTF all the magic does by diving into the framework's source... only to eventually think to google the whole snippet rather than each individual method call, and discover it's copied from a Stack Overflow answer

* trying to figure out why something was written in an unidiomatic or overcomplicated way rather than a more obvious approach, and commenting at length on how I'd simplify it... only to eventually realise it was copied from a Stack Overflow answer

Attribution isn't just about making sure the right person gets credit, or about license compliance; reviewers and maintainers frequently need to be able to see where stuff was copied and pasted from in order to do their jobs effectively, even for snippets of just a few lines.

XCabbage··on Shenanigans on Microsoft Feedback Hub
Editing of answers is fine - by anybody, not just mods. That's because there's a clearly shown "edited" section displayed at the bottom of the answer, along with the editor's name, right next to the "answered" section showing the original author's name, indicating to anyone who reads the answer that it's a jointly-authored post that isn't entirely the original author's work. You can also look at the revision history to see exactly who wrote what. There's no false attribution there.

Comments don't have this history or indication of being edited by a third party, though, which is why only moderators have the power to edit them and most such edits are considered unacceptable and banned by policy.

XCabbage··on Shenanigans on Microsoft Feedback Hub
> somebody at Microsoft edited a critical comment that I made earlier this week to simply read “hello there”, still under my name

Moderators on web forums everywhere need to learn that this kind of editing, when done without a publicly visible indication that the post was edited against the nominal author's will, is unacceptable. I've gotten into this argument on Stack Exchange in the past (although fortunately on Stack Overflow at least the mods already have a policy against this - they can delete a comment or leave it standing but may not put words into someone's mouth). It's especially bad when, as is the case here, the edited comment reflects poorly on the author.

It's not just discourteous, it's a tort in at least the UK where I live (namely a violation of the "moral right" against "false attribution") and likely many other jurisdictions too. Do this enough and eventually somebody sufficiently litigious will sue you, and you'll deserve it.

XCabbage··on A curated list of warez and piracy links
> How are films supposed to get funded if people get them for free?

Let me pay money and download a DRM-free mp4 that I can keep forever and watch anywhere. I'd do it and so would a sizable percentage of existing pirates.

> The latter costs money, but is more convenient.

Not really. If my internet connection is fast, I can download a movie in a few minutes and watch it in VLC, which is more user-friendly than any web player. If my internet connection is slow, streaming won't work anyway. Maybe there's a medium-speed sweet spot in between for which streaming is more convenient, but I suspect only a minority of users occupy that sweet spot.

> Illegal streaming services are not viable because they're centralised and easy to crack down on

No, illegal streaming services are not viable because torrents exist and people prefer downloading movies to streaming them. People who prefer legal streaming services over illegal downloads do so because of the legal vs illegal bit, not because of the streaming vs downloads bit.

XCabbage··on [dead]
Care to share sources corroborating any of this?

All I can find is anonymous stuff on a website called http://techrights.org/ which has a series of articles trying to in some way associate Nat with [redacted]'s domestic violence.

The "best friend" claim seems to have started with a weird "teaser" post on techrights.org wherein an anonymous source claims that "many others" can confirm that [redacted] was close to Nat. That of course doesn't even come close to establishing that either of them considers the other their "best friend", if it's trustworthy to begin with.

Then techrights.org cites their own teaser in other posts as saying that [redacted] claims Nat is his best friend (not true, or at least not supported by the source).

Now you are, I guess, using that as your basis to claim that they ARE in fact best friends.

I realise it's possible you're entirely honest and have sources I don't, but this looks like a pretty cynical smear job to me, especially given that none of the sources I've managed to find asserting that the two were close date from before this domestic abuse case. I don't have any insider knowledge, but the superficial appearance of all this is that a handful of activists with something against Nat have cooked up this "best friend" narrative for some reason, gradually escalating the claim each time they cite each other, and ultimately it all hinges on an anonymous source saying that other anonymous sources say that the two were close once.

XCabbage··on Leaving MySQL
Huh. I was sure I was right about this but I tested and realised you are correct. CREATE INDEX (even with CONCURRENTLY) gets blocked by reads while waiting to acquire the lock it needs, but it doesn't block reads during that time.

I was getting confused because I'd seen my attempts to CONCURRENTLY add indexes time out waiting for locks, and had also experienced some of the other kinds of DDL that block reads while waiting for their lock (see https://dba.stackexchange.com/q/293992/18607), and I guess I just fallaciously assumed that index creation therefore also blocked reads without ever having tested it.

~Will edit my prior post to add a note about the error!~ Nope, doesn't seem I'm allowed to edit it any more.

XCabbage··on Leaving MySQL
Having used both MySQL and PostgreSQL enough to have been annoyed by features of both of them and fall into a bunch of their traps, I feel inclined to point out a few ways in which MySQL is better, most of which relate to the initial learning curve.

1. MySQL has the better CLI tool. psql is full of minor annoyances, like its cryptic and unmemorable backslash commands like \d for schema inspection, or having a pager turned on by default for query results that are more than one screen length.

2. Postgres has a deeply unintuitive concept of "USER"s and "ROLE"s where actually those are the same thing, and commands like CREATE USER and CREATE ROLE are thus basically synonymous (albeit with slight differences in default values). Worse, lots of the docs pages relating to specific commands don't highlight this fact at all. A majority of web devs I've talked to about Postgres have at some point complained about how they don't understand the permissions system or how ROLEs work.

3. While MySQL enforces that a foreign key from column A -> column B requires an index on both A and B, Postgres only requires a foreign key on column B. Maybe this freedom is nice if you know what you're doing, but it's a major footgun otherwise, since it means that deleting or updating rows in B has a time cost that scales linearly with the number of rows in the table A belongs to.

4. MySQL has a handy ON UPDATE current_timestamp shorthand for creating updated_at timestamp columns, which Postgres lacks, requiring you to use a trigger to implement such a column or move the logic to your application layer.

5. MySQL's "online DDL" features allow making lots of kinds of schema changes without ever holding a lock on the table being updated. In Postgres, by contrast, any schema change, even adding an index with the CONCURRENTLY option, needs to at least momentarily hold a totally exclusive lock that blocks all writes and reads on the table. Worse, as soon as an ALTER TABLE statement starts waiting for that lock, it blocks all new reads and writes against the table. This makes all schema changes in Postgres much more dangerous to the naive; even one that's theoretically able to happen concurrently with queries will hang your application if there's already a long-running query going against the table to be modified. It also means that at scale you need to roll a bunch of your own tooling to apply schema migrations safely, where you run them from a connection with a very short lock_timeout and wrap them in some code that retries on failure to acquire the lock. I don't remember any of this crap being necessary in MySQL.

Maybe Postgres is still better; in particular, maybe it's more performant in a way that outweighs all these nuisances. I don't really know because I've never done any head-to-head comparison to see how the performance of the two would differ in a given scenario, and so the performance differences aren't something I've had a chance to witness as an ordinary dev using both databases. But I just want to make clear that there absolutely is another side to the story!

XCabbage··on Disclosure: Another macOS privacy protections bypass
Don't tease us - what was your exploit? Just from the description, I'm happy taking a guess that this is going to involve somehow exploiting the browser cache (e.g. via timing how long it takes to request an image from another domain that may or may not have previously been cached) to determine whether the user has visited a page. That was first written up by academics decades ago, and has since been independently invented by several people (me included), but wasn't fixed as of whenever I last checked a couple of years ago.

Is my wild guess right? :)

XCabbage··on Ask HN: How to improve code quality while maintaining decent velocity?
This mindset is toxic. Obviously teachers and managers wield some power to influence the success of those beneath them and have some responsibility for it, but they do not wield total power and should not bear total responsibility. In the end, some people have personal failings that you cannot fix, and that is on them, not on you.

But it's not just that this attitude is unfair on the teacher/manager, it's that it's unfair on the other people they're responsible for. As a teacher or manager, you have finite time to devote to multiple people. If you make it a matter of policy that you will take the time to answer any question, no matter how unnecessary, and make no attempt to discourage avoidable questions, then you are in effect deciding that you will devote the majority of your time to the laziest, most selfish individual you're responsible for, while spending zero to little time on people who are too meek to make demands on the time of their constantly-busy mentor. There's nothing noble about what you're proposing here; it's an abdication of the responsibilities you have as a manager or teacher.

XCabbage··on Man sentenced to prison after assault of domain name owner who refused to sell
As the self-defence crowd like to say, "compliance does not guarantee safety".

The attacker in this case:

* Was not just threatening the victim, but physically attacking him even as he complied with the attacker's instructions.

* Was committing a serious felony for which he would be facing a long long prison sentence even if he left the victim alive (as demonstrated here!), meaning the rational self-interested course of action would be to execute the victim after getting what he wanted, to stop him from identifying the attacker.

Whether or not I'd have the courage and presence of mind to do it myself in the victim's place, resisting in this case seems to me like exactly the correct thing to have done, and I suspect it saved the victim's life.

XCabbage··on Getting Pagination Wrong (2016)
If I am stupid or using an application that doesn't have easily-Googleable documentation on its search syntax, then using a timestamp-based search filter may well not be possible for me.

Even if it is possible, it may be more work to look up the syntax than it is to zero in on the thing I want by page number.

XCabbage··on Ohio bill would allow students to be scientifically wrong due to religion
Care to expand?
← PreviousPage 3 of 7Next →