• 1 Post
  • 205 Comments
Joined 1 year ago
cake
Cake day: July 2nd, 2023

help-circle
  • 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.





  • 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.


  • Pew Research has survey data germane to this question. As it stands, a clear majority (79%) of opposite-sex married women changed their family/last name to their husband’s.

    But for never-married women, only a third (33%) said they would change their name to their spouse’s family name. 24% of never-married women were unsure whether they would or wouldn’t change their name upon marriage.

    From this data, I would conclude that while the trend of taking the husband’s last name is fairly entrenched right now, the public’s attitude are changing and we might expect the popularity of this to diminish over time. The detailed breakdown by demographic shows that the practice was less common (73%) in the 18-49 age group than in the 50+ age group (85%).

    Pew Research name change data

    However, some caveats: the survey questions did not inquire into whether the never-married women intended on ever getting married; it simply asked “if you were to get married…”. So if marriage as a form of cohabitation becomes less popular in the future, then the change-your-family-name trend could be in sharper decline than this data would suggest.

    Alternatively, the data could reflect differences between married and never-married women. Perhaps never-married women – by virtue of not being married yet – answered “would not change name” because they did not yet know what their future spouse’s name is. No option for “it depends on his name” was offered by the survey. Never-married women may also more-strongly consider the paperwork burden – USA specific – for changing one’s name.

    So does this help answer your question? Eh, only somewhat. Younger age and left-leaning seem to be factors, but that’s a far cry from cause-and-effect. Given how gradual the trend is changing, it’s more likely that the practice is mostly cultural. If so, then the answer to “why is cultural practice XYZ a thing?” is always “because it is”.




  • I am a software engineer by trade, so when I started cooking, everything and every tool was intimidating, because I had no idea how it worked nor what it was meant for. I knew nothing about knives besides not to drop one, didn’t know the difference between a wok and a skillet, and didn’t understand how oil creates a non-stick surface on a non-non-stick pan.

    What helped me was a book that wasn’t like a recipe or cook book, but something closer to a food and kitchen textbook. The Food Lab by Kenji Lopez-Alt goes into some excruciatingly scientific detail about the role of different kitchen implements, and then showcasing recipes that apply theory to practice. Each step in the recipes thoroughly describe what to do, and the author puts a lot of content onto his YouTube channel as well.

    It was this book that convinced me to buy, strip, and season a cast iron pan, which has already proven its worth as a non-sticking vessel comparable to my old Teflon-coated pans. And I think for you, reading the theory and following some of the recipes might develop sufficient experience to at least be comfortable in an active kitchen. It’s very much a chicken-and-egg problem – if you’ll pardon the poultry pun – but this book might be enough to make progress in the kitchen.

    Also, since it was published in 2015, it’s very likely available at your local library, so check there first before spending money to buy the book. Good luck with your culinary development!


  • I was once working on an embedded system which did not have segmented/paged memory and had to debug an issue where memory corruption preceded an uncommanded reboot. The root cause was a for-loop gone amok, intending to loop through a linked list for ever member of an array of somewhat-large structs. The terminating condition was faulty, so this loop would write a garbage byte or two, ever few hundred bytes in memory, right off the end of the 32 bit memory boundary, wrapping around to the start of memory.

    But because the loop only overwrote a few bytes and then overflew large swaths of memory, the loop would continue passing through the entire address space over and over. But since the struct size wasn’t power-of-two aligned, eventually the garbage bytes would write over the crucial reset vector, which would finally reboot the system and end the misery.

    Because the system wouldn’t be fatally wounded immediately, the memory corruption was observable on the system until it went down, limited only by the CPU’s memory bandwidth. That made it truly bizarre to diagnose, as the corruption wasn’t in any one feature and changed every time.

    Fun times lol