• 85 Posts
  • 672 Comments
Joined 1 year ago
cake
Cake day: July 2nd, 2023

help-circle
  • I would say – in my capacity as a layperson engineer and not an electrician – that Option A is sufficient for distant strikes, because it provides an all-copper path from this surge protector to the ground rod, assuming your home wiring is already up to code. Option B has the issue of higher resistance (for iron piping) or being non conductive (for PEX/PVC piping). Option C has the problem that while the induced current from an indirect strike is sunk into the ground, the ground differential between this separate ground rod and the ground rod serving your network equipment, might blow up your switch. These “objectionable curents” are precisely why the NEC requires all ground rods bonded.

    So between Option A and D, the latter would have slightly lower ground resistance, but this probably isn’t worth the substantial complexity for not much increased protection against indirect lightning strikes.

    All this also applies for any sort of household device, unless you’re about to install a Faraday cage, which isn’t practical for a Wifi device. So I think your Option A is optimal here.


  • Since none of the four options involve mounting this surge protector onto a metal pole, the other allowable option from the Ubiquiti quick start guide is to use a ground wire, which they call a “drain wire”. Option B does not guarantee a ground connection if your home’s water pipes use plastic piping for some sections, but the other three options would satisfy the Ubiquiti requirements.

    However, only options A and D would satisfy the bonding requirement in the NEC – assuming you’re in the USA – which prohibits using disparate ground rods for the same structure, ruling out option C.

    So I would go with option A, as it guarantees a metallic path back to the existing grounding system at the main panel and is easy. The Ubiquiti document does not prohibit indoor mounting. And for the purpose of dissipating static charges or providing an emergency path to ground, reusing the probable 12 or 14 AWG ground wire from a junction box is perfectly acceptable.

    What this Ubiquiti surge protector absolutely will not do is lightning protection, which is the one application where you would want option D (new ground rod bonded to existing system). But even then, a direct lightning strike will set any WiFi device ablaze; indirect nearby strikes though can be mitigated with surge protection, sometimes.


  • This is a shorter answer than I typically would write, but any sort of exercise program should be atuned to your specific circumstances, since if it’s not practical to execute upon it, then it’s not going to sustainably achieve its objectives.

    As for me personally, I wrote my program based on a friend’s five-day-per-week program, which splits the days into: arm day, back/shoulders day, chest day, leg day, and core day. I specifically do not want to be overworking certain muscle groups without adequate rest. Each day takes no more than 60-70 minutes, including warm ups.

    Might I suggest posing in c/gym or c/homegym for advice on how to tune your current program; there shouldn’t be a need for a full rip-and-replace.



  • To make sure we’re all on the same page, this proposal involves creating an account with a service provider, then uploading some sort of preexisting, established proof-of-identity (eg passport data page), and then requesting a token against that account. The token is timestamped and non-fungible, so that when the token is presented to an age-restricted website, that website can query the service provider to verify that: 1) the token is still valid, 2) the person associated with the token is at least a certain age.

    If I understood that correctly, what you’re describing is an account service combined with an identity service, which could achieve the objectives of a proof-of-age service, but does not minimize privacy complications. And we already have account services of varying degrees and complexity: Google Accounts, OAuth, etc. Basically any service where you log-in, since the point of logging in is to associate to a account, although one person can have multiple accounts. Passing around tokens isn’t strictly necessary since you can just ask the user to prove account ownership by signing into their Google Account, for example. An account service need not necessarily verify age, eg signing in to post a comment on a news article.

    Compare this with an identity service like ID.me, which provide records on an individual; there cannot be multiple records for the same live person. This type of service is distinct from an account service, but some accounts are necessarily tied to a single identity, such as online banking. But apart from KYC regulations or filing one’s taxes online, an identity service isn’t required for most day to day activities, and any additional uses pose identify theft concerns.

    Proof-of-age – as I understand it from the Australian legislation – does not necessarily demand an identity service be used to satisfy the law, but the question in this Lemmy thread is whether that’s a distinction without a difference. We don’t want to be checking identities if we don’t have to, for privacy and identity theft reasons.

    In short, can a person be uniquely, anonymously age-verified online? I suspect not. Your proposal might be reasonable for an identity service, but does not move us further towards a theoretical privacy-centric proof-of-age validation mechanism. If such a mechanism doesn’t exist, then the Australian legislation would be mandating identity checks for subject websites, which then become targets for the holder of those identity records. This would be bad.


  • Sadly, this type of scheme suffers from: 1) repudiation, and 2) transferability. An ideal system would be non-repudiable, meaning that when a GUID is used, it is unmistakably an action that could only be undertaken by the age-verified person. But a GUID cannot guarantee that, since it’s easy enough for an adult to start selling their valid GUIDs online to the highest bidder en-masse. And being a simple string, it can easily and confidentially be transferred to the buyer, so that no one but those two would know that the transaction actually took place, or which GUID was passed along.

    As a general rule, when complex questions arise which might possibly be solved by encryption, it’s fairly safe to assume that expert cryptographers have already looked at the problem and that no easy or obvious solution exists. That’s not to say that cryptographers must never be questioned, but that the field is complicated enough that incomplete answers abound.

    IMO, the other comments have it right: there does not exist a general solution to validate age without also compromising anonymity or revealing one’s identity to someone. And that alone is already a privacy compromise.



  • I’m on mobile so I can’t compile this myself, but can you clarify on what you’re observing? Does “nothing” mean no output to stdout and stderr? Or that you did get an error message but it’s not dispositive as to what libcurl was doing? Presumably the next step would be to validate that the program is executing at all, either with a debugger or printf-style debug statements at all junctures.

    Please include as much detail as you can, since this is now more akin to a bug report.

    EDIT: wait a sec. What exactly is this example code meant to do? The Pastebin API call suggests that this is meant to upload a payload to the web, not pull it down. But CURLOPT_WRITEFUNCTION is for receiving data from a URI. What is your intention with running this example program?


  • Unless I’m mistaken, that first example as-written will fetch POST the network resource and then immediately clean up. The fact that CURLOPT_NOPROGRESS is passed means that the typical progress bar for curl in an interactive shell will be suppressed. The comment in the code even says that to make the example do something useful, you’ll have to pass callback pointers, possibly by way of CURLOPT_WRITEFUNCTION or CURLOPT_WRITEDATA.

    From the curl_easy_perform() man page:

    A network transfer moves data to a peer or from a peer. An application tells libcurl how to receive data by setting the CURLOPT_WRITEFUNCTION and CURLOPT_WRITEDATA options. To tell libcurl what data to send, there are a few more alternatives but two common ones are CURLOPT_READFUNCTION and CURLOPT_POSTFIELDS.


  • The aspect that didn’t quite click for me is whether a “revered prophet” making an announcement would be bona fide confirmation that the rapture is beginning. Incorrect rapture declarations – if one even believes in the Christian Rapture – have been made before and in those cases, no one has similarly been observed to be taken away to heaven.

    Perhaps the horror could be conveyed by way of some sort of unambiguous definitely-from-God sign that the rapture has started. Maybe some kind of battle-royale sign in the sky that counts the number of people taken to heaven – and it remains stuck at zero. Or taking a page from Liu Cixin’s famous trilogy, have the counter be in everyone’s field of vision, even when their eyes are closed.




  • I don’t have a complete answer, but the mechanization of warfare should have a lot to do with it. Things like the semi-automatic pistol – they would have called it an “automatic” pistol during that era – the modern hand grenade, the airplane for reconnaissance (although lighter-than-air balloons might have been used? IDK), and other weapons wouldn’t have really appeared for the Mexican-American War (1846-1848).

    Or did you mean the Spanish-American War (1898)? I think the same logic still stands, especially since train networks would have been more fully developed by the turn of the century.



  • I did see that website, and while it does seem perfectly reasonable for a brand’s website, almost everything listed is out of stock. So I wasn’t sure whether it’s some sort of abandoned site.

    The video review did say this product is a clone of an established product, so I imagine all the corners were cut in R&D and instead pays mostly for the manufacturing and shipping.





  • For other examples of countries-in-countries, we can look to Switzerland, Germany, and the USA. A casual observation of all three are that their first-level political subdivision is known as a “state” and not “province” or “territory”.

    Swiss history – which I admit I’m not that clear on – shows that the modern sovereign state formed as a loose confederation of smaller kingdoms unifying together. Indeed, the foundational document of the modern Swiss Confederation in 1848 directly drew inspiration from the USA Constitution of 1789. However, they made some modifications, such as having a 7-person Federal Council, which together fulfill the role akin to the American President. That is, the role of Head of State and also Head of Government (aka a Prime Minister). This style of executive governance hews more closely to the rich Swiss traditional of direct democracy, rather than that of a purely representative republic.

    Germany, specifically the successor state of West Germany post-WW2, and then the unified state of Germany post reunification, is a federal republic. A republic to restore the functions of the earlier Weimar Republic, and a federation of states because of USA influence in drafting the Basic Law – Germany’s Constitution – following WW2. But unlike the USA federal system, the German system would mimic the parliamentary system of Westminster, being that of the United Kingdom. So while governmental power is distributed amongst the several states and the federation, the governance would be through indirect election of the Prime Minister. The idea is that by dividing power this way, no mustached fellow with fascist ideas could take control of the organs of power again.

    Finally, examining the oldest continually-operating example, the USA currently is composed of a strong federal entity and 50 US States that wield all remaining power not reserved to the federal government. But initially, this is not what the American Founding Fathers had in mind at all. The late 1700s envisioned the original 13 colonies of the early United States of America to be independent countries that confederated for common causes, like defense and foreign policy. The precursor to the US Constitution – the Articles of Confederation (1777) – tried this, but problems quickly arose because each State had their own currency, debt levels, legal systems, and often undermined each other to advance their own position, such as favoring in-state citizens in lawsuits filed by out-of-state citizens. This made trade difficult and the federal government had little power to do anything about this.

    Even with the revised US Constitution document, the whole weak federal government thing continued until the 1860s during the American Civil War, with the aftermath being a federal government that fully asserted its powers under the US Constitution. Any notion of US States being country-like would have fully evaporated by then, especially during Reconstruction when the Guarantee Clause was used to install military governance in the defeated southern states until reintegration into the Union. Such a thing would be impossible for a modern country/sovereign state.

    Fun fact: the Guarantee Clause is why a US State cannot convert itself into a hereditary monarchy. The Constitution does not allow for a Monarchy of South Carolina, and we’re probably all better off for it anyway. Although if the role was an elected position – like with the Co-Prince of Andorra – then that might be permissible.

    To that end, the modern US State is still a sovereign entity, in that certain things are wholly within their domain and not of the federal government’s. But US States are still beholden to the US Constitution, use the same money as the Union, and must honor interstate commerce and contracts from in- and out-of-state, as well as judicial rulings from the federal court system. But this dual sovereignty system post 1860s continues to evolve, with some states encroaching on federal authority, such as with border control.

    Aspects of these three example countries find their way into most of the modern governments of Western countries, so hopefully this was a useful explainer.


  • I’ll take a cursory stab, but other references exist for the minutiae of how these things came to be.

    Britain == United Kingdom

    Great Britain == an island wholly within the UK

    United Kingdom: a sovereign state (eg USA, Germany) composed of the constituent countries of England, Scotland, Wales, and Northern Ireland, plus a few overseas territories.

    Briton: a British citizen, or someone tracing their ancestry to the UK constituent countries

    The short answer for why a country (UK) can have countries (eg Scotland) in it is because the notion of sovereign states (the modern definition of countries) only came into existence in the 18th century or so.

    Canada, formerly the Dominion of Canada, formed from the British North American holdings plus the French parts that the British bought (ie Quebec). Granted self governance in the 1860s, independence in the 1930s, and finally full “patriation” in the 1980s to remove all vestiges of the UK from Canadian laws. However, the independent Monarchy of Canada remains, and just happens to coincidentally follow the exact same selection rules as the British Monarch. So the King of Canada will be the same person as the King of the United Kingdom, even though the Government of Canada is no longer controlled by the Government of the United Kingdom. In both sovereign states, the King is a figurehead from where authority and governmental legitimacy emanates, and the current King of Canada continues the tradition since Queen Elizabeth II that the Monarch’s appointed Governor-General of Canada shall represent the Monarch in all Canadian matters, meaning the Monarch will not directly involve themselves. In fact, it’s frowned upon for politicians to involve the Monarch directly, except to kindly ask for a new Governor-General (see 1975 Australia).

    Why still keep the Monarchy of Canada? The voters haven’t chosen otherwise, to pursue a republic or any other form of government. The same applies in Australia, although it’s slightly more complicated as each Australian State derives their state-level authority from the Australian Monarch, whereas Canadian provinces exist as a part of the singular Canadian confederation; each Australian State would have to sever their connection to the Monarch, or could do so piece-meal. Nevertheless, with the Monarch delegating power within each of his “realms” to the respective Governor-General, becoming a republic is a matter of passing bills in the parliamentary system. Barbados did exactly this in 2022, replacing Queen Elizabeth II with a republic. Countries formerly part of the British Empire (circa 1930) usually join The Commonwealth of Nations, which just means they’d like to keep trading with each other but without the whole colonialism thing.

    The end of the British Empire was basically slow-going, since once some parts (eg Canada) received a measure of devolved powers (like having their own parliament), the door was swung open for other parts to demand the same. Post WW2, with the status of the UK greatly diminished in deference to the USA and USSR, overseas colonies became expensive and untenable. Plus, one of the basic tenets of the United Nations – put in place to avoid yet another world war – was the right to self determination. So the colonies had to go free.

    Ironically, the Scottish Parliament was not restored until 1998, having legally stopped existing with the Acts of Union 1707 that merged England and Scotland into the United Kingdom, with a single parliament but otherwise separate institutions and laws. To this day, the English Parliament has not been restored, and thus England affairs are directed by the UK Parliament at large.

    The British Isles includes both the Island of Great Britain (where Wales, Scotland, and England are) plus the Island of Ireland (where the Republic of Ireland, and Northern Ireland are), and a few smaller islands. So yes, every part of Great Britain is a part of the UK sovereign state, but the UK also includes the Isle of Mann and the upper part of the Island of Ireland, and some others.

    In all circumstances, “Ireland” means the Republic of Ireland; that republic is almost never called “southern Ireland”. The whole history of British colonialism in Ireland is long, sordid, and full of misery, culminating with The Troubles of the 1960s and still causing concern post-Brexit due to the EU border basically dividing the Island of Ireland.

    TL;DR: everything about British history is messy. Even their former colonies have messy history, despite some being at most a few hundred years old.



  • To start, let’s verify that Bluesky the app is indeed open-source. Yep, it is. But that’s not the same as having all the machinery be open-source, where anyone could spin up their own, compatible service; maybe named ExampleSky. To be compatible, ExampleSky would need to use the same backend interface – aka protocol – as Bluesky, which is known as ATProto. The equivalent (and older) protocol behind Mastodon and Lemmy is ActivityPub.

    ATProto is ostensibly open-source, but some argue that it’s more akin to “source available” because only the Bluesky parent company makes changes or extensions to the protocol. Any alternative implementation would be playing a game of chase, for future versions of the protocol. History shows that this is a real risk.

    On the flip side, Mike Masnick – founder of Techdirt, author of the 2019 paper advocating for “protocols, not platforms” that inspired Bluesky, and recently added member of the board of Bluesky, replacing Jack Dorsey – argues that the core ability to create a separate “Bluesky2” is where the strength of the protocol lays. My understanding is that this would act as a hedge to prevent Bluesky1 from becoming so undesirable that forking to Bluesky2 is more agreeable. To me, this is no different than a FOSS project (eg OpenOffice) being so disagreeable that all the devs and users fork the project and leave (eg LibreOffice).

    But why a common protocol? As Masnick’s paper argues, and IMO in full agreement with what ActivityPub has been aiming towards for years, is that protocols allow for being platform-agnostic. Mastodon users are keenly aware that if they don’t like their home instance, they can switch. Sure, you’ll have to link to your new location, but it’s identical to changing email providers. In fact, email is one of the few protocol-agnostic systems in the Internet still in continued use. Imagine if somehow Gmail users couldn’t send mail to Outlook users. It’d be awful.

    Necessarily, both ActivityPub and ATProto incorporate decentralization in their designs, but in different fashions. ActivityPub can be described as coarse decentralization, as every instance is a standalone island that can choose to – and usually does – federate with other instances. But at the moment, core features like registration, login, or rate limiting, or spam monitoring, are all per-instance. And as it stands, much of those involve a human, meaning that scaling is harder. But the ActivityPub design suggests that instances shouldn’t be large anyway, so perhaps that’s not too big an issue.

    ATProto takes the fine-grained design approach where each feature is modular, and thus can be centralized, farmed out, or outright decentralized. Now, at this moment, that’s a design goal rather than reality, as ATProto has only existed for so many years. I think it’s correct to say for now that Bluesky is potentially decentralizable, in the coarse sense like how Mastodon and Lemmy are.

    There are parts of the Bluesky platform – as in, the one the Bluesky organization runs – which definitely have humans involved, like the Trust and Safety team. Though compared to the total dismantlement of the Twitter T&S team and the resulting chaos, it may be refreshing to know that Bluesky has a functional team.

    A long term goal for Bluesky is the “farming out” of things like blocklists or algorithms. That is to say, imagine if you wanted to automatically duplicate the blocks that your friend uses, because what she finds objectionable (eg Nazis) probably matches your own sensibilities, then you can. In fact, at this very moment, I’m informed that Bluesky users can subscribe to a List and implement a block against all members of the List. A List need not be just users, but can also include keywords, hashtags, or any other conceivable characteristic. Lists can also be user-curated, curated by crowd sourcing, or algorithmically generated. The latter is the long goal, not entirely implemented yet. Another example of curation is “Starter Packs”, a List of specific users grouped by some common interest, eg Lawsky (for lawyers). Unlike a blocklist which you’d want to be updated automatically, a Starter List is a one-time event to help fill your feed with interesting content, rather than algorithmic random garbage.

    So what’s wrong with Bluesky then? It sounds quite nice so far. And I’m poised to agree, but there’s some history to unpack. In very recent news, Bluesky the organization received more venture capital money, which means it’s worth mentioning what their long term business plan is. In a lot of ways, the stated business plan matches what Discord has been doing: higher quality media uploads and customizations to one’s profile. The same statement immediately ruled out any sort of algorithmic upranking or “blue checks”; basically all the ails of modern Twitter. You might choose to take them at their word, or not. Personally, I see it as a race between: 1) ATProto and the Bluesky infra being fully decentralized to allow anyone to spin up ExampleSky, and 2) a potential future enshittification of Bluesky in service of the venture capitalists wanting some ROI.

    If scenario 1 happens first, then everyone wins, as bridging between ActivityPub and ATProto would make leaps and bounds, and anyone who wants their own ATProto instance can do so, choosing whether they want to rely on Bluesky for any/all features or none at all. Composability of features is something that ATProto can meaningfully contribute to the protocol space, as it’s a tough nut to crack. Imagine running your own ATProto instance but still falling back on the T&S team at Bluesky, or leveraging their spam filters.

    But if scenario 2 happen first, then we basically have a Twitter2 cesspool. And users will once again have to jump ship. I’m cautiously hopeful that the smart cookies at Bluesky can avoid this fate. I don’t personally use Bluesky, being perfectly comfortable in the Fediverse. But I can’t deny that for a non-tech oriented audience, Bluesky is probably what I’d recommend, and to opt-in to bridging with the Fediverse. Supposed episodes of “hyping” don’t really ring true to me, but like I said, I’m not currently an invested user of Bluesky.

    What I do want to see is the end result of Masnick’s paper, where the Internet hews closer to its roots where interoperability was the paramount goal, and the walled gardens of yore waste away. If ATProto and ActivityPub both find their place in the future, then IMO, it’ll be no different than IMAP vs POP3.