7,485 karma · joined February 28, 2013
What's next, are we going to declare web browsers to have a "RCE Vulnerability" because they allow you to download programs from any site which may or may not be secure and then execute them?
Or, hey everyone, did you know that if you live in an authoritarian state, the Government can do bad things to you?
Why do you say that? I do have sympathy for people in such countries and circumstances, but this isn't about that. It's about corporate compliance. For better or worse, corporations cannot just do something because it's a nice thing to do. They have to comply with the law in both the country they are based in and operate in, as well as in any country any prospective remote workers might be in.
I also never claimed to have any concrete knowledge. It's entirely possible they are doing everything correctly. I just find it odd that they are reportedly doing something that many companies do not do due to it being legally complex, and also their CEO is spouting off a bunch of unwise statements on public forums while being actively sued, which any sane corporate lawyer would strongly advise them not to do.
Given that, and the behavior we've seen from Matt and Automattic so far, what are the odds that they've actually got a bunch of really great international accountants and are doing everything correctly everywhere, versus they're just ignoring all of the tax laws and winging it, and are therefore at high risk of getting smacked down once the relevant authorities get wind of what's going on there?
I figure the whole thing is a corporate whine-fest over who makes more money from actually hosting Wordpress sites.
I don't particularly love PHP, but you don't need to touch it if you don't try to write any plugins. Yes, some of its practices are pretty wacky, like every plugin has full access to the filesystem and database to do basically anything, and the system expects to be able to update code files in place from web requests, but meh, just give it it's own $5 server and let it do its thing, and definitely be very careful which plugins you use and how you get them.
What you get in return for this is a perfectly fine CMS that anyone with basic computer skills can run. Yeah, static site generators are cool and all that from a tech expert's perspective, but nobody who isn't a tech expert can actually do anything with them, and oh, by the way, the ability to make any changes at all typically involves at the very least SSH access to the host server with full write permissions.
In Git, I can just create a local repo for anything, and I don't have to decide where I want it. I could never push it anywhere, or push it to a private hosted repo to collaborate with a person or team, or push it to a public repo to open-source it, and change between any of those at any time. I don't think you can really do that with these hosted systems. You could spin up a local CVS server if you really wanted to, but if you later decided you wanted to open-source it on Sourceforge, don't you have to abandon the history and publish it there as-is?
That said, my experience has been that adding business features in Rust apps is quite fast indeed!
Many of these earlier systems sound terrible and hacky to us, but they were the best that was available at the time. Systems to "lock" files you were working on were pretty common because basically nobody did merges well. Most of them were based on having a server to manage the whole thing too, so they were only really common in corporations and larger and more mature hobbyist teams - this was also before you could spin up a cloud server for most things with a few keystrokes and $5 a month. It's low-effort to spin up a local Git repo to track your work on a tiny personal project, but nobody's going to set up a CVS server for that.
Anybody remember Joel On Software's 12 Steps [0], written in the year 2000, 5 years before the Git project was started? Where "use source control" is Step 1? There's a reason why that's there - at the time it was written, source control was clunky and a pain in the ass to set up, so a lot of smaller companies or ones with less mature development teams never got around to it.
I may be getting a little "old man yells at clouds" here, but be really thankful that Git is FOSS, ubiquitous, works great for 98% of projects, and is superlatively awesome compared to everything that came before it.
[0] https://www.joelonsoftware.com/2000/08/09/the-joel-test-12-s...
I'd also note that one of the reasons I prefer doing such things in person is (in addition to not taking up too much of the candidate's free time) that if they misinterpreted something or are going off in the wrong direction or something, I can correct them right away instead of letting them waste a bunch of time. This also lets you see how they tend to interpret instructions and take criticism and corrections.
It's also IMO a failure mode for a candidate to get a simple task that should be done in 5-20 lines of simple code and try to build some over-complex super-modular and extensible thing for it, and resisting correction on it not needing to be that over-engineered.
If you can't, or can just barely, complete fizzbuzz in the allowed interview time with a lot of coaching in your language of choice, then you definitely aren't ready to work as a SWE. If you breeze through all my extra sections in half the time, then you're great. Partway through, and you're probably a decent junior to senior engineer.
You SHOULD be working with a good lawyer ahead of time. You should NOT be regularly suing your clients. Actually suing is expensive, time-consuming, and painful.
You should have a solid, enforceable contract set up ahead of time that you require new clients to sign, and get your lawyer involved if they want to change anything. The contract should ensure that you are within your rights to stop work and take away things they want if they aren't paying on time. If you do it right, you have a smooth and easy escalation path for non-payment, they're the ones who find themselves in a bad situation and have the option of either trying to sue you or just pay you the originally-agreed-upon amount.
I'm not a lawyer or your lawyer and don't even know what jurisdiction anyone is in, so don't do anything without consulting one. But the idea is something like, you only transfer control of servers and services to the customer upon being paid in full, no exceptions, and if they are behind on payment by some particular time and amount, you are explicitly within your rights to shut down services or block their access until such time as their account is paid up.
It's interesting how a good contract is kind of like a good program. The happy case is only like 20% of the work, the other 80% of the code or contract is all about detailing every possible way the happy case could go wrong and exactly what happens when each particular way of going wrong happens.
* The code can't be run outside the original researcher's undocumented special snowflake system
* A fellow scientist who understands the domain can't understand what the code is doing and so is unable to verify that it isn't making any mistakes
* It'd be really nice if there were some sort of test cases that could verify that the code in question produced results in line with what the scope of the paper in question considers to be established science in that domain before it was applied to the experimental data - probably not always possible, but it'd be good to at least try
Yeah I know this doesn't touch the dozens of other reasons the whole institution is in trouble, and for those reasons usually nobody who has the skill and time to properly review the code actually reviews it carefully. For that matter, most scientists aren't very good at writing code that's easy to understand and will run everywhere. Just one more set of things that ought to go on the list of things that really should be changed.
1. That's exactly why I prefer a plain old analog mattress that needs zero tech or support from anyone ever
2. Even with that being the case, for the average consumer who wants an electronic/controllable bed, it's still a better deal than anything that requires a custom home automation setup. Check out the prices for hiring somebody who can actually troubleshoot that.
I presume you personally could set that up. I probably could too. But 99% of the world isn't tech experts and can't do that. Or fix it if something goes wrong. Even if you can, you might just want to go to bed and not have to debug a broken assistant integration first.
The benefit of cloud integration, for that 99%, is that there is a professional out there to keep it working.
I'd be willing to bet that they have comprehensively sloppy and terrible infosec practices and that we'll never hear any details about it - most of their customers wouldn't understand, and it would only expose how bad they are at all of this if they did.
It seems I can use my phone as my "passkey". Okay nice, that should mean I can use the same one on multiple devices, just like with a hardware Yubikey, right? Well apparently no. Use a phone as a passkey on one device for a web account, try to log into the same account on another device, using the phone passkey, and it doesn't work, claims there is no passkey. I can't see what passkeys are actually present on the phone, so I don't know what's wrong.
There's so many different ways to have and use passkeys, and no way to tell what the status is. I have no idea how the less-technical users are supposed to be able to figure this stuff out.
The unreliability of solar and wind requires either hot (constantly running and spinning) non-renewable backups or grid-scale power storage (has never been done so ? on cost to build and upkeep) to guarantee reliable voltage and AC frequency. The cost of that should be factored into determine the true cost of these power sources.
The stability of the grid is dependent on the collective physical inertia of the many tens of thousands of huge and heavy spinning turbine-generator sets that make up the majority of the current generating capacity. Most current solar power sources rely on grid-following inverters, which are not stable without a grid stabilized by a preponderance of large spinning turbines. There has been some work on grid-forming inverters that are less impacted by this, but AFAIK there aren't currently any that can replicate the grid stability provided by that physical inertia.
I'm less certain about wind turbines, but I think they have this problem too. I don't think they're controllable enough to be mechanically synced to the grid frequency.
I'd love to be wrong about this, please prove me so if you can! But I don't often hear these points addressed, and we're not helping anything by ignoring the complexity of the real world.