Currently working remote from Thailand (UTC+7), with potential for short on-site trips if necessary. Relocating to Australia soon(ish).
I have 20 years experience across a mixture of Ops/Infrastructure/Dev-Tools and web application architecture/development, with a focus on solving unique/uncommon problems.
I’m looking for opportunities to help companies with
- server infrastructure setup/maintenance;
- backend/server-side architecture & development (primarily PHP MVC);
- system integration;
I currently work remotely from Thailand, on a reasonably flexible schedule (I can schedule work hours to get overlap with most other timezones when required) but on-site visits to pretty much anywhere are a possibility if required too.
Contact me via email (in my profile) if you want to have a chat about what you’re working on!
I use the terms "LLM" or "AI" (as in, "I used an LLM/AI to write a <insert task> helper") as a quick hint to ignore articles/links/etc in the same way I've previously use the terms "You won't believe what happened next" or "they hate this one trick" to avoid spam bait article links, or "shocked face overlay" to avoid bullshit YouTube videos.
So, thankyou for that AI techbros. Keep telling us loudly and proudly that you're using "AI" to write your slop, it makes it much easier to know what to avoid when skimming titles.
Sounds like "yes, with an if" where the "if" is "if you don't really care about data consistency".
"Last write wins" sounds like a recipe for disaster IMO.
This is still one of those things that keeps people on MySQL - there are not one, but two open-source solutions available that provide synchronous cluster replication, allowing for "safe" writes against multiple primaries.
Out of curiosity, what conflict resolution options exist in mysql and/or mysql cluster (never checked / exp. in PG)? Because you'll always have to address conflicts of course - we come to CAP / PACELC. Hm [1][2] - looks like they support more strategies (possibly) but I mean none of them are somehow magical, and timestamp comparison based methods comprise the better part of offered strategy set (looks like?) - and "latest timestamp wins" at least used to be the default (did not read thoroughly mind you, was just curious)?
But I could be totally wrong - (1) curious if someone could link to things / explain, and (2) fyi ('stephenr) last write wins based on timestamp is a thing im mysql world as well (though again maybe set of options / different conflict resolution methods available is larger in mysql?)
For reference those two pages are both about NDB cluster.
The two "options" I was referring to are MySQL group replication and the Galera replication plugin for MySQL. Both provide synchronous replication, so the write either succeeds to a majority of the cluster or is rejected.
Currently working remote from Thailand (UTC+7), with potential for short on-site trips if necessary. Relocating to Australia soon(ish).
I have 20 years experience across a mixture of Ops/Infrastructure/Dev-Tools and web application architecture/development, with a focus on solving unique/uncommon problems.
I’m looking for opportunities to help companies with
- server infrastructure setup/maintenance;
- backend/server-side architecture & development (primarily PHP MVC);
- system integration;
I currently work remotely from Thailand, on a reasonably flexible schedule (I can schedule work hours to get overlap with most other timezones when required) but on-site visits to pretty much anywhere are a possibility if required too.
Contact me via email (in my profile) if you want to have a chat about what you’re working on!
Counterexample: Storing the bcrypt hash by appending it to a CSV file containing the usernames and hashes of all users then having a login process where that CSV file is downloaded to the client and the password is verified locally against that CSV file using client-side JavaScript would probably be very bad.
Cryptography part is fine but storage or the auth process isn't.
You would like to think that no-one would write their app that way, but there are plenty of slightly less worse things that happen in practice and vibe coding probably introduces all sorts of new silliness.
Well damn that's a shame. I just hate it when people let others use their work in a way they choose, that happens to be less restrictive than my own personal choices.
Worked out for Linux, which remains a largely open, collaborative ecosystem. Meanwhile all the BSDs are good for are as less-good Linuxes that can be shoved into proprietary products. Google is choking out AOSP, which they can do because of Android's "less restrictive" license.
Copyleft licenses are demonstrably better for open source projects in the long run. We've had enough time to prove that out now.
The success of Linux over BSD has more to do with a lawsuit in the early 90's over whether or BSD infringed on Unix's source code, which made Linux the only viable open source Unix-like operating systems if you had to ask a legal department the question.
Look beyond the OS, and much of the tech stack is dominated by non-copyleft open source projects. Both the major web servers--Apache and nginx--are permissively licensed, for example. Your SSL stacks are largely permissively licensed; indeed, most protocol servers seem to me to largely be permissively licensed rather than copyleft.
And I should also point out a clear example where copyleft has hobbled an ecosystem: Clang and LLVM have ignited a major compiler-based ecosystem of ancillary tools for development such as language servers. The gcc response to this is... to basically do nothing, because tight integration of the compiler into other components might allow workarounds that release the precious goodness of gcc to proprietary software, and Stallman has resisted letting emacs join in this revolution because he doesn't want a dependency on non-copyleft software. An extra cruel irony is that Clang appears to be an existential threat to the proprietary EDG compiler toolchain, which would mean it took a permissive license to do what the goal of the copyleft license was in the first place: kill proprietary software.
I think it's pretty reductive to boil down linux' success to the choice of license. There's governance model, development model, institutional inerta, ... - and the linux ecosystem contains tons of permissively licensed pieces of software, some of which massively contributed to its success (the once-default webserver that came with its own permissive license, the APL). Even the kernel includes APL, BSD-2 Clause and MPL'ed code.
To the contrary, GNU Hurd is GPL'ed and is much less successful than the linux kernel.
That is an extremely cherry-picked example. There are plenty of examples of permissively-licensed software that is very successful, and no evidence that the license choice is why Linux won.
Good take. Also note the very well thought out decision from Linus and team to keep GPLv2, it is a balancing game.
In the end, if you want projects to succeed they need contributors. Unfortunately, some of them need to be reminded to play fair more than others, and in those cases the legalese helps.
I'm not even going to point out the hundreds of counter examples to your argument.
You clearly didn't understand my point: I'm not arguing about whether GPL is better than MIT or BSD or even SSPL/etc.
My point is that if someone else chooses to release their software with less restrictions on it than I would choose, that's literally none of my business.
They wrote the fucking thing, they get to choose how it's fucking licensed.
Plenty of organisations (and thus people) skip using GPL licensed software due to inability or unwillingness to be bound by it's terms.
I'm still waiting for the day the GPL camp says they're not going to use things like OpenSSH, Apache, Nginx, Postgres, Python, Ruby - because they're too fucking permissive.
VMWare Fusion very much feels like a cheap one-time port of VMWare Workstation to macOS. On a modern macOS it stands out very clearly with numerous elements that are reminiscent of the Aqua days: icon styles, the tabs-within-tabs structure, etc.
Fusion also has had some pretty horrific bugs related to guest networking causing indefinite hangs in the VM(s) at startup.
Parallels isn't always perfect sailing but put it this way: I have had a paid license for both (and VBox installed), for many years to build vagrant images, but when it comes to actually running a VM for purposes other than building an image, I almost exclusively turn to Parallels.
Currently working remote from Thailand (UTC+7), with potential for short on-site trips if necessary. Relocating to Australia soon(ish).
I have 20 years experience across a mixture of Ops/Infrastructure/Dev-Tools and web application architecture/development, with a focus on solving unique/uncommon problems.
I’m looking for opportunities to help companies with
- server infrastructure setup/maintenance;
- backend/server-side architecture & development (primarily PHP MVC);
- system integration;
I currently work remotely from Thailand, on a reasonably flexible schedule (I can schedule work hours to get overlap with most other timezones when required) but on-site visits to pretty much anywhere are a possibility if required too.
Contact me via email (in my profile) if you want to have a chat about what you’re working on!
The use-case I always remember people presenting for JWTs was mostly part of the "serverless" fad/hype.
The theory was presented like this: If you use a JWT your application logic can be stateless when it comes to authentication; So you don't need to load user info from a session database/kv store, it's right there in the request...
The only way that makes any sense to me, is if your application has zero storage of its own: it's all remote APIs/services, including your authentication source. I'm sure there are some applications like that, but I find it hard to believe that's how/why it's used most of the time.
Never underestimate this industry's ability to get obsessed with the new shiny.
I had an eye opening experience many years ago with a junior dev (I was significantly more experienced than he was then, but wouldn't have called myself "senior" at the time).
He had written an internal tool for the agency we both worked for/through. I don't recall the exact specifics, but I remember the accountant was involved somewhat, and it was a fairly basic CRUD-y PHP/MySQL app. Nothing to write home about, but it worked fine.
At some point he had an issue getting his php/mysql environment configured (I guess on a new laptop?) - this was before the time of Docker; Vagrant was likely already a thing but he wasn't using it.
From what he explained afterwards I believe it was just the extremely common issue that connecting to "localhost" causes the mysql client to attempt a socket connection, and the default socket location provided in php isn't always correct.
As I said, I heard about this after he'd decided that connection issue (with an app that had already been working well enough to show off to powers-that-be and get approval to spend more paid time on it) was enough to warrant re-writing the entire thing to use MongoDB.
As I said: never underestimate this industry's ability to get obsessed with the new shiny.
Currently working remote from Thailand (UTC+7), with potential for short on-site trips if necessary. Relocating to Australia soon(ish).
I have 20 years experience across a mixture of Ops/Infrastructure/Dev-Tools and web application architecture/development, with a focus on solving unique/uncommon problems.
I’m looking for opportunities to help companies with
- server infrastructure setup/maintenance; - backend/server-side architecture & development (primarily PHP MVC); - system integration;
I currently work remotely from Thailand, on a reasonably flexible schedule (I can schedule work hours to get overlap with most other timezones when required) but on-site visits to pretty much anywhere are a possibility if required too.
Contact me via email (in my profile) if you want to have a chat about what you’re working on!
reply