PS: The mattn CGO driver actually doesn't seem to support wrapping the xBegin/xSync/xRollback/xCommit methods. Mine actually does, although it's largely untested, as I haven't needed this yet.
We use mattn's go-sqlite3 in our SaaS product. It's not ideal from a toolchain perspective (i.e. cross compiling becomes a little annoying, especially with multi-arch Docker images) but once you get across that hurdle, we haven't run into any major problems with cgo.
The problem with cgo is it reduces portability, not that it causes issues. If whatever C you’re invoking doesn’t build on your architecture or if you need to cross-compile (last I checked), you’re out of luck.
It’s not about the build platform, it’s about the execution platform and not having to have a toolchain for every platform. This is especially relevant in the embedded space.
I guess that. I have a paid account ($20/month flavor) and have the link saved. I just asked it to create an image of a landscape and it popped up this blocking request to use pyxl.pro
I managed to get rid of it (I was blocked by this) by clicking the "..." button in the input frame and choosing "Create image" which was prepended to my prompt.
No idea what happened there... I have a valid/paid account, no browser extensions... strange stuff.
Why is Social Security always represented as an expense along with things like defense and administration? It is sourced from separate taxes and has no business in the US govt. budget.
It’s typically motivated by some desire to slant the figures, or else just not realizing how the funding is structured. Serious discussion of the budget doesn’t include Social Security.
Apologies, but this strikes me as a rather silly question. What I would keep in the event of a prolonged network outage would be of minimal significance.
What I'd really be concerned about would be our modern society. Purchasing food, water, fuel, clothes and other necessities would be near impossible. Supply chains would not just have problems, but literally fall apart. Money would stop moving.
If anything is "too big to fail" it would be the internet.
You're not wrong. If the internet fails for everyone (at least at the city level) then basically there's no banking.
Along with no banking there's no way to order supplies. No way to accept delivery. The very least of your problems is music or Wikipedia.
And I know you're thinking cash will help you, but its not enough. We used to have forests of paper and squadrons of clerks- that simply doesn't exist anymore.
I think that there is a lot of merit to your argument. However, I think there is also the human factor as well as a malleable technology factor. I'll speak to the second factor.
While we don't have forests of paper, we have pocket-sized computers that can talk peer to peer and store practically infinite amounts of transactions.
We don't have squadrons of clerks but we have software that can collate transactions locally.
The internet is certainly a useful tool for quick connectivity but there are definitely ways to do things without the internet and without reverting all the way back to cash/check and paper ledgers.
You will be unable to communicate except through face to face meetings. There is no more POTS(plain old telephone system), the entire world routes phone calls over the internet. There's no IM, the physical mail system will at least become dramatically backlogged if not fail entirely due to infrastructure failure internally and the new increased demand.
In my country is it not just that there isn't a POTS system, there isn't even copper. You have a FTTH(fiber to the home) link or a mobile connection. To my knowledge even in the US fiber terminates at the distribution point and your cable supply is last mile only.
I don't know what even will cause a global internet outage at the scale but it will be global panic.
> I don't know what even will cause a global internet outage at the scale but it will be global panic.
A coordinated attack on key infrastructure (eg: root DNS servers) could do it. Much of the internet is held together with duct tape and bubble gum. The reason it stays alive is because there are a lot of duct tape and bubble gum specialists :)
There are still a lot of ways to communicate without the internet over large distances (eg: radio, satellite, plane, drone, etc...) and there are different considerations/requirements for them. They are still an ultimate backup to the world we have created but shopping on Amazon via ham-radio would be quite painful!
The problem wouldn’t be a lack of alternative means to facilitate transactions, it would be a lack of trusted counterparties to transact with.
Grocery stores and bars used to let local trusted customers pay their accumulated purchases once per week or month, or accept personal checks from them without any means of verifying whether they were covered.
Today? It’s essentially cash or credit card, and no more mechanisms for local/decentralized credit decisions whatsoever, even if a checkout clerk might personally know a customer.
Because of ubiquitous connectivity, we have greatly increased, but also centralized trust. Local trust isn’t restored quickly, especially during an emergency when tensions are high anyway.
There are digital forms of currency already but barring that, you can still manage centralized trust with distributed communication.
Ie: maybe I trust a mechanism by Google/Apple where tap becomes powered locally and the phone/device itself carries a balance.
It’s true that these solutions don’t exist today but they are not far away with the amount of pressure we are talking about by losing the internet.
Also, credit cards used to work in a similar way to checks. The information would be recorded and the transaction would be finalized later.
I came across a pre-magnetic-strip credit card years ago… it’s pretty fascinating how currency has evolved in the last half-century. There is no reason for me to think that it will stop where we are at today.
> Ie: maybe I trust a mechanism by Google/Apple where tap becomes powered locally and the phone/device itself carries a balance.
That's something I'd definitely love to see, but it doesn't exist at the moment (in the US, at least; in Japan, there are stored-value cards in Apple Wallet that can support two-side offline transactions).
> Also, credit cards used to work in a similar way to checks. The information would be recorded and the transaction would be finalized later.
They used to, but they don't anymore. Almost all terminals and many cards won't let you do an offline transaction these days, for both credit and debit cards.
> it’s pretty fascinating how currency has evolved in the last half-century. There is no reason for me to think that it will stop where we are at today.
True, but unfortunately as far as I can see, it's all been moving towards a more centralized/connection-dependent system. That's great for when everything is working as expected, but raises some concerns about resilience.
i like that you speak towards humans not being hopeless without the internet. its true. they depend on it a lot, but can easily adapt..
i do beleive though that it would be only a temporary thing.
on a local level you can likely still enable a lot of stuff. the internet would most likely die due to a decision to disable it rather than mass equipment failure. also very unlikely, as a ton of people must disable it at the same time, knowing all full well the result of doing so...
if they do that so u can try to get a radio broadcast up with some equipment thats strapped to houses and appartment buildings eveywhere these days. see if some antennas can be enabled for telephony locally etc. get the spark going for getting a network back up. for isp equipment the same. you can enable and if needed reprogram/configure a lot of field equipment and enable local networks. perhaps depending on your locality even more (internet exchange and isp data centers are close to some people atleast).
quite sure it would be up and running again in no time locally. at some point networks would merge and an internet would form again...
all in all there's really not a lot anyone can do about it if people want to use these existing networks and equipment. unless they start cutting power to very large areas etc. etc., remove the equipment everywhere, or ourposefuly destroy it... - this line of thought is extremely unrealistic.
> While we don't have forests of paper, we have pocket-sized computers that can talk peer to peer and store practically infinite amounts of transactions.
And how do we know that someone's pocket computer doesn't contain a
forged list of transactions that never happened, or is missing some
transactions that did happen?
My autocomplete and documentation work offline. Not being able to download new libraries would suck, but as long as you have the necessary tools installed it wouldn't be too bad.
It's not that long ago that software was distributed on CD and tutorials in printed books. The internet adds a lot of convenience and productivity, but it's hardly a requirement.
The entire open source ecosystem will be gone. Distribution on CD (or USB sticks) would be okay for delivering software, but not viable for frequently exchanging patches among a large group of developers in different parts of the world.
Most open source projects are the work of one developer with occasional outside contributions. Those can still be distributed by CD or USB stick, either directly by mail or the more traditional route of magazines having CDs with collections of software their subscribers might like. Or a modern version of people meeting up to exchange files peer-to-peer. If you want to contribute, write a patch and send it back to the developer, e.g. by snail mail.
Large open source projects would be much more difficult. Though some of them are already either largely done by one company (so people can meet in person) or very hierarchical (like Linux).
To be honest, I would expect most small open source projects to just vanish, because of the lack of discoverability. The users won't be able to test them easily, and probably won't be paying for the shipping of a tiny tool that they have not yet tried and don't know whether it's useful or not.
Large open source projects can survive, but I'd imagine it will lean much more towards being developed mainly singular organizations. Without the internet, we don't just lose contributors, but also a lot of testers. The feedback loop will probably shrink, such that the software is mainly based on the need of the organization itself, and the perhaps a selected few collaborators who are very involved.
For sure food, water and etc are going to be the hardest to acquire. I live in Valencia which just had some massive flooding. The city of Valencia itself survived unscathed since they rerouted the river here in 1954, but the outskirts are completely devastated. The grocery stores in the city have more or less been empty across the entire city for the last week. Supplies are still getting in, but the slight increase in demand (all the people in the affected areas need to come into the city for groceries) along with panic buying make me realize in a true SHTF situation that we'd be completely screwed.
My most likely "internet down" scenario would be my local government deciding to launch a national firewall, probably under the guise of "combatting disinformation, malinformation, misinformation, and foreign interference".
For that scenario I need as many VPNs as possible, a VPS in a friendly jurisdiction, and a TOR browser.
If the "internet is down" for "good", it's hard to me to think of a scenario where it didn't bring down the rest of civilization down along with it.
In the U.K. a Thames barrier failure would (amongst a lot of London) wipe out the vast majority of switching capacity. Sure there’s slough and a few smaller IXPs but not enough for the capacity.
How long before someone can buy a robot to do a manual labor job for them? I mean, buy a robot and send it to some company to do a daily job where the company pays the robot owner for the use of the robot?
I don't pretend to hold a crystall ball or magically see the future, but arguments could be construed why it would happen:
Let us consider a spectrum of splitting differences, and their extremes:
Consider a factory that runs 3 human shifts, and N full-time labour positions.
In one extreme the company buys for each 3-human-shift position a single robot price.
In another extreme, some workers decide to buy a robot on their own, and hope to send it to the factory.
Now consider 3 robots are bought per 3-human shift position, i.e. one robot corresponding to each human worker. If the robot follows the worker home, it would spend 2 / 3rds of the time at home, and one third of the time at work. So a company could pay a third of each robot for 3 shifts. What is won by whom?
The companies:
1) paid the same amount of money
2) don't need space to store a large stock of backup robots (suppose your robot broke down and needs a few days to get repaired, the company can ask your colleagues from other shifts if they want to rent out one of their robots, so instead of having 2 robots in the household, some will only have 1 for a few days and they will get compensated by whoever was responsible for the damage, if it occurred in job related conditions or leisure conditions)
From the perspective of the employees:
1) Instead of paying 100% of the robot price, you only pay 66.6%
2) Instead of blindly hoping to find an employer where you can send your robot for work, your employer is organizing this for you
From the perspective of the robot makers:
1) Sales triple
2) gather real world data 3 times faster than robot makers not participating in this type of scheme
3) just like the factories, having a larger base of robots means the shot noise on the stream of incoming robots needing a repair is buffered, so capex on the repair centers decrease
From the perspective of jurisdictions, power blocs, and robot warfare:
1) Your economy learns 3 times as fast compared to blind ideological jurisdictions that believe the optimum must lie at the extremes: either company buys 1 robot, or 3 employees each buy their own robot
From a different perspective one can argue much simpler: we already see this in action with company cars, robots for human transportation operated for work part of the time and operated for leisure in the rest of the time, complete with myriad of rules and regulations to determine who pays for repairs and how or when the damage was incurred.
The company is just going to buy the robot directly. Why would they middle man things like that? Alternatively if they just need the robots for shifts, they will rent them out from some central provider.
I think you would have to start a small business like rent your robot to do housecleaning for your neighbors, that being said housecleaning will probably quickly become way more competitive and you would have to undercut bigger businesses.
Funny you mention the only possible future capitalism model where we aren't mostly all dead in a ditch... (companies forced to pay people for using "their" bot) but it will never happen.
The companies buy the robots, and just shoot the employees in the head as they leave the robot store as an act of mercy.
* You know exactly what your app needs to do, up-front
But isn't this true of any database? Generally, adding a new index to a 50 million row table is a pain in most RDBs. As is adding a column, or in some cases, even deleting an index. These operations usually incur downtime, or some tricky table duplication with migration process that is rather compute + I/O intensive... and risky.
50M rows is really not that much, I’d guesstimate an index creation to take single-digit minutes.
None of these operations I’d expect to cause downtime, or require table duplication or to be risky
Edit: to be fair, you’re right there’s footguns. Make sure index creation is concurrently, and be careful with column default that might take a lock. It’s easy to do the right thing and have no problem, but also to do the wrong thing and have downtime
Newer versions of Postgres also support dropping indexes concurrently. I recommend using the concurrently option when dropping unused or unneeded indexes on any table with active writes and reads.
https://www.postgresql.org/docs/current/sql-dropindex.html
Is this a normal/expected requirement in modern GO?