diff --git a/blog.py b/blog.py index eb8766076..fde6de7c5 100644 --- a/blog.py +++ b/blog.py @@ -313,7 +313,7 @@ def _html_blog_post_content(debug: bool, session, authorized: bool, if citations_str: citations_str = '

' + translate['Citations'] + \ ':

' + \ - '\n' + '\n' + citations_str + '\n' blog_str += '
\n' + citations_str diff --git a/daemon.py b/daemon.py index 3cbe6d185..df2daa8ef 100644 --- a/daemon.py +++ b/daemon.py @@ -174,6 +174,7 @@ from webapp_utils import get_pwa_theme_colors from webapp_calendar import html_calendar_delete_confirm from webapp_calendar import html_calendar from webapp_about import html_about +from webapp_specification import html_specification from webapp_accesskeys import html_access_keys from webapp_accesskeys import load_access_keys_for_accounts from webapp_confirm import html_confirm_delete @@ -4782,6 +4783,7 @@ class PubServer(BaseHTTPRequestHandler): links_filename = base_dir + '/accounts/links.txt' about_filename = base_dir + '/accounts/about.md' tos_filename = base_dir + '/accounts/tos.md' + specification_filename = base_dir + '/accounts/activitypub.md' # extract all of the text fields into a dict fields = \ @@ -4860,6 +4862,23 @@ class PubServer(BaseHTTPRequestHandler): print('EX: _links_update unable to delete ' + tos_filename) + if fields.get('editedSpecification'): + specification_str = fields['editedSpecification'] + try: + with open(specification_filename, 'w+', + encoding='utf-8') as specificationfile: + specificationfile.write(specification_str) + except OSError: + print('EX: unable to write specification ' + + specification_filename) + else: + if os.path.isfile(specification_filename): + try: + os.remove(specification_filename) + except OSError: + print('EX: _links_update unable to delete ' + + specification_filename) + # redirect back to the default timeline self._redirect_headers(actor_str + '/' + default_timeline, cookie, calling_domain) @@ -8212,6 +8231,56 @@ class PubServer(BaseHTTPRequestHandler): return self._404() + def _show_specification_image(self, path: str, + base_dir: str, getreq_start_time) -> None: + """Shows an image within the ActivityPub specification document + """ + image_filename = path.split('/', 1)[1] + if '/' in image_filename: + self._404() + return + media_filename = \ + base_dir + '/specification/' + image_filename + if self._etag_exists(media_filename): + # The file has not changed + self._304() + return + if self.server.iconsCache.get(media_filename): + media_binary = self.server.iconsCache[media_filename] + mime_type_str = media_file_mime_type(media_filename) + self._set_headers_etag(media_filename, + mime_type_str, + media_binary, None, + self.server.domain_full, + False, None) + self._write(media_binary) + fitness_performance(getreq_start_time, self.server.fitness, + '_GET', '_show_specification_image', + self.server.debug) + return + if os.path.isfile(media_filename): + media_binary = None + try: + with open(media_filename, 'rb') as av_file: + media_binary = av_file.read() + except OSError: + print('EX: unable to read specification image ' + + media_filename) + if media_binary: + mime_type = media_file_mime_type(media_filename) + self._set_headers_etag(media_filename, + mime_type, + media_binary, None, + self.server.domain_full, + False, None) + self._write(media_binary) + self.server.iconsCache[media_filename] = media_binary + fitness_performance(getreq_start_time, self.server.fitness, + '_GET', '_show_specification_image', + self.server.debug) + return + self._404() + def _show_help_screen_image(self, calling_domain: str, path: str, base_dir: str, getreq_start_time) -> None: """Shows a help screen image @@ -16274,6 +16343,39 @@ class PubServer(BaseHTTPRequestHandler): self.server.debug) return + if self.path in ('/specification', '/protocol', '/activitypub'): + if calling_domain.endswith('.onion'): + msg = \ + html_specification(self.server.css_cache, + self.server.base_dir, 'http', + self.server.onion_domain, + None, self.server.translate, + self.server.system_language) + elif calling_domain.endswith('.i2p'): + msg = \ + html_specification(self.server.css_cache, + self.server.base_dir, 'http', + self.server.i2p_domain, + None, self.server.translate, + self.server.system_language) + else: + msg = \ + html_specification(self.server.css_cache, + self.server.base_dir, + self.server.http_prefix, + self.server.domain_full, + self.server.onion_domain, + self.server.translate, + self.server.system_language) + msg = msg.encode('utf-8') + msglen = len(msg) + self._login_headers('text/html', msglen, calling_domain) + self._write(msg) + fitness_performance(getreq_start_time, self.server.fitness, + '_GET', 'show specification screen', + self.server.debug) + return + if html_getreq and users_in_path and authorized and \ self.path.endswith('/accesskeys'): nickname = self.path.split('/users/')[1] @@ -16683,6 +16785,14 @@ class PubServer(BaseHTTPRequestHandler): self.server.base_dir, getreq_start_time) return + # show images within https://instancedomain/activitypub + if self.path.startswith('/activitypub-tutorial-'): + if self.path.endswith('.png'): + self._show_specification_image(self.path, + self.server.base_dir, + getreq_start_time) + return + # help screen images # Note that this comes before the busy flag to avoid conflicts if self.path.startswith('/helpimages/'): diff --git a/defaultcategories/en.xml b/defaultcategories/en.xml index a7f9bfbd9..8add3d523 100644 --- a/defaultcategories/en.xml +++ b/defaultcategories/en.xml @@ -6,832 +6,832 @@ funding crowdfund transcrowdfund ngi0 goals donate disabilitycrowdfund disabledcrowdfund erschöpfung funding ethicalfunding mastercard netzfundstück fundraiser membership nzSuperFund ngizero zerohedge DefundLine3 vkickstarter fundingmatters desperate opencollective patreon FundOSS taler BegPost nlnet gnutaler transcrowdfundrt fediFunded charity SeedCommons crowdfunding RevenueModels donations EUFunds - Sat, 11 Jun 2022 19:30:54 UT + Sat, 25 Jun 2022 09:46:04 UT farming farming goatsofmastodon goats johndeere deer chicken chickens mastogoats cobrachicken BiologicalFarming - Sat, 11 Jun 2022 19:30:54 UT + Sat, 25 Jun 2022 09:46:04 UT politics - minimumwage NHIExpress nanotech cohousing publichousing asterisk BoomerCringe classwar ForeverAffordableHousing authoritarianism wampum commonshour nationalsecurity superpowers move feedtech firetv billionaireFanClub alec whitenationalists whitenationalism greenpass KochNetwork HeritageFoundation NeoConfederatcy KochIndustries CatoInstitute eunomia MercatusCenter opentech hatecrime communitygardens CapitalismInSpace farright CorporateSpeak maid BorisJohnsonMustGo BorisJohnsonResign techcurn nonazisdu greatergood transmutualaid horizontalidad israeliapartheid antisemitic KnowledgeBank volt technicaldebt risk kropotkin eugenetica skincare multiarch greenock FocusOnPolitics cyberwarfare decolonialism nonazisdo surge ww3 politie Socialisme putin Decompetition tory antisemites capitalists shareandsupport freechoice socialcontrol intersectionaliteit transformativejustice rightwing act anarchism hate conspiracytheory TakeOurPowerBack redessociais solidarität trump Anarchy association cia socialjustice neoliberalisme eee workerowned alwaysantifascist sabotage qtibpoc VivotecniaCrueldadAnimal pressfreedom community systemicracism wageslavery immigration antifascismo liberal telemetry dissent liberation unions endprisonslavery laws fascism farmersrprotest techtuesday warc skyofmywindow techthursday nooneisillegal capitale freedomofspeech anarchist prochoice freeexpression EthnicCleansing anticapitalist RacialHealing fascisme liberalisme humanrights Anarchisme crime leftists Socialism ukpol FreeKeithLamar Antifascisme copwatch capitalismkills homeless menschenrecht left petition BorisJohnson meteorología independant antifaschismus freedom EURvalues greens photomanipulation techtalk bikesforrefugees housingcrisis techdirt ontologicalanarchy labourabolition techsit union tories abolitionnow wegmetdemonarchie abuse DefundThePolice nazis earthship SocialCritique repression pelmets Jurastil meto devimage meeting polizeigewalt dannenröderwald venturecapital FediAntifa police nzpolitics antifascists oilwars multiverse antropocene kommunismus censored postttruth technik rightorepair control nuclear bjp ThirdRunway conservatives multi seaslug UnitedInDiversity maidsafe testing nazisme hierarchy avatars chehalisrivermutualaidnetwork ImmigrationEnforcement election republicans opinie diversity solidarity chipstrike techwear communitycontrol metantispecismo hypocrits slavery sociaalDarwinisme metoo Avanti anticiv refugeeswelcome Coronariots seashepherd ecotech reform2 mybodymychoice generalstrike fuckBiden call2power DefendDemocracy personhood wildfire neoliberal antipolitics AntiLiberalisme abolition digitalfreedom transrightsarehumanrights ScottishElections2021 mayday unionyes again hatespeech fascists antropoceno policerepression LateStageOfCapitalism earth stopchasseacourre solawi ciencia smashturkishfascism afropessimism antivax cognition fedibikes Electricians apartheidisrael burntheprisons conservation seamonkey trumpism cyberlaw bossnapping peerproduction policiaasesina atlantik corporations iww pushbacksareillegal indianpirates DisabilityPolicy vice SomethingIsGoingWrongHere til labor intersectional commons choice depressionen feelthefreedom Riot corporatewatch postcapitalism intersectionalfeminism smalltechnology wageslave uspol frontex communism mutualaidpdx RemoveThePolice makecapitalismhistory deathvalley NewPoliticalMap chipocalypse criminalization abolishpolice nationalisme oist methaan anarchisten Immigration competition biometric brexitreality neoliberalism NeverTrustSimone socialecology wald whistleblower wroclawskierewolucjonistki icons MutualAid capitalism ACAB prisons unsolicitedadvice feministhackmeetings wealth supremecourt conspiracytheories corporatecrime DirectAction ChildLabour FossilFreeRevolution parliament communist daretocare KeirStarmer NoMoreEmptyPromises greenpeace digitalslavery bushfire censor decrecimiento helmet refugeesgr taoteching technopolice anarchismus policeviolence politiikka kapitalisme retrotechnology ZwartFront bipoc housing decriminalization decolonisation politics WarCommentary inclusivity parametric gravimetry bosch Megaprisons decreased publicknowledge antiracism government neocities greendatacenter SocialDarwinism repressions brightgreen poc privatisierung anarchisme wayfire feminist colonialism DominicCummings nzpol peoplepower homelessness Bookchin informationtechnology ClemencyNow Inauguration2021 arran Revolutionary techthoughts brexit anarchistaction antimonopoly privileged totalitarianism localelections raid privatisation stillwithher TyskySour Labour democraciasindical nonprofitindustrialcomplex fires LabourLeaks riots freethemall bolsonarogenocida green SocialJustice neoliberaal corporateStateTotalitarianism labour BAME decolonizeyourmind alternative privilege antikapitalisme hamas AbolishPrisonsAbolishPolice despotism mntreform damangecontrol earthovershootday DecentraliseThePlanet anti surfaceworldblows ecofascism opentechnologyfund depression nuclearpower popularitycontest usestandardpowerjacksforfucksake pdxmutualaid PoliceTenSeven LhubTV SocietalChange facialrecognition ModiFailsIndia cotech antisemitism politicaeattualità corruption florespondece hypocrisy BernieSandersMeme staterepression anarchy fire colonization Feminism propaganda dcc greenit endsars celebratingfreedom Antillia corporateState SocialCentres decolonization digitalrights feminism freepress Lhub HightechProblems datacenter osstotd academictwitter farm problem hochschwarzwald collaboration polizei neo democracy anarchistki Govts antikapitalismus powerpolitics bikes 18Source hungerstrike censorshipBook radicaltech 56aInfoshop saytheirnames witchesagainstwhitesupremacy gulag digitalmarketsact yes socialist conspiracy anarchistbookclub redandanarchistskinheads peace housingproject hostileenvironment technically lawyer corporate radicaldemocracy endmodernslaveryatsea PritiPatel nationaalparkdebiesbosch stonewallwasariot oiseau surveillance latestagecapitalism bos racist economiafeminista cancelculture postcolonial Syndicalism callfortesting dec AmbLastillaAlCor Selfsuffciency nonazis MexicanRevolution elections ACABPoland greatgreenwall RussellMaroonShoatz LhubSocial OctoberRevolution bigproblems logitech methods Flatseal repressionen warcrimes sea policing white governance waldstattasphalt prisoners earthday2021 warrants policebrutality earthday antirepression capitalismo borisjohnson wildfires fritolaystrike ACABSpring2021 technopopulism Anarchist deepspeech notacopshop body johnson rhetoric press routerfreedom Anarchism mutuality StillTwitterpated whitehouse metropolitanpolice espresso LabourParty haltandcatchfire freedomofexpression censorship deathbycapitalism communities CancelCulture decolonize deconstruct HanauWarKeinEinzelfall musictechnology EatTheRich druglawreform keinmenschistillegal immigrationraids emmet racism fascisten decenterwhiteness Biden kapitalismus FossilFreePolitics ChineseAppBan multiplesklerose todoist cooperative trespass modi NtechLab antifa alternativen law prison chip LabourMovement deathtoamerica manipulation ParticipatoryCultureFoundation firetotheprisons consumer solidaritaet PlanetarySocial britpol financial gravimetrie BiodiversityDay Capitalism surveillancecapitalism leftist greenland general Revolution ukpolitics greenparty mdcommunity glenngreenwald JeremyCorbyn blacklivesmatter freedomofthepress academicfreedom wled HeinsbergStudie apartheid FreeAlabamaMovement Anarchismus bundespolizei strike mononeon rentstrike evergreen equality dsa informationstechnik piracy liberty lawandorder feminismus migration power IndividualSovereignty oiseaux neoist edtech capitalismenumérique mutualaid capital waldspaziergang cymru multipleexposure socialsolidarityeconomy criminal AbolishPrison solidaritynotcharity anarchists fascist righttochoice InformationAsymmetry inequality apocalypseworld DefundSurveillanceCapitalism feministserver prisonersupport platformcapitalism decolonizeconservation anarchistprisoners whistleblowers polizeiproblem notallmen opensoundcontrol hf prisonabolition fightthepower UniversalBasicServices fuckcapitalism speech uselection IDPol Antifa deathtofascism mediafreedom lesanarchistes libertarianism Slavetrade PostTrade met democracia antitrespass drugtesting populism selfcensorship consumerism greenwashing ourstreets reform MeToo failedstatesaxony extremist bright freespeech comune anticonsumerism kapital refugee neorodiversiteit whitesupremacy SueveillanceCapitalism refugees BlackProtestLegalSupport riot BernieSanders texttospeech acab ecology yesminister realcompetition antifascist SurveillanceCapitalism vimeo antifascism GlobalCapitalism Politics homeoffice bodyshaming empowerment whitepaper pdx seascape freewestpapua eris AnarchistUnionofIranandAfghanistan hambacherwald dui nyt justice powstaniewgetciewarszawskim sunnytech FolksWhoFailAtCapitalism expression feudalism espressif violence legalmatters tech capitalismodisorveglianza SocialCreditScores war erdogan un FederalOffice punishment Chatkontrolle technologynews fediversity greenvps lawyers endcapitalism uspolitics deathrock totalitarian communityserver fucknazis brexitwasworthit PuritySpirals EarnItAct citizenship newgreendeal publicconsultation decisionmaking nonColonial bodyscanners foxhunting openfire freedomnotfear RomaniFeminism euromaidan socialism lobbying bikeshop unionbusting expressmending techtips Feminisme technologyAloneWillNotSaveUs antimilitarism DPCIreland fuckputin refugeesarewelcome surveillanceware cybercrime notmetoo anarchistgraffiti precrime humanetech greifswald autonomy MorteAlCapitalismo techjobs antibodies firstworldproblems powerpoint leftwing rageagainstthemachine greenwash firebase deviceneutrality institutionalcorruption contributopia justiceforElijah humanpower deathsentence digitalfeudalism logic racisme PiratesOfTheSingleMarket dueprocess apoc theanarchistlibrary abortion unitednations capitalisation AutonomyOfInformation InformationAutonomy zombieapocalypse labornotes survaillanceCapitalism War lie liars multiplayer smallvictories robotsolidarity WWIII passports FrontStory avatar wages extraordinaryrenditions fraud ChildPoverty politicalprisoners FuckImperialism SistersUncut becomeungovernable beEthical sunny predictivepolicing counterinsurgency warfare oligarchs calmtech UtopianAnarchist witchesVsPatriarchy meet prisonsupport fedimeet anarchistart lobbycontrol dma Pepijnvanhouwelingeniseennazi earthquake openrecognition antiblackness neonazis witches 4freedoms anticapitalism thinblueline jeremycorbyn rightLibertarianBullshit BoricPresidente AnotherAngryVoice multiboot digitalcommons corbyn vidcommons penetrationtesting uberisfraud DownfallTheCaseAgainstBoeing nano Rant roskomnadzor anarchy2023 deepfakes deepfake migrantifa BiodiversityCrisis freedoms artadvice levelling zapatista zapatistas wealthinequality techontology governmentcorruption freedomofinformation federalgovernment welcome revolt overshoot communitynetworks multipolar InEurosWeTrust militarism federal sonar antifascisten defundthepolice qualitativemethods financialhelp care colonisation Environment DavidLammy prisonerart burnCapitalism liberties politicalprisoner chiapasmexico chiapas decepticons demokratie fedipower pitchmeeting bolsonaro medtech governments MutualAidMonday antisemitismus citizens ShantiMathias blair landlords heads starmer nazism pandoraspapers ToryScum oppression techutopia citizenscience pushback whitealbum labourparty electionpresidentielle2022 TonyBlairPetition knighthood SmallStories album powerless politiegeweld earthlinged influenceindustry speechtotext commongood labo fear hope fakedemocracy refusaloflabor antifascista intersectionality dictatorships conspiracists conspiranoia criphumanimal disableddiversity Federal_Bureau_of_Prisons Political_Prisoner Prisoner_Rights white_supremacists white_supremacy civictech facebookwhistleblower kapitalisten capitalist islamophobia mindTheBias facial TheRevolutionWillBeFederated digitaldemocracy civilliberties SelectCommittees institutionalracism monk lawenforcement StoryTesting zwartepietisracisme solidariteit notch freekurdistan privilegeescalation techcrap trolleyproblem newspeak directdemocracy sealifeart repository IsolateTrump Trump techshop uselessComplaining surface celeb multimedia utopia PatriotFail AlertaAntifascista politicaltheory wget mindcontrol zombie greenlight StoryCorps distributopia labourrights patriotfront haymarketaffair RachelRiley frenchelections2022 Ireland mending fintech antiracist bigcitygreens techtip problematic antiTERF romantic fosh greenanarchism french RepowerEU celebs ecosocialism BonfireZappa RevolutionaryStruggle massmigration auspol election2022 laborday formalmethods QuantitativeInformationFlow ResponsibleComputing StoryGraph kurdistan peoplepowered theturtlemoves worldpressfreedomday nationalism vulturecapital abortionrights monopol worldpressfreedomindex fucklandlords antiLawn OnlineDialectology communisten anarchocommunism bikesque birthcontrol slowmovement veganarchist communistparty nzlabour pirates zapatistasolidaritynetwork polar antique anarchistwristwatches antiabortion narcissisticabuse civic neonazi turtle campnanowrimo EUsolidarity G7ForeignAffairsSousSherpas antix totalliberation euparliament Blairism EUvsChildSexualAbuse SoftwareSyndicalism decolonial apocalypse Agrivoltaics billionaire Scottish SurveillanceCapital Streeting illegalinvasion rightLibertarian ecological unittesting maidan animalliberation ScrollBarRant farmer FundamentalRights freeasinspeech graffiti lefty conservative dina bodymod guncontrol FactoryBot kurdishOppression discrimination PsychologicalWarfare retrotech AnticapitalistMemes court ArtisticExpression liveStories MassCommunications psychologicalwarfare quantisation symmetry decolonialization postcoloniality neoliberalismus axon visiblemending capitalismsucks FuckCapitalism blackanarchism hypercapitalism SingleMarket liberalvalues regulation tesa inlaws22 + minimumwage NHIExpress nanotech cohousing publichousing asterisk BoomerCringe classwar ForeverAffordableHousing authoritarianism wampum commonshour nationalsecurity superpowers move feedtech firetv billionaireFanClub alec whitenationalists whitenationalism greenpass KochNetwork HeritageFoundation NeoConfederatcy KochIndustries CatoInstitute eunomia MercatusCenter opentech hatecrime communitygardens CapitalismInSpace farright CorporateSpeak maid BorisJohnsonMustGo BorisJohnsonResign techcurn nonazisdu greatergood transmutualaid horizontalidad israeliapartheid antisemitic KnowledgeBank volt technicaldebt risk kropotkin eugenetica skincare multiarch greenock FocusOnPolitics cyberwarfare decolonialism nonazisdo surge ww3 politie Socialisme putin Decompetition tory antisemites capitalists shareandsupport freechoice socialcontrol intersectionaliteit transformativejustice rightwing act anarchism hate conspiracytheory TakeOurPowerBack redessociais solidarität trump Anarchy association cia socialjustice neoliberalisme eee workerowned alwaysantifascist sabotage qtibpoc VivotecniaCrueldadAnimal pressfreedom community systemicracism wageslavery immigration antifascismo liberal telemetry dissent liberation unions endprisonslavery laws fascism farmersrprotest techtuesday warc skyofmywindow techthursday nooneisillegal capitale freedomofspeech anarchist prochoice freeexpression EthnicCleansing anticapitalist RacialHealing fascisme liberalisme humanrights Anarchisme crime leftists Socialism ukpol FreeKeithLamar Antifascisme copwatch capitalismkills homeless menschenrecht left petition BorisJohnson meteorología independant antifaschismus freedom EURvalues greens photomanipulation techtalk bikesforrefugees housingcrisis techdirt ontologicalanarchy labourabolition techsit union tories abolitionnow wegmetdemonarchie abuse DefundThePolice nazis earthship SocialCritique repression pelmets Jurastil meto devimage meeting polizeigewalt dannenröderwald venturecapital FediAntifa police nzpolitics antifascists oilwars multiverse antropocene kommunismus censored postttruth technik rightorepair control nuclear bjp ThirdRunway conservatives multi seaslug UnitedInDiversity maidsafe testing nazisme hierarchy avatars chehalisrivermutualaidnetwork ImmigrationEnforcement election republicans opinie diversity solidarity chipstrike techwear communitycontrol metantispecismo hypocrits slavery sociaalDarwinisme metoo Avanti anticiv refugeeswelcome Coronariots seashepherd ecotech reform2 mybodymychoice generalstrike fuckBiden call2power DefendDemocracy personhood wildfire neoliberal antipolitics AntiLiberalisme abolition digitalfreedom transrightsarehumanrights ScottishElections2021 mayday unionyes again hatespeech fascists antropoceno policerepression LateStageOfCapitalism earth stopchasseacourre solawi ciencia smashturkishfascism afropessimism antivax cognition fedibikes Electricians apartheidisrael burntheprisons conservation seamonkey trumpism cyberlaw bossnapping peerproduction policiaasesina atlantik corporations iww pushbacksareillegal indianpirates DisabilityPolicy vice SomethingIsGoingWrongHere til labor intersectional commons choice depressionen feelthefreedom Riot corporatewatch postcapitalism intersectionalfeminism smalltechnology wageslave uspol frontex communism mutualaidpdx RemoveThePolice makecapitalismhistory deathvalley NewPoliticalMap chipocalypse criminalization abolishpolice nationalisme oist methaan anarchisten Immigration competition biometric brexitreality neoliberalism NeverTrustSimone socialecology wald whistleblower wroclawskierewolucjonistki icons MutualAid capitalism ACAB prisons unsolicitedadvice feministhackmeetings wealth supremecourt conspiracytheories corporatecrime DirectAction ChildLabour FossilFreeRevolution parliament communist daretocare KeirStarmer NoMoreEmptyPromises greenpeace digitalslavery bushfire censor decrecimiento helmet refugeesgr taoteching technopolice anarchismus policeviolence politiikka kapitalisme retrotechnology ZwartFront bipoc housing decriminalization decolonisation politics WarCommentary inclusivity parametric gravimetry bosch Megaprisons decreased publicknowledge antiracism government neocities greendatacenter SocialDarwinism repressions brightgreen poc privatisierung anarchisme wayfire feminist colonialism DominicCummings nzpol peoplepower homelessness Bookchin informationtechnology ClemencyNow Inauguration2021 arran Revolutionary techthoughts brexit anarchistaction antimonopoly privileged totalitarianism localelections raid privatisation stillwithher TyskySour Labour democraciasindical nonprofitindustrialcomplex fires LabourLeaks riots freethemall bolsonarogenocida green SocialJustice neoliberaal corporateStateTotalitarianism labour BAME decolonizeyourmind alternative privilege antikapitalisme hamas AbolishPrisonsAbolishPolice despotism mntreform damangecontrol earthovershootday DecentraliseThePlanet anti surfaceworldblows ecofascism opentechnologyfund depression nuclearpower popularitycontest usestandardpowerjacksforfucksake pdxmutualaid PoliceTenSeven LhubTV SocietalChange facialrecognition ModiFailsIndia cotech antisemitism politicaeattualità corruption florespondece hypocrisy BernieSandersMeme staterepression anarchy fire colonization Feminism propaganda dcc greenit endsars celebratingfreedom Antillia corporateState SocialCentres decolonization digitalrights feminism freepress Lhub HightechProblems datacenter osstotd academictwitter farm problem hochschwarzwald collaboration polizei neo democracy anarchistki Govts antikapitalismus powerpolitics bikes 18Source hungerstrike censorshipBook radicaltech 56aInfoshop saytheirnames witchesagainstwhitesupremacy gulag digitalmarketsact yes socialist conspiracy anarchistbookclub redandanarchistskinheads peace housingproject hostileenvironment technically lawyer corporate radicaldemocracy endmodernslaveryatsea PritiPatel nationaalparkdebiesbosch stonewallwasariot oiseau surveillance latestagecapitalism bos racist economiafeminista cancelculture postcolonial Syndicalism callfortesting dec AmbLastillaAlCor Selfsuffciency nonazis MexicanRevolution elections ACABPoland greatgreenwall RussellMaroonShoatz LhubSocial OctoberRevolution bigproblems logitech methods Flatseal repressionen warcrimes sea policing white governance waldstattasphalt prisoners earthday2021 warrants policebrutality earthday antirepression capitalismo borisjohnson wildfires fritolaystrike ACABSpring2021 technopopulism Anarchist deepspeech notacopshop body johnson rhetoric press routerfreedom Anarchism mutuality StillTwitterpated whitehouse metropolitanpolice espresso LabourParty haltandcatchfire freedomofexpression censorship deathbycapitalism communities CancelCulture decolonize deconstruct HanauWarKeinEinzelfall musictechnology EatTheRich druglawreform keinmenschistillegal immigrationraids emmet racism fascisten decenterwhiteness Biden kapitalismus FossilFreePolitics ChineseAppBan multiplesklerose todoist cooperative trespass modi NtechLab antifa alternativen law prison chip LabourMovement deathtoamerica manipulation ParticipatoryCultureFoundation firetotheprisons consumer solidaritaet PlanetarySocial britpol financial gravimetrie BiodiversityDay Capitalism surveillancecapitalism leftist greenland general Revolution ukpolitics greenparty mdcommunity glenngreenwald JeremyCorbyn blacklivesmatter freedomofthepress academicfreedom wled HeinsbergStudie apartheid FreeAlabamaMovement Anarchismus bundespolizei strike mononeon rentstrike evergreen equality dsa informationstechnik piracy liberty lawandorder feminismus migration power IndividualSovereignty oiseaux neoist edtech capitalismenumérique mutualaid capital waldspaziergang cymru multipleexposure socialsolidarityeconomy criminal AbolishPrison solidaritynotcharity anarchists fascist righttochoice InformationAsymmetry inequality apocalypseworld DefundSurveillanceCapitalism feministserver prisonersupport platformcapitalism decolonizeconservation anarchistprisoners whistleblowers polizeiproblem notallmen opensoundcontrol hf prisonabolition fightthepower UniversalBasicServices fuckcapitalism speech uselection IDPol Antifa deathtofascism mediafreedom lesanarchistes libertarianism Slavetrade PostTrade met democracia antitrespass drugtesting populism selfcensorship consumerism greenwashing ourstreets reform MeToo failedstatesaxony extremist bright freespeech comune anticonsumerism kapital refugee neorodiversiteit whitesupremacy SueveillanceCapitalism refugees BlackProtestLegalSupport riot BernieSanders texttospeech acab ecology yesminister realcompetition antifascist SurveillanceCapitalism vimeo antifascism GlobalCapitalism Politics homeoffice bodyshaming empowerment whitepaper pdx seascape freewestpapua eris AnarchistUnionofIranandAfghanistan hambacherwald dui nyt justice powstaniewgetciewarszawskim sunnytech FolksWhoFailAtCapitalism expression feudalism espressif violence legalmatters tech capitalismodisorveglianza SocialCreditScores war erdogan un FederalOffice punishment Chatkontrolle technologynews fediversity greenvps lawyers endcapitalism uspolitics deathrock totalitarian communityserver fucknazis brexitwasworthit PuritySpirals EarnItAct citizenship newgreendeal publicconsultation decisionmaking nonColonial bodyscanners foxhunting openfire freedomnotfear RomaniFeminism euromaidan socialism lobbying bikeshop unionbusting expressmending techtips Feminisme technologyAloneWillNotSaveUs antimilitarism DPCIreland fuckputin refugeesarewelcome surveillanceware cybercrime notmetoo anarchistgraffiti precrime humanetech greifswald autonomy MorteAlCapitalismo techjobs antibodies firstworldproblems powerpoint leftwing rageagainstthemachine greenwash firebase deviceneutrality institutionalcorruption contributopia justiceforElijah humanpower deathsentence digitalfeudalism logic racisme PiratesOfTheSingleMarket dueprocess apoc theanarchistlibrary unitednations capitalisation AutonomyOfInformation InformationAutonomy zombieapocalypse labornotes survaillanceCapitalism War lie liars multiplayer smallvictories robotsolidarity WWIII passports FrontStory avatar wages extraordinaryrenditions fraud ChildPoverty politicalprisoners FuckImperialism SistersUncut becomeungovernable beEthical sunny predictivepolicing counterinsurgency warfare oligarchs calmtech UtopianAnarchist witchesVsPatriarchy meet prisonsupport fedimeet anarchistart lobbycontrol dma Pepijnvanhouwelingeniseennazi earthquake openrecognition antiblackness neonazis witches 4freedoms anticapitalism thinblueline jeremycorbyn rightLibertarianBullshit BoricPresidente AnotherAngryVoice multiboot digitalcommons corbyn vidcommons penetrationtesting uberisfraud DownfallTheCaseAgainstBoeing nano Rant roskomnadzor anarchy2023 deepfakes deepfake migrantifa BiodiversityCrisis freedoms artadvice levelling zapatista zapatistas wealthinequality techontology governmentcorruption freedomofinformation federalgovernment welcome revolt overshoot communitynetworks multipolar InEurosWeTrust militarism federal sonar antifascisten defundthepolice qualitativemethods financialhelp care colonisation Environment DavidLammy prisonerart burnCapitalism liberties politicalprisoner chiapasmexico chiapas decepticons demokratie fedipower pitchmeeting bolsonaro medtech governments MutualAidMonday antisemitismus citizens ShantiMathias blair landlords heads starmer nazism pandoraspapers ToryScum oppression techutopia citizenscience pushback whitealbum labourparty electionpresidentielle2022 TonyBlairPetition knighthood SmallStories album powerless politiegeweld earthlinged influenceindustry speechtotext commongood labo fear hope fakedemocracy refusaloflabor antifascista intersectionality dictatorships conspiracists conspiranoia criphumanimal disableddiversity Federal_Bureau_of_Prisons Political_Prisoner Prisoner_Rights white_supremacists white_supremacy civictech facebookwhistleblower kapitalisten capitalist islamophobia mindTheBias facial TheRevolutionWillBeFederated digitaldemocracy civilliberties SelectCommittees institutionalracism monk lawenforcement StoryTesting zwartepietisracisme solidariteit notch freekurdistan privilegeescalation techcrap trolleyproblem newspeak directdemocracy sealifeart repository IsolateTrump Trump techshop uselessComplaining surface celeb multimedia utopia PatriotFail AlertaAntifascista politicaltheory wget mindcontrol zombie greenlight StoryCorps distributopia labourrights patriotfront haymarketaffair RachelRiley frenchelections2022 Ireland fintech antiracist bigcitygreens techtip problematic antiTERF romantic fosh greenanarchism french RepowerEU celebs ecosocialism BonfireZappa RevolutionaryStruggle massmigration auspol election2022 laborday formalmethods QuantitativeInformationFlow ResponsibleComputing StoryGraph kurdistan peoplepowered theturtlemoves worldpressfreedomday nationalism vulturecapital abortionrights monopol worldpressfreedomindex fucklandlords OnlineDialectology communisten anarchocommunism bikesque birthcontrol slowmovement veganarchist communistparty nzlabour pirates zapatistasolidaritynetwork polar antique anarchistwristwatches antiabortion narcissisticabuse civic neonazi turtle campnanowrimo EUsolidarity G7ForeignAffairsSousSherpas antix totalliberation euparliament Blairism EUvsChildSexualAbuse SoftwareSyndicalism decolonial apocalypse Agrivoltaics billionaire Scottish SurveillanceCapital Streeting illegalinvasion rightLibertarian ecological unittesting maidan animalliberation ScrollBarRant farmer FundamentalRights freeasinspeech graffiti lefty conservative dina bodymod guncontrol FactoryBot kurdishOppression discrimination PsychologicalWarfare retrotech AnticapitalistMemes court ArtisticExpression liveStories MassCommunications psychologicalwarfare quantisation symmetry decolonialization postcoloniality neoliberalismus axon visiblemending capitalismsucks FuckCapitalism blackanarchism hypercapitalism SingleMarket liberalvalues regulation tesa inlaws22 pussyriot enforcement earthzilla Vollacommunitydays NationalSocialism transright OpenGovernance odenwald FixingFactories tradeunions armthehomeless mayfirst inclusion atlantis toriesout BurnTheState Skwarkbox EvolvePolitics RoeVsWadeOverturned RodeVSWade roevswade roevwade childabuse - Sat, 11 Jun 2022 19:30:54 UT + Sat, 25 Jun 2022 09:46:04 UT books - goodread fakeaccounts TheDawnofEverything mustread publickey freebooks GoodReads thread ASMlitreview ConversationStoppersNotebook readinggroup bookstore publicvoit bookbinding preview justhollythings secondhandbooks bookclub fake earthsea review ebooks docbook book notebook public amreading publishing republicday publichealth bookworm bookwyrm artbook republique bookreview reading theLibrary audiobooks Gempub selfpublishing sketchbook wayfarers books peerreview bookreviews failbooks ebook wikibooks booktodon epub cookbook bibliothèque AnarchoBookClub sketbook ereader IffyBooks library booklaunch AdventReading monthlyreview nowreading bookrecommendations ReadanEbookWeek coverdesign lightnovel novel AdventReadings publicspaces account reviews desktoppublishing read zlibrary sketches recommendations fakefood scifibooks findereader okopress dawnofeverything sketchnote yearinreview fakereviews accounts ereaders scifiart tinysketchbook ssffbookclub bookchin dreadfulDocs Books Reading fakenews longreads tinylibrary visualnovel alreadyhere scrapbooking bookstodon musicreviews sffbooks novella publicspace SmallLoavesOfBread ReadPalestinianSpecFic + goodread fakeaccounts TheDawnofEverything mustread publickey freebooks GoodReads thread ASMlitreview ConversationStoppersNotebook readinggroup bookstore publicvoit bookbinding preview justhollythings secondhandbooks bookclub fake earthsea review ebooks docbook book notebook public amreading publishing republicday publichealth bookworm bookwyrm artbook republique bookreview reading theLibrary audiobooks Gempub selfpublishing sketchbook wayfarers books peerreview bookreviews failbooks ebook wikibooks booktodon epub cookbook bibliothèque AnarchoBookClub sketbook ereader IffyBooks library booklaunch AdventReading monthlyreview nowreading bookrecommendations ReadanEbookWeek coverdesign lightnovel novel AdventReadings publicspaces account reviews desktoppublishing read zlibrary sketches recommendations fakefood scifibooks findereader okopress dawnofeverything sketchnote yearinreview fakereviews accounts ereaders scifiart tinysketchbook ssffbookclub bookchin dreadfulDocs Books Reading fakenews longreads tinylibrary visualnovel alreadyhere scrapbooking bookstodon musicreviews sffbooks novella publicspace SmallLoavesOfBread ReadPalestinianSpecFic gitbook libraryofthings - Sat, 11 Jun 2022 19:30:54 UT + Sat, 25 Jun 2022 09:46:04 UT education - training edx certifications GeorgeMasonUniversity InfoPowered Africa education SchoolForAfrica PhDstudent mitbewohnerin techlearningcollective oh languages student teaching tutorials academics mit teach Lebensmittelfarbstoff elearning learning languagelearning tutorial mitkatzundkegel ec language deeplearning collect teacher cad mitteleuropa collections NationalResearchCouncil populareducation students teacherlife OtagoUniversity openeducation onlinelearning eachoneteachone TransparentClassroom gradschool investigation signlanguage europa PedagogyOfHope deepl teachers learningHomeOwnership + training edx certifications GeorgeMasonUniversity InfoPowered Africa education SchoolForAfrica PhDstudent mitbewohnerin techlearningcollective oh languages student teaching tutorials academics mit teach Lebensmittelfarbstoff elearning learning languagelearning tutorial mitkatzundkegel ec language deeplearning collect teacher cad mitteleuropa summerschool collections NationalResearchCouncil populareducation students teacherlife OtagoUniversity openeducation onlinelearning eachoneteachone TransparentClassroom gradschool investigation signlanguage europa PedagogyOfHope deepl teachers learningHomeOwnership - Sat, 11 Jun 2022 19:30:54 UT + Sat, 25 Jun 2022 09:46:04 UT music - dance GhostwoodSessions musicismyairoplane psytrance bespokesynth trance byespotify heavymetal musik Spotifydeleted unsong playlists Spotify noise metalmittwoch deathcore songstuckinmyhead mehidingundersomerock chiptunes lunarpunk metalworker patchnotes embassy eccentronic_research_council gig ambient LibreMusicChallenge musicprodution KobiRock iea travessiapelavida LaurieAnderson ics punk punkname ourbeats vollgasindiekrise indieweb musician rutasenemigas synthesizer daftpunk bootstrappable kenloach indiemusic collapseos meatpunks LibreGraphicsMeetup cipherpunk 20thcenturyjazz acousticguitar synthpop psychedelicrock steamlinux playingnow streetpunk loader hydrapaper bikepunks bandcamp mymusic pop countryrock musicians jamendo ipod skinheadmusic jam rap shoegaze mp3 nettlepunk steam indie steganography PegasusSpyware ldjam48 indieauthor composing folkrock perlligraphy nazipunksfuckoff Music strap EnvoieStopHashtagAu81212 anarchopunk eurovisionsongcontest biography musicmaking psychedelic thecure posthardcore vaporwave IndustrialMusicForIndustrialPeople Mixtip dubstep synthwave bootstrap princeday oi graphisme rave freemusic nowplaying hiphop hardcore frappuccino Musicsoft experimentalmusic nazi folk cp TravesíaPorLaVida spotify fedimusic ml bootstrapping webscraping elisamusicplayer funkloch musicbrainz eurovision lasvegas catsWithMusicalTalent PegasusSnoopingScandal eos90D soundcloud psicodelia frankiegoestohollywood gastropod whenyoulistentocoildoyouthinkofmusic trial soundsynthesis PigTrap bassguitar collapse 20thcenturymusic powerpop vinyl rock ccmusic typographie dj newwave dorkwave producing experimental celticmetal prince musicproduction chiptune scraping loa Schleprock thrash bluestacks lastfm uploadfilters tekno ripprince Eurvision maunaloa technocracy asus 1 funkwhale 20thcenturyrock eos wp playlist retrosynth NowPlaying contest libremusicproduction psychrock MusicAdvent poppy coinkydink appropriatetechnology toledo samensterk indiepop rockalternativo MusicTouring indierock pmbootstrap midi arianagrande indiecember synth guitar blues musiciens abandonedplaces music folkpunk np bass techno gmtkjam musicmonday jazz production graphics dieanstalt perl darkwave mastomusic band TheGrunge metal chipmusic graphviz tigase polychromatic funk mindjammer popos magnatune fediversemusic pegasus grunge postpunk punkrock indieauth cyberpunkmusic raveculture cleantechnologies ldjam ftp BandcampFriday elisa mixtape garagerock MusicsoftDownloader camanachd sampling lowerdecks norfolk DigitalMusic nowlistening BrooklynSaxQuartet edm remix punkposting positivetechnologies melodicdeathmetal storm DitgitalMusic musicindustry Pegasus teknoloji bassed localmusic experiment metalcore donbass technologie ThemeTune jazzpunk asustor collapseComputing punkrockTV brainfail Cyberpunk2021 steamos youth rockyou miserysmusicmusing blackmetaldecember TopSongsOf2021 Vitalium deletespotify musicbox newmusic funkrock psychedelics melodictechno linuxmusic velvetunderground algorave laipower rockbox anki musictheory choralmusic musicologist choir acoustic folkmetal MusicBusiness hexd epicmusic civilisationcollapse Music101 PDMusicList song hollywood headbanging musicvideo soundtrack trombone Oxygenfad breakcore euphonium mastosongs vision punkbandname ccchoir YoullOwnNothingAndYoullBeHappy lmms folktober underground sludgemetal doommetal PunkhousePlaylist rockandroll generativemusic videoproduction funkadelic openSourceMusicProduction dust ska chroma brain sexpistols slits xrayspex pearljam DNBRADIO jazzband OnUSound PayItAllBack ultraterrestrials musical wandavision Revision2022 Revision22 tribute DaBushBabees braintree atomwaffendivision symphonicmetal electronica bowie metalmitwoch musiclab powerbeats mustlisten sludge ballad MusicCoin TravellerAlly msteams raves ArtBrave musicproducer leonardcohen indiettrpg musicals stuck homeTravel sdp bagpipes Punk diet funkwhalesocial television ActualBandcampFriday overproduction mastomusicians musiccollab livemusic climatecollapse davidbowie Fedivision2022 MiserysMicroMusicReview punkhouse MiseryMircoMusicReviews MiseryMircoMusicReview MiserysMircoMusicReview bigmusic bagpipe elvis broadband lunar wietexperiment Eurovision2022 applemusic eurovision2022 merchantprinces FedivisionFailover council animalsinmusic othermusic pomodoromusic AbandonedPorn blackmetal fuckspotify SolarPunk spacedisco electroacoustic poly songs daft FirstFridayMusic subsonic NextCloudMusic AppleMusic sydbarret Solpunk22 intergalacticwasabimix copaceticmusichour outsidermusic recordlabel + dance GhostwoodSessions musicismyairoplane psytrance bespokesynth trance byespotify heavymetal musik Spotifydeleted unsong playlists Spotify noise metalmittwoch deathcore songstuckinmyhead mehidingundersomerock chiptunes lunarpunk metalworker patchnotes embassy eccentronic_research_council gig ambient LibreMusicChallenge musicprodution KobiRock iea travessiapelavida LaurieAnderson ics punk punkname ourbeats vollgasindiekrise indieweb musician rutasenemigas synthesizer daftpunk bootstrappable kenloach indiemusic collapseos meatpunks LibreGraphicsMeetup cipherpunk 20thcenturyjazz acousticguitar synthpop psychedelicrock steamlinux playingnow streetpunk loader hydrapaper bikepunks bandcamp mymusic pop countryrock musicians jamendo ipod skinheadmusic jam rap shoegaze mp3 nettlepunk steam indie steganography PegasusSpyware ldjam48 indieauthor composing folkrock perlligraphy nazipunksfuckoff Music strap EnvoieStopHashtagAu81212 anarchopunk eurovisionsongcontest biography musicmaking psychedelic thecure posthardcore vaporwave IndustrialMusicForIndustrialPeople Mixtip dubstep synthwave bootstrap princeday oi graphisme rave freemusic nowplaying hiphop hardcore frappuccino Musicsoft experimentalmusic nazi folk cp TravesíaPorLaVida spotify fedimusic bootstrapping webscraping elisamusicplayer funkloch musicbrainz eurovision lasvegas catsWithMusicalTalent PegasusSnoopingScandal eos90D soundcloud psicodelia frankiegoestohollywood gastropod whenyoulistentocoildoyouthinkofmusic trial soundsynthesis PigTrap bassguitar collapse 20thcenturymusic powerpop vinyl rock ccmusic typographie dj newwave dorkwave producing experimental celticmetal prince musicproduction chiptune scraping loa Schleprock thrash bluestacks lastfm uploadfilters tekno ripprince Eurvision maunaloa technocracy asus 1 funkwhale 20thcenturyrock eos wp playlist retrosynth NowPlaying contest libremusicproduction psychrock MusicAdvent poppy coinkydink appropriatetechnology toledo samensterk indiepop rockalternativo MusicTouring indierock pmbootstrap midi arianagrande indiecember synth guitar blues musiciens abandonedplaces music folkpunk np bass techno gmtkjam musicmonday jazz production graphics dieanstalt perl darkwave mastomusic band TheGrunge metal chipmusic graphviz tigase polychromatic funk mindjammer popos magnatune fediversemusic pegasus grunge postpunk punkrock indieauth cyberpunkmusic raveculture cleantechnologies ldjam ftp BandcampFriday elisa mixtape garagerock MusicsoftDownloader camanachd sampling lowerdecks norfolk DigitalMusic nowlistening BrooklynSaxQuartet edm remix punkposting positivetechnologies melodicdeathmetal storm DitgitalMusic musicindustry Pegasus teknoloji bassed localmusic experiment metalcore donbass technologie ThemeTune jazzpunk asustor collapseComputing punkrockTV brainfail Cyberpunk2021 steamos youth rockyou miserysmusicmusing blackmetaldecember TopSongsOf2021 Vitalium deletespotify musicbox newmusic funkrock psychedelics melodictechno linuxmusic velvetunderground algorave laipower rockbox anki musictheory choralmusic musicologist choir acoustic folkmetal MusicBusiness hexd epicmusic civilisationcollapse Music101 PDMusicList song hollywood headbanging musicvideo soundtrack trombone Oxygenfad breakcore euphonium mastosongs vision punkbandname ccchoir YoullOwnNothingAndYoullBeHappy lmms folktober underground sludgemetal doommetal PunkhousePlaylist rockandroll generativemusic videoproduction funkadelic openSourceMusicProduction dust ska chroma brain sexpistols slits xrayspex pearljam DNBRADIO jazzband OnUSound PayItAllBack ultraterrestrials musical wandavision Revision2022 Revision22 tribute DaBushBabees braintree atomwaffendivision symphonicmetal electronica bowie metalmitwoch musiclab powerbeats mustlisten sludge ballad MusicCoin TravellerAlly msteams raves ArtBrave musicproducer leonardcohen indiettrpg musicals stuck homeTravel sdp bagpipes Punk diet funkwhalesocial television ActualBandcampFriday overproduction mastomusicians musiccollab livemusic climatecollapse davidbowie Fedivision2022 MiserysMicroMusicReview punkhouse MiseryMircoMusicReviews MiseryMircoMusicReview MiserysMircoMusicReview bigmusic bagpipe elvis broadband lunar wietexperiment Eurovision2022 applemusic eurovision2022 merchantprinces FedivisionFailover council animalsinmusic othermusic pomodoromusic AbandonedPorn blackmetal fuckspotify SolarPunk spacedisco electroacoustic poly songs daft FirstFridayMusic subsonic NextCloudMusic AppleMusic sydbarret Solpunk22 intergalacticwasabimix copaceticmusichour outsidermusic recordlabel technomancy NextCloud NextCloudTalk funkus livesteam pipe BagpipesRock GreatHighlandBagpipe alternativerock modernrock - Sat, 11 Jun 2022 19:30:54 UT + Sat, 25 Jun 2022 09:46:04 UT people - marshallmcluhan MikeParker PhilTorres davidwengrow WilliamDeresiewicz ImogenSchoots QueenFeetTruther shamelessplug CharlesKochFoundation charleskoch JasonRoss trom samhain virtualisation qjackctl MarinaSitrin Haugen FionaHarvey JackMcDonald MaryBeard nathanschneider robertsrules thatcher zürich AaronSwartz JohnVoliatis epstein buildbackbetter wannacry graeber jeffbezos simonbridges BruceJesson JamesMurdoch chomsky EricAdams NicoleClaveloux aaronsw carlorovelli kathleenstock betterplaceorg death personal douglasrushkoff Melissa harold paul Zachary JusticiaParaVictoria danielle dylan scott Barbara Kenneth theresa Denise FrankLeech louisrossmann Jesse Adam justin JonathanCulbreath elinorostrom katherine judith Karen Patricia russell Metalang99 juan diane Rebecca donna LouisRossmann olivia peter troy William denise NathanDufour Betty evelyn Christina brittany Jennifer Gregory Wayne Andrychów ethan Ralph Peter ecc americalatina jacobites jean laura betty nathan brownmark margaret alexanderlukashenko Bryan Virginia Jose Rose eric james BomberBradbury david Joshua christine haaland Billy CapitolRiot ostrom natalie daniel Jonathan Michael susan George johnny MichaelWood Lauren christina Amy kevin Natalie kenneth noahkathryn mannaggia Lawrence aaron donaldtrump gregory LindaLindas Amber alexa Robert Edward Patrick Rachel Verwaltunsgericht willemalexander bruce Forms dennis Kayla frank KarenArmstrong Diane AliceHasters Donna Jack Paul Janice Brenda alexis sylvanasimons timothy vincent Alice sarah amy Daniel RobertKMerton jeff charlotte carolyn Emma Kyle Sean emily linda Olivia Eugene johnpilger Donald janet ryan Bookmarker stdavids RichardDWolff bryan DonnaStrickland Hannah anna doctorow MalcolmJohnson gretathunberg Catherine Alexander Christopher bob doris Anthony singlemarket Jean diana Beverly frances Sarah margaretthatcher Jordan peterrdevries JensStuhldreier Anna Ethan hackchrist Amanda jeremy donald NatashaAKelly mark matthew julie BenSchrader DrJessicaHutchings stephanie Jerry SEKFrankfurt Diana David Linda adam richard henry RoyalFamily Isabella elizabeth nachrichten steven jessica Walter dry jeffrey Kevin Justin mountanMaryland grace martinluther PeterGelderloos brandon mary anwarshaikh jamesbaldwin sharon nicholas Benjamin GeorgeFloyd amanda Emily Ruth heather stephenlawrence albert julianassange Julie marktwirtschaft nancy stephen Cannabis James CarlSpender Megan bettydog Raymond michelle frankgehtran Nancy Fedimarket Frances Henry andrew kevinRuddCoup Jessica zurich IgorBancer julia marketing Dorothy BadVisualisation LoganGrendel Jason Charles JonathanMorris Danielle Brandon jose noamchomsky virginia beverly obituary ronald Bob BarbaraKay madison alberta ceph Helen MarkoBogoievski Jeff helen Sophia larry bookmarks dorothy Dennis JamesEPetts monbiot Nicholas Frank jack Stephen Janet ScottRosenberg georgemonbiot Alexis Pamela Jacqueline Dylan roy brenda jackal jesse Roger Jeffrey Brittany Shirley putkevinback Nathan christopher Carol Susan jason Philip Logan sandra jacob rose isabella Cynthia Joan jackieweaver aldoushuxley Maria martha Randy SarahEverard carl kyle karen raymond alice jerry carol RussellBrown Victoria Steven Douglas Lisa JonathanZittrain Julia joshua jacqueline Ashley assange eugene Bruce Albert Austin thomas Evelyn Gary Scott kimberly lawrence virgin jennifer Russell austin betterlatethannever ShhDontTellJack logan Laura Chris walters Teresa GeorgeGalloway Aaron Keith brian marktwain maryanning LamySafari maria Joseph Andrew Vincent Katherine Joyce NathanJRobinson lauren Ryan amber davidgraeber UrsulaFranklin alan ralph princephilip DennisTheMenace megan Kathleen sophia Cheryl abigail cynthia john richardstallman Alan AnnihilationOfCaste Debra GeorgeHoare arthurgloria mariadb LouisFurther Christine marilyn anthony chris Berichte Elizabeth sean Louis Larry AnnSophieBarwich deborah billy Abigail joesara AndreaBeste keith Jeremy CapitolRiots markkennedy zachary ruth Grace teresa Doris benjamin Willie george PeterHitchens methane barbara scottish Charlotte philip DaveCunliffe ethanzuckerman randy Margaret Heather Bradley Jacob shirley pamela Matthew Nicole joan judy Kelly savannah Brian melissa Sandra stallman markstone joseph oberverwaltungsgericht andrea shamelessselfplug Joe Sara robert alicevision aaronswartz better Bobby emma willie william angela rich SachaChua samuel Postmarketos tyler Thomas John kroger patricia ashley bobby roses kelly fuckamerica ThomasCahill hannah Carolyn Ann CrimsonRosella Jeangu gary wayne DavidRose Marilyn Deborah christenunie rms Sharon gare Mary frankfurt Samuel BreonnaTaylor Mark walter rebecca RaymondHill helendixon Madison Juan lisa cheryl janice ChristopherTrout jeffreyepstein Christian gerald Timothy roger edward bradley Gerald PiersMorgan patrickrachel framalang Kimberly steve Gabriel Marie EmmaFerris PeterHoffmann PaulBaran louis kathleen Arthur Gloria terry royals freejeremy bernardhickey Richard jonathan Harold shame Roy samantha DavidSeymour Carl chalice Eric AndreiKazimirov RebeccaHarvey relationships nicole Andrea Judith Terry Stephanie Johnny Angela Noah Kathryn RichardBoeth Ronald AskVanta Michelle Theresa gabrielmarie Samantha Judy michael charles GeorgeGerbner Tyler philipmorris amaryllis DouglasPFry kayla catherinealexander Martha debra JohnMichaelGreer stevewozniak joyce ursulakleguin stevemccurry stevekeen MarkKnight RobertStickgold julialang silkehelfrich carlsagan firstnation KeithRankin PeterDunne JonathanDollimore TerryMatthew ProfMichaelBaker ChristinePeterson marker corydoctorow toynbee davidrovics bettytest kiew lace JacobNielsen markup DanielIbbertson BinoyKampmark FrankfortSchool HannaArendt PDJames TruthSocial PaulWolfowitz stevebuscemi GregoryFortuin PeterBeaumont AnthonyMcGlynn JohnMearsheimer JoschaBach LexFridman ShinzenYoung shameonyou bernard MichaelOLearyIsNotACunt gordoncampbell andrewneil friends AnitaWreford SeanPhelan PeterRollins peterpan MarkTodd clientdilemmas ChrisLuxon DavidFarrier JeffMoyer RitaJabriMarkwell peterthiel saulwilliams JeanLuc taxtherich McDonaldsHacks AndrewShapiro newmarket miro ChristopherLuxon dylanlang RikMayall JonathanCook thomasbergersen Rhaski BrianHarrington CharlotteRyan DylanCleaver richharris DavidZweig HamishMcKenzie pterry donellameadows ElizabethKirk Christmas eattherich Zelenskyy chrisrock CreativeTrademark RichardShaw MichaelBurnham JesseBaughman sunroses TheSocialDilemma rosen edwardscissorhands christopheralexander AndrewSalmon FrancesHaugen Betty_White jamesbond MarshallRosenberg LesleyDoyal PatrickLeeArchibald rossulbricht scottalexander jackboxtv lukashenko Goldmark ThomasNash DefendJessica Globalisation JohnnyMemonic JohnOlivier ripaaron robertreich RichardMadeley charlottesville BarryBLongyear VidyaBalan Eric_King JesseMulligan RodJackson JenniferEder LisaLewis davidchapman tromjaro JulianBashir carljung MichaelMoorcock teamrosenkohl AndreaCarson that worseisbetter johnrestakis Joe Sara Noah Kathryn PaulDAoust ScottishArtist FreeJessicaReznicek CoryJohnson catalan BenjaminPollack JeffAtwood gnuterrypratchett huxley DrEmalineFriedman queenelizabeth davidlynch tristanharris EmmaCockerell sspl ZoeBaker brucelipton StephenJacobi ellafitzgerald johncoltrane DoraRaymaker AdaHoffmann SusannaClark jonathanstrangeandmrnorrel charleseisenstein HennyVrienten JoanneMcNeil SholaRichards RussSharek coltrane Mars JonathanMburugu myMarkmap carla mead brown sirterrypratchett nixiepixel paulofriere BarbaraBecker macdonalds browncoat LaraHollis kylehill Mark2 AnnaTsing ericjohansson Andrewboy Jacobabad DavidNickles charlesstross StanleyJohnson georgewbush JayClarke KarenHay CevitasChristiana AngelaGroothuizen richardscarry hatch avalanche Graceful_degradation SusanJeffers penrose queen JeffNoon FILAustin + marshallmcluhan MikeParker PhilTorres davidwengrow WilliamDeresiewicz ImogenSchoots QueenFeetTruther shamelessplug CharlesKochFoundation charleskoch JasonRoss trom samhain virtualisation qjackctl MarinaSitrin Haugen FionaHarvey JackMcDonald MaryBeard nathanschneider robertsrules thatcher zürich AaronSwartz JohnVoliatis epstein buildbackbetter wannacry graeber jeffbezos simonbridges BruceJesson JamesMurdoch chomsky EricAdams NicoleClaveloux aaronsw carlorovelli kathleenstock betterplaceorg death personal douglasrushkoff Melissa harold paul Zachary JusticiaParaVictoria danielle dylan scott Barbara Kenneth theresa Denise FrankLeech louisrossmann Jesse Adam justin JonathanCulbreath elinorostrom katherine judith Karen Patricia russell Metalang99 juan diane Rebecca donna LouisRossmann olivia peter troy William denise NathanDufour Betty evelyn Christina brittany Jennifer Gregory Wayne Andrychów ethan Ralph Peter ecc americalatina jacobites jean laura betty nathan brownmark margaret alexanderlukashenko Bryan Virginia Jose Rose eric james BomberBradbury david Joshua christine haaland Billy CapitolRiot ostrom natalie daniel Jonathan Michael susan George johnny MichaelWood Lauren christina Amy kevin Natalie kenneth noahkathryn mannaggia Lawrence aaron donaldtrump gregory LindaLindas Amber alexa Robert Edward Patrick Rachel Verwaltunsgericht willemalexander bruce Forms dennis Kayla frank KarenArmstrong Diane AliceHasters Donna Jack Paul Janice Brenda alexis sylvanasimons timothy vincent Alice sarah amy Daniel RobertKMerton jeff charlotte carolyn Emma Kyle Sean emily linda Olivia Eugene johnpilger Donald janet ryan Bookmarker stdavids RichardDWolff bryan DonnaStrickland Hannah anna doctorow MalcolmJohnson gretathunberg Catherine Alexander Christopher bob doris Anthony singlemarket Jean diana Beverly frances Sarah margaretthatcher Jordan peterrdevries JensStuhldreier Anna Ethan hackchrist Amanda jeremy donald NatashaAKelly mark matthew julie BenSchrader DrJessicaHutchings stephanie Jerry SEKFrankfurt Diana David Linda adam richard henry RoyalFamily Isabella elizabeth nachrichten steven jessica Walter dry jeffrey Kevin Justin mountanMaryland grace martinluther PeterGelderloos brandon mary anwarshaikh jamesbaldwin sharon nicholas Benjamin GeorgeFloyd amanda Emily Ruth heather stephenlawrence albert julianassange Julie marktwirtschaft nancy stephen Cannabis James CarlSpender Megan bettydog Raymond michelle frankgehtran Nancy Fedimarket Frances Henry andrew kevinRuddCoup Jessica zurich IgorBancer julia marketing Dorothy BadVisualisation LoganGrendel Jason Charles JonathanMorris Danielle Brandon jose noamchomsky virginia beverly obituary ronald Bob BarbaraKay madison alberta ceph Helen MarkoBogoievski Jeff helen Sophia larry bookmarks dorothy Dennis JamesEPetts monbiot Nicholas Frank jack Stephen Janet ScottRosenberg georgemonbiot Alexis Pamela Jacqueline Dylan roy brenda jackal jesse Roger Jeffrey Brittany Shirley putkevinback Nathan christopher Carol Susan jason Philip Logan sandra jacob rose isabella Cynthia Joan jackieweaver aldoushuxley Maria martha Randy SarahEverard carl kyle karen raymond alice jerry carol RussellBrown Victoria Steven Douglas Lisa JonathanZittrain Julia joshua jacqueline Ashley assange eugene Bruce Albert Austin thomas Evelyn Gary Scott kimberly lawrence virgin jennifer Russell austin betterlatethannever ShhDontTellJack logan Laura Chris walters Teresa GeorgeGalloway Aaron Keith brian marktwain maryanning LamySafari maria Joseph Andrew Vincent Katherine Joyce NathanJRobinson lauren Ryan amber davidgraeber UrsulaFranklin alan ralph princephilip DennisTheMenace megan Kathleen sophia Cheryl abigail cynthia john richardstallman Alan AnnihilationOfCaste Debra GeorgeHoare arthurgloria mariadb LouisFurther Christine marilyn anthony chris Berichte Elizabeth sean Louis Larry AnnSophieBarwich deborah billy Abigail joesara AndreaBeste keith Jeremy CapitolRiots markkennedy zachary ruth Grace teresa Doris benjamin Willie george PeterHitchens methane barbara scottish Charlotte philip DaveCunliffe ethanzuckerman randy Margaret Heather Bradley Jacob shirley pamela Matthew Nicole joan judy Kelly savannah Brian melissa Sandra stallman markstone joseph oberverwaltungsgericht andrea shamelessselfplug Joe Sara robert alicevision aaronswartz better Bobby emma willie william angela rich SachaChua samuel Postmarketos tyler Thomas John kroger patricia ashley bobby roses kelly fuckamerica ThomasCahill hannah Carolyn Ann CrimsonRosella Jeangu gary wayne DavidRose Marilyn Deborah christenunie rms Sharon gare Mary frankfurt Samuel BreonnaTaylor Mark walter rebecca RaymondHill helendixon Madison Juan lisa cheryl janice ChristopherTrout jeffreyepstein Christian gerald Timothy roger edward bradley Gerald PiersMorgan patrickrachel framalang Kimberly steve Gabriel Marie EmmaFerris PeterHoffmann PaulBaran louis kathleen Arthur Gloria terry royals freejeremy bernardhickey Richard jonathan Harold shame Roy samantha DavidSeymour Carl chalice Eric AndreiKazimirov RebeccaHarvey relationships nicole Andrea Judith Terry Stephanie Johnny Angela Noah Kathryn RichardBoeth Ronald AskVanta Michelle Theresa gabrielmarie Samantha Judy michael charles GeorgeGerbner Tyler philipmorris amaryllis DouglasPFry kayla catherinealexander Martha debra JohnMichaelGreer stevewozniak joyce ursulakleguin stevemccurry stevekeen MarkKnight RobertStickgold julialang silkehelfrich carlsagan firstnation KeithRankin PeterDunne JonathanDollimore TerryMatthew ProfMichaelBaker ChristinePeterson marker corydoctorow toynbee davidrovics bettytest kiew lace JacobNielsen markup DanielIbbertson BinoyKampmark FrankfortSchool HannaArendt PDJames TruthSocial PaulWolfowitz stevebuscemi GregoryFortuin PeterBeaumont AnthonyMcGlynn JohnMearsheimer JoschaBach LexFridman ShinzenYoung shameonyou bernard MichaelOLearyIsNotACunt gordoncampbell andrewneil friends AnitaWreford SeanPhelan PeterRollins peterpan MarkTodd clientdilemmas ChrisLuxon DavidFarrier JeffMoyer RitaJabriMarkwell peterthiel saulwilliams JeanLuc taxtherich McDonaldsHacks AndrewShapiro newmarket ChristopherLuxon dylanlang RikMayall JonathanCook thomasbergersen Rhaski BrianHarrington CharlotteRyan DylanCleaver richharris DavidZweig HamishMcKenzie pterry donellameadows ElizabethKirk Christmas eattherich Zelenskyy chrisrock CreativeTrademark RichardShaw MichaelBurnham JesseBaughman sunroses TheSocialDilemma rosen edwardscissorhands christopheralexander AndrewSalmon FrancesHaugen Betty_White jamesbond MarshallRosenberg LesleyDoyal PatrickLeeArchibald rossulbricht scottalexander jackboxtv lukashenko Goldmark ThomasNash DefendJessica Globalisation JohnnyMemonic JohnOlivier ripaaron robertreich RichardMadeley charlottesville BarryBLongyear VidyaBalan Eric_King JesseMulligan RodJackson JenniferEder LisaLewis davidchapman tromjaro JulianBashir carljung MichaelMoorcock teamrosenkohl AndreaCarson that worseisbetter johnrestakis Joe Sara Noah Kathryn PaulDAoust ScottishArtist FreeJessicaReznicek CoryJohnson catalan BenjaminPollack JeffAtwood gnuterrypratchett huxley DrEmalineFriedman queenelizabeth davidlynch tristanharris EmmaCockerell sspl ZoeBaker brucelipton StephenJacobi ellafitzgerald johncoltrane DoraRaymaker AdaHoffmann elonmusk SusannaClark jonathanstrangeandmrnorrel charleseisenstein HennyVrienten JoanneMcNeil SholaRichards RussSharek coltrane Mars JonathanMburugu myMarkmap carla mead brown sirterrypratchett nixiepixel paulofriere BarbaraBecker macdonalds browncoat LaraHollis kylehill Mark2 AnnaTsing ericjohansson Andrewboy Jacobabad DavidNickles charlesstross StanleyJohnson georgewbush JayClarke KarenHay CevitasChristiana AngelaGroothuizen richardscarry hatch avalanche Graceful_degradation SusanJeffers penrose queen JeffNoon FILAustin RichardLuscombe danielquinn AmyWilliams - Sat, 11 Jun 2022 19:30:54 UT + Sat, 25 Jun 2022 09:46:04 UT art - portrait OccupyWallStreetDate freeswitch inktober2021 inktober MaterialMaker cosmology blender inkdiary publicprivatepartnerships kritaart Rembrandt proxmox FreeVaccinesForEveryone comicbook Eversource traditionalillustration PixelArt Manningtree webzine InkedMemories sesamestreet aesthetic steampunk proudhon productivity cherrytree oilpaint economiasolidaria arttips mastoartist paperart libreart cali TraditionalArt Linke subresourceintegrity glitchart Art ocart robincolors resource urban article penandink webcomics startpage CommissionsOpen glassart afrique martialarts watercolours artsurbains artalley artvsartist2020 abstract artreference commission horrorart Earthquakes poe nomadbsd proxmoxve MartyMacMarty tgif coloringpage dccomics colored inkscape blink modelrailway artificalintelligence draw circuitsculpture ttip watercolor proceduralart existentialcomics resources poetesss memes pinksterlanddagen FediverseForum ghibligif speedpaint SankeyCharts bengarrison subpoena autisticartist barrigòtic art sona animalart krita foraBolsonaroGenocida insights FreeColouringPage anthroart urbanart sigh queerart deviantart communityresources desigualdad pastel fantasyart drawings 20thcenturyillustration grafana daria artdeco adultcolouring source J19forabolsonaro collective openstreeetmap fantasy collage jordanlynngribbleart theGalley ToryParty educpop TheArtsHole linksunten risograph pro links thinkabout dndmemes fanfic articles protein forabolsonaro PartyPooperPost harmreductionart adhdmeme MastoArtHeader openra demoscene witch FreeArtLicense wallpaper generative political streetart coverart streetcomplete stickers partners watercolour economy combyne freeculture fiberart PalestinianPoliticalPrisoners jet labyrinth educators mermay dpa artsale edu MastoArt particl PrisonNews FediverseApp urbansketchers ParticlV3 creativetoots culture ganart evenepoel opencl fiberarts polArt ink painting Leitartikel marten opencoop digitalart comic flyingonthewater kenmurestreet libreculture sartre artwork mandala FediverseTown b3d politicalcartoon blackart artsderue makingcomics glitch junkart wallpapers railway linker riso xkcd supportartists proctorio drawtober startinblox comics intelligence linkinbio conceptart mastoart urbanterror illustration artopencall Hinkley gnuimagemanipulationprogram os studioghibli 2MinuteSketch wireart cartoon artistontwittter oc csa AccidentalGraffiti OriginalCharacter educator farts poezio webcomic fleischproduktion nekodoodle DigitalArt pinkwashing partnership potentieldememe oilpainting kickstarter furryart twinkle DisabledArtist unixstickers pink fursona afriquedusud comicsans openstreetmap inkjet generativeart VaccineApartheid sticker enbyart originalart arts heartmind artbreeder 17maart fart TsunderdogArt videoart ivalice adultcoloring djmartinpowers arttherapy Cartudy extreemrechts fractal enby TattoosOfTheFediverse doodle artikel WorldLocalizationDay colouringpage worldwaterday NFTart netart signalstickers memex artschool digitalpainting politicaltheatre artvsartist dorktower maart abstractart drawing sig circular sculpture artist pcbart meme cultureshipnames concretepoetry artwithopensource pinkwug Streeck VTMtober commissions pronouns opencallforartists DesolateEarthForThePoor VizierOpLinks commissionsopen fanon KartaView alroeart article17 fountainpenink MartinVanBeynen peppertop speedpainting animalpainting visionaryart blackartist worldpay figureart zine artists heart quickdraw error supportthearts genart urbanfantasy stickerei CurzioMalaparte tree lineart smartcard pixelart alisajart openframeworks smolzine networknomicon openrailwaymap politicalpolicing JuliaHartleyBrewer fan digitalArt artistsOfMastodon glitchsoc paintings railways mermay2021 fractionalScaling print creativetoot sketching sketch pencil geopolitical FediverseOrigins perlinnoise wallstreet urbanism kritaartists signals arthabit colors characterart glitchSoc inkdrawing DialogoDeSaberes cartoons ResourceDepletion digitaldrawings 5minsketch ADayOffTwitch resonate artistforhire ArtistResidency inspiration artresource odoo animedrawing animegirl animeart mangadrawing procreateart mangaart procreate manga fibrearts fedimeme sketchbookers Mastocartolaio sipwitch witchcraft WithdrawConsentNow Painters blender3d queenofhearts walkableStreets symboliccharacters proud thewitcher anime genartclub Norwegianartist Dutchartist mangagirl watercolors smol mastoarṭ drawsomething moa indianart nativeamericanart indigenousartist theStudio 48WeeksOfColor errorerrorerror codexobscurus Linktree memecoin ezine portraitpainter transartists Sketch durban fartpreneur artinspiration aritificialintelligence artWithOpenSource adobeillustrator animeirl inspirational subcultures irishartist irishart evia logo 5MinuteSketch cine colour callforart artistslife quake nudibranchdrawing maketheswitch scribbles scaling paintover CuratorPrompts19 traditionaldrawing illustrations enbyoc fantasybooks mastoartists urbansketching AngelsOfMainStreet theatre TerrorizeThemWithQuailty reeder circuit Architecdoodle scene cineclasico witchhunt cbinsights meettheartist CuratorPrompts CuratorPrompts28 safestreets collectives fibre CuratorPrompts31 CuratorPrompts32 linearts performingarts webcomicday CuratorPrompts33 CuratorPrompts34 rechtsterrorismus CuratorPrompts35 oilpastels CuratorPrompts36 CuratorPrompts37 openstreemaps eucommission CuratorPrompts38 pencildrawing talpa CuratorPrompts39 whisperoftheheart ostree Local errorMessages fractals oilpastel CuratorPrompts42 CuratorPrompts41 fiberartsfriday CuratorPrompts43 CuratorPrompts44 CuratorPrompts45 partnerstate CuratorPrompts47 CuratorPrompts48 inkl wallpaperGroup EscherWebSketch pinkfloyd cinepuntarella blobcat + portrait OccupyWallStreetDate freeswitch inktober2021 inktober MaterialMaker cosmology blender inkdiary publicprivatepartnerships kritaart Rembrandt proxmox FreeVaccinesForEveryone comicbook Eversource traditionalillustration PixelArt Manningtree webzine InkedMemories sesamestreet aesthetic steampunk proudhon productivity cherrytree oilpaint economiasolidaria arttips mastoartist paperart libreart cali TraditionalArt Linke subresourceintegrity glitchart Art ocart robincolors resource urban article penandink webcomics startpage CommissionsOpen glassart afrique martialarts watercolours artsurbains artalley artvsartist2020 abstract artreference commission horrorart Earthquakes poe nomadbsd proxmoxve MartyMacMarty tgif coloringpage dccomics colored inkscape blink modelrailway artificalintelligence draw circuitsculpture ttip watercolor proceduralart existentialcomics resources poetesss memes pinksterlanddagen FediverseForum ghibligif speedpaint SankeyCharts bengarrison subpoena autisticartist barrigòtic art sona animalart krita foraBolsonaroGenocida insights FreeColouringPage anthroart urbanart sigh queerart deviantart communityresources desigualdad pastel fantasyart drawings 20thcenturyillustration grafana daria artdeco adultcolouring source J19forabolsonaro collective openstreeetmap fantasy collage jordanlynngribbleart theGalley ToryParty educpop TheArtsHole linksunten risograph pro links thinkabout dndmemes fanfic articles protein forabolsonaro PartyPooperPost harmreductionart adhdmeme MastoArtHeader openra demoscene witch FreeArtLicense wallpaper generative political streetart coverart streetcomplete stickers partners watercolour economy combyne freeculture fiberart PalestinianPoliticalPrisoners jet labyrinth educators mermay dpa artsale edu MastoArt particl PrisonNews FediverseApp urbansketchers ParticlV3 creativetoots culture ganart evenepoel opencl fiberarts polArt ink painting Leitartikel marten opencoop digitalart comic flyingonthewater kenmurestreet libreculture sartre artwork mandala FediverseTown b3d politicalcartoon blackart artsderue makingcomics glitch junkart wallpapers railway linker riso xkcd supportartists proctorio drawtober startinblox comics intelligence linkinbio conceptart mastoart urbanterror illustration artopencall Hinkley gnuimagemanipulationprogram os studioghibli 2MinuteSketch wireart cartoon artistontwittter oc csa AccidentalGraffiti OriginalCharacter educator farts poezio webcomic fleischproduktion nekodoodle DigitalArt pinkwashing partnership potentieldememe oilpainting kickstarter furryart twinkle DisabledArtist unixstickers pink fursona afriquedusud comicsans openstreetmap inkjet generativeart VaccineApartheid sticker enbyart originalart arts heartmind artbreeder 17maart fart TsunderdogArt videoart ivalice adultcoloring djmartinpowers arttherapy Cartudy extreemrechts fractal enby TattoosOfTheFediverse doodle artikel WorldLocalizationDay colouringpage worldwaterday NFTart netart signalstickers memex artschool digitalpainting politicaltheatre artvsartist dorktower maart abstractart drawing sig circular sculpture artist pcbart meme cultureshipnames concretepoetry artwithopensource pinkwug Streeck VTMtober commissions pronouns opencallforartists DesolateEarthForThePoor VizierOpLinks commissionsopen fanon KartaView alroeart article17 fountainpenink MartinVanBeynen peppertop speedpainting animalpainting visionaryart blackartist worldpay figureart zine artists heart quickdraw error supportthearts genart urbanfantasy stickerei CurzioMalaparte tree lineart smartcard pixelart alisajart openframeworks smolzine networknomicon openrailwaymap politicalpolicing JuliaHartleyBrewer fan digitalArt artistsOfMastodon glitchsoc paintings railways mermay2021 fractionalScaling print creativetoot sketching sketch pencil geopolitical FediverseOrigins perlinnoise wallstreet urbanism kritaartists signals arthabit colors characterart glitchSoc inkdrawing DialogoDeSaberes cartoons ResourceDepletion digitaldrawings 5minsketch ADayOffTwitch resonate artistforhire ArtistResidency inspiration artresource odoo animedrawing animegirl animeart mangadrawing procreateart mangaart procreate manga fibrearts fedimeme sketchbookers Mastocartolaio sipwitch witchcraft WithdrawConsentNow Painters blender3d queenofhearts walkableStreets symboliccharacters proud thewitcher anime genartclub Norwegianartist Dutchartist mangagirl watercolors smol mastoarṭ drawsomething moa indianart nativeamericanart indigenousartist theStudio 48WeeksOfColor errorerrorerror codexobscurus Linktree memecoin ezine portraitpainter transartists Sketch durban fartpreneur artinspiration aritificialintelligence artWithOpenSource adobeillustrator animeirl inspirational subcultures irishartist irishart evia logo 5MinuteSketch cine colour callforart artistslife quake nudibranchdrawing maketheswitch scribbles scaling paintover CuratorPrompts19 traditionaldrawing illustrations enbyoc fantasybooks mastoartists urbansketching AngelsOfMainStreet theatre TerrorizeThemWithQuailty reeder circuit Architecdoodle scene cineclasico witchhunt cbinsights meettheartist CuratorPrompts CuratorPrompts28 safestreets collectives fibre CuratorPrompts31 CuratorPrompts32 linearts performingarts webcomicday CuratorPrompts33 CuratorPrompts34 rechtsterrorismus CuratorPrompts35 oilpastels CuratorPrompts36 CuratorPrompts37 openstreemaps eucommission CuratorPrompts38 pencildrawing talpa CuratorPrompts39 whisperoftheheart ostree Local errorMessages fractals oilpastel CuratorPrompts42 CuratorPrompts41 fiberartsfriday CuratorPrompts43 CuratorPrompts44 CuratorPrompts45 partnerstate CuratorPrompts47 CuratorPrompts48 inkl wallpaperGroup EscherWebSketch pinkfloyd cinepuntarella blobcat CuratorPrompts67 CuratorPrompts68 poorlydrawnlines CuratorPrompts64 comicstrip openbrush voxelart PastelPosse - Sat, 11 Jun 2022 19:30:54 UT + Sat, 25 Jun 2022 09:46:04 UT media bitchute truecrime Video tv bearapp plex DIYTV tradicional livestreaming ip digitalmedia mustwatch videobearbeitung transparency polarbears mediathek mianstreaming stream videoconferencias AtlanticGulfstream maistreaming ime sustainabilty mixxx shortfilm selfsustainable amstrad kawaiipunkstreams mainstream films streaming weAreAllCrazy video streamdeck puns maiabeyrouti videoconference shortfilms mix MediaEU mixed diymedia Fairtrade film streams massmedia stummfilm submedia theatlantic traditionalmedia videos Internetradio mediawatch mainstreamining newsmedia audiovideo videosynthesis filmnoir wikimedia railroad mixedmedia railroads heat documentary streamers artstream vi nationalgeographic folktraditions gstreamer tootstream taina mediawiki slowtv bear realmedia media independentmedia SiberianTimes theintercept twinpeaks transhumanism subtitles mediathekview ofcom novaramedia DumpTheGuardian iberia protecttranskids algorithmictransparency fanfilm filmpreservation recording mediastudies punks perplexcity MediaLens independent MediaRecorder mediabias disintermedia falseadvertising mediagoblin Vimeo narrator teaser musicstreaming lbry Screenplay transdayofvisibilty StreamClip bioremediation tapecollection streamer video_games novara mediatek streamingradio baronvonbear NetflixWalkout transparent thejuicemedia videokonferenz videokonferenzen comedians videochat EUVideo transInTrain Gizmoplex Liberia translating transifex heathen filmes gamestream hotmedia litestream SustainableComputng streamclips ishootfilm PublicMedia movie smallstreamers - Sat, 11 Jun 2022 19:30:54 UT + Sat, 25 Jun 2022 09:46:04 UT countries - ukrainian jimmycarter rubytogether philippine strikes egyptian israeli icelandverse location saudiarabia deutschland roma thai romania korean burma lithuania solomon chile europeanparliament Instanz boycottisrael fiji tajikistan benin paraguay eeuu icelandtrip senegal ukraine italy brunei nicaragua guyana Pflanzenbestimmung grönland euphoria zambia PalestineStrike iceland europeancouncil morocco netherlands swaziland EuropeanUnion bosnian suriname welcome2america winningatlife elsalvador russia freeburma samoa StaatstrojanerParteiDeutschlands romanian asl european czech belarus hayabusa2 bw kyrgyzstan english uk translation sanmarino catalonia panama africa west indians unitedkingdom japan Netherlands buyused venezuela gambia freeNukem kuwait barbados papua greece switzerland brasilien uae mau england FuckIsrael nigeria usa angola honduras djibouti laos sierraleone artemis britain cambodia translators ych vietnam esperanto neofeud zealios seychelles marshall kazakhstan estonia investigate tonga stlucia burundi bangladesh egypt nachhaltigkeit japanese mali congo us IcelandicVerminControl jordan MusiciansForPalestine americangods digitaleurope speedrun grenada israel lowestoft psychic algeria ghana bosnia translations russian LateAmericanSentences eritrea bhutan armenian hama hungary Störungsverbot saudi slovenia tig czechosvlovakia bahamas america australia kiribati togo DeathToAmerica koreanorth poland Überbevölkerung malawi AlwaysBetterTogether capeverde armenia american hautrauswasgeht bahrain mozambique WichtigerHinweis abcbelarus japaneseglare americanpinemarten beleuchtung southsudan adminlife citylife europehoax Martesamericana syria german micronesia maldives iran indigenous sweden bijîberxwedanarojava ethiopia sid cuba liberia canada burkina indian Südwestgrönland somalia Chile whatshappeningintigray scotland Enlgand russiaToday vaticancity easttimor austria EuropeanUnionNews turkey yemen Bolivia denmark USBased domesticabuse austrianworldsummit madagascar finland Wales Iran philippines ivorycoast haiti ecuador Portugal azerbaijan gasuk spain albania massachusetts afghanistan europe mauritania dominica ökonomisierung thailand belize westpapuauprising nerdlife macedonia montenegro BelarusProtests ChileDesperto thenetherlands qatar mongolia costarica boatingeurope birdsofkenya Australia boat latvia uzbekistan fatigue kabelaufklärung ireland iraq malaysia mexico investigations mauritius dezentralisierung oman chad nz de georgia zimbabwe france serbia lesotho romani halflife oddmuse tunisia argentina czechia cameroon namibia sudan indonesia lifeboat colombia worldwildlifeday kryptowährung tuvalu britainology merica beckychambers turkmenistan tanzania germany neuhier norway comoros auteursrecht guatemala Thailand kosovo eastgermany andorra wales indiastrikes vanlife Palestine servus pakistan belgium china 3615malife antigua europeanvalues koreasouth newzealand visiticeland einzelfall rwanda luxembourg libya indywales italyisntreal nauru moldova bad spanish eastindiacompany northernireland stigmergic palau taiwan kenya trinidad eu botswana Lebensmittelzusatzstoff CuriosidadesVariadas jamaica vanuatu cyprus aminus3 israele malta Icelandic psychedelia niger westpapua busse unitedstates myanmar saintvincent guinea nepal peru uganda uruguay india pacificnorthwest lebanon neurodiversity southafrica writer arte croatia europeanunion writerslife bolivia chinese dominican europeancommission srilanka bulgaria etherpad slovakia speedrunning gabon psychedelicart ether palestine stkitts liechtenstein saveabkindonesia neofeudalism surinam brazil shutdowncanada ChineseAppsBan nations digitalindia southamerica african studyingermany Eurocracy BelarusBorder Somalia Kenya österreich RomaniStudies newengland ZwarteVrijdag russianinvasion StandWithUkraine sliceoflife mychemicalromance OSINTUkraine AfricansinUkraine BlackInUkraine study companyPlans aether croatian turkish deutschewelle boats unite StopRussia british company nomanssky jobangebot lithuanian echo madeinfrance GermanEnvAgency makeinindia EuropeanOnion haitians cgtnamerica iraqwar hoax SudanCoup echolocation northamerica ghostwriter marshallfire westin russians unitedsates Netherland southamerican latinamerica ProudToBeDutch stromae FeminaIndia horizoneurope LuckOfTheScottish screenwriter tiger NZTwits hifromabi NZTwit Femina FeminaUnstoppables invasion indonesian littlebritain locationdata reactindia2022 aTinyGardenInNorthEastWales EUOpenDoors EUOpenDay EUDigitalEducation learngerman europeday srilankacrisis Israel maliciousCyberActivities strongertogether boatingurope typewriter norwayspruce NZBudget geolocation malaysian Vaultomancy africanamerican boatbuilding EUGreenDeal DigitalEU ImAFrenchCitizen + ukrainian jimmycarter rubytogether philippine strikes egyptian israeli icelandverse location saudiarabia deutschland roma thai romania korean burma lithuania solomon chile europeanparliament Instanz boycottisrael fiji tajikistan benin paraguay eeuu icelandtrip senegal ukraine italy brunei nicaragua guyana Pflanzenbestimmung grönland euphoria zambia PalestineStrike iceland europeancouncil morocco netherlands swaziland EuropeanUnion bosnian suriname welcome2america winningatlife elsalvador russia freeburma samoa StaatstrojanerParteiDeutschlands romanian asl european czech belarus hayabusa2 bw kyrgyzstan english uk translation sanmarino catalonia panama africa west indians unitedkingdom japan Netherlands buyused venezuela gambia freeNukem kuwait barbados papua greece switzerland brasilien uae mau england FuckIsrael nigeria usa angola honduras djibouti laos sierraleone artemis britain cambodia translators ych vietnam esperanto neofeud zealios seychelles marshall kazakhstan estonia investigate tonga stlucia burundi bangladesh egypt nachhaltigkeit japanese mali congo us IcelandicVerminControl jordan MusiciansForPalestine americangods digitaleurope speedrun grenada israel lowestoft psychic algeria ghana bosnia translations russian LateAmericanSentences eritrea bhutan armenian hama hungary Störungsverbot saudi slovenia tig czechosvlovakia bahamas america australia kiribati togo DeathToAmerica koreanorth poland Überbevölkerung malawi AlwaysBetterTogether capeverde armenia american hautrauswasgeht bahrain mozambique WichtigerHinweis abcbelarus japaneseglare americanpinemarten beleuchtung southsudan adminlife citylife europehoax Martesamericana syria german micronesia maldives iran indigenous sweden bijîberxwedanarojava ethiopia sid cuba liberia canada burkina indian Südwestgrönland somalia Chile whatshappeningintigray scotland Enlgand russiaToday vaticancity easttimor austria EuropeanUnionNews turkey yemen Bolivia denmark USBased domesticabuse austrianworldsummit madagascar finland Wales Iran philippines ivorycoast haiti ecuador Portugal azerbaijan gasuk spain albania massachusetts afghanistan europe mauritania dominica ökonomisierung thailand belize westpapuauprising nerdlife macedonia montenegro BelarusProtests ChileDesperto thenetherlands qatar mongolia costarica boatingeurope birdsofkenya Australia boat latvia uzbekistan fatigue kabelaufklärung ireland iraq malaysia mexico investigations mauritius dezentralisierung oman chad nz de georgia zimbabwe france serbia lesotho romani halflife oddmuse tunisia argentina czechia cameroon namibia sudan indonesia lifeboat colombia worldwildlifeday kryptowährung tuvalu britainology merica beckychambers turkmenistan tanzania germany neuhier norway comoros auteursrecht guatemala Thailand kosovo eastgermany andorra wales indiastrikes vanlife Palestine servus pakistan belgium china 3615malife antigua europeanvalues koreasouth newzealand visiticeland einzelfall rwanda luxembourg libya indywales italyisntreal nauru moldova bad spanish eastindiacompany northernireland stigmergic palau taiwan kenya trinidad eu botswana Lebensmittelzusatzstoff CuriosidadesVariadas jamaica vanuatu cyprus aminus3 israele malta Icelandic psychedelia niger westpapua busse unitedstates myanmar saintvincent guinea nepal peru uganda uruguay india pacificnorthwest lebanon neurodiversity southafrica writer arte croatia europeanunion writerslife bolivia chinese dominican europeancommission srilanka bulgaria etherpad slovakia speedrunning gabon psychedelicart ether palestine stkitts liechtenstein saveabkindonesia neofeudalism surinam brazil shutdowncanada ChineseAppsBan nations digitalindia southamerica african studyingermany Eurocracy BelarusBorder Somalia Kenya österreich RomaniStudies newengland ZwarteVrijdag russianinvasion StandWithUkraine sliceoflife mychemicalromance OSINTUkraine AfricansinUkraine BlackInUkraine study companyPlans aether croatian turkish deutschewelle boats unite StopRussia british company nomanssky jobangebot lithuanian echo madeinfrance GermanEnvAgency makeinindia EuropeanOnion haitians cgtnamerica iraqwar hoax SudanCoup echolocation northamerica ghostwriter marshallfire westin russians unitedsates Netherland southamerican latinamerica ProudToBeDutch stromae FeminaIndia horizoneurope LuckOfTheScottish screenwriter tiger NZTwits hifromabi NZTwit Femina FeminaUnstoppables invasion indonesian littlebritain locationdata reactindia2022 aTinyGardenInNorthEastWales EUOpenDoors EUOpenDay EUDigitalEducation learngerman europeday srilankacrisis Israel maliciousCyberActivities strongertogether boatingurope typewriter norwayspruce NZBudget geolocation malaysian Vaultomancy africanamerican boatbuilding EUGreenDeal DigitalEU ImAFrenchCitizen BestAmerican2022 restarters NationalNZ blockadeaustralia - Sat, 11 Jun 2022 19:30:54 UT + Sat, 25 Jun 2022 09:46:04 UT hardware - remarkable frugalcomputing macbookair uefi SOQuartz carboncredits noisevember btop macaddress liquidcooling solarcoin electromagnetic oldhardware rakwireless thethingsnetwork datev pycharm intellij Solarpunk dateFormats presse lowpowercomputing purplenoise eink plugandplay bluetooth printnightmare singleboardcomputer purism dating schematics opennic tektronix zomertijd librehardware BoBurnham restauration rmw riscv solarpower carbonFootprintSham mietendeckel PersonalComputer cyberdeck PineCUBE firmware tex keyboards debuerreotype electron ChromebookDuet AbolishFrontex webcam bond hibernation PneumaticLoudspeakers schreibmaschine imac Nottingham schwarmwissen elitesoldat handheld screenless megapixels BibliothekDerFreien KeepTheDiskSpinning homebrewcomputing FarmersTractorRally pinebook modem lowtech biblatex allwinner daten home pimeroni 68 lebensmittelsicherheit industrial hambibleibt analogcomputing homer TrueDelta keyboard screenprinting robotics Pinecil mutantC raspberrypi3 pocketchip oshw misterfpga noisebridge disapora T440p ArmWorkstation datensicherheit latexrun hardwarehacking mer picodisplay laptops electronics ham teamdatenschutz charm SectorDisk wolnabiblioteka preprint permacomputing uart panasonic pcb almere performance kopimi printmaker deck making hambi powerpc solar ssd acoustics ibmcompatible webcams modular larp tweedekamer cybredeck latex 3dprinted MacBook emmc ipadproart computing laptop solarpunk isa recycling modularsynth apparmor repairability macbook theatrelighting pc lenovo updates fairelectronics industrialmusic librem sed TokyoCameraClub MacBookProService pocket box86 JingPad righttorepair mac trackball fuse date solarpunkactionweek ibm 3dprinting electro carbon MechcanicalKeyboards netbook hardware pisa pinetab sicherheit openhardware raspberrypi irobot datenautobahn webtoprint 3dprinter barcode lüneburg Quartz64 PlanetComputer jtag ebu merseyside itsicherheit CompressedAirAmplification pinetime screens pinebookpro lebensmittel 3d batteries PinebookPro 3dprint pim Handprint modemmanager securescuttlebutt keyboardio mechanicalkeyboard electronicmusic solarpunks carbondioxide robot arm sonic ipad FireAlarms PinePower paperComputer amd openpower poweredSpeaker devopa a64 eeepc bahn F9600 rpi4 thinkpad RaspberryPiPico iot dat BeagleV arm64 merveilles repairable sbc circuitbending raspberrypi4 displayport akihabara analog electronic FrameworkLaptop flash infrared speaker Chrome elite filmmaking intelme playdate RhombusTech computerhardware intel bundespresseamt mechanicalkeyboards solarlab svendsolar Garmin homeassistant analogy printer wireless solpunk xiaomi pixels esphome MC68000 carboncapture quartz QuartzPro64 raspberry restorativefarming pixelsNotProfits smartwatch lora datingtips bible devices robotvacuum system76 OpenSourceHardware rockpro64 pi400 fablab fujitsu plastic RaspberryPi pda laserjet robotapoc HomeServer PiBoyXRS hdhomerun papercomputing prints tplink sonicpi battery update prep elektroroller printers Rpi4 ethernet castiron rockchip PineNote CAD InfiniTime RenewableTech ScientificCalculators robotron electrolyzer animacja pixelsky wearables spi PreprintOfTheDay zmodem Librem14 raspberrypk quantumcomputing dicemaking weeklyupdate printmaking depressed carbonintensity secure prepping Pebble TimeToUpdate solarpanels workfromhome homebrew homepod homekit SchemeMachine TweedleDee championsleaguefinal solarisecon2022 quarto solaris + remarkable frugalcomputing macbookair uefi SOQuartz carboncredits noisevember btop macaddress liquidcooling solarcoin electromagnetic oldhardware rakwireless thethingsnetwork datev pycharm intellij Solarpunk dateFormats presse lowpowercomputing purplenoise eink plugandplay bluetooth printnightmare singleboardcomputer purism dating schematics opennic tektronix zomertijd librehardware BoBurnham restauration rmw riscv solarpower carbonFootprintSham mietendeckel PersonalComputer cyberdeck PineCUBE firmware tex keyboards debuerreotype electron ChromebookDuet AbolishFrontex webcam bond hibernation PneumaticLoudspeakers schreibmaschine imac Nottingham schwarmwissen elitesoldat handheld screenless megapixels BibliothekDerFreien KeepTheDiskSpinning homebrewcomputing FarmersTractorRally pinebook modem lowtech biblatex allwinner daten home pimeroni 68 lebensmittelsicherheit industrial hambibleibt analogcomputing homer TrueDelta keyboard screenprinting robotics Pinecil mutantC raspberrypi3 pocketchip oshw misterfpga noisebridge disapora T440p ArmWorkstation datensicherheit latexrun hardwarehacking mer picodisplay laptops electronics ham teamdatenschutz charm SectorDisk wolnabiblioteka preprint permacomputing uart panasonic pcb almere performance kopimi printmaker deck making hambi powerpc solar ssd acoustics ibmcompatible webcams modular larp tweedekamer cybredeck latex 3dprinted MacBook emmc ipadproart computing laptop solarpunk isa recycling modularsynth apparmor repairability macbook theatrelighting pc lenovo updates fairelectronics industrialmusic librem sed TokyoCameraClub MacBookProService pocket box86 JingPad righttorepair mac trackball fuse date solarpunkactionweek ibm 3dprinting electro carbon MechcanicalKeyboards netbook hardware pisa pinetab sicherheit openhardware raspberrypi irobot datenautobahn webtoprint 3dprinter barcode lüneburg Quartz64 PlanetComputer jtag ebu merseyside itsicherheit CompressedAirAmplification pinetime screens pinebookpro lebensmittel 3d batteries PinebookPro 3dprint pim Handprint modemmanager securescuttlebutt keyboardio mechanicalkeyboard electronicmusic solarpunks carbondioxide robot arm sonic ipad FireAlarms PinePower paperComputer amd openpower poweredSpeaker devopa a64 eeepc bahn F9600 rpi4 thinkpad RaspberryPiPico iot dat BeagleV arm64 merveilles repairable sbc circuitbending raspberrypi4 displayport akihabara analog electronic FrameworkLaptop flash infrared speaker Chrome elite filmmaking intelme playdate RhombusTech computerhardware intel bundespresseamt mechanicalkeyboards solarlab svendsolar Garmin homeassistant analogy printer wireless solpunk xiaomi pixels esphome MC68000 carboncapture quartz QuartzPro64 raspberry restorativefarming pixelsNotProfits smartwatch lora datingtips bible devices robotvacuum system76 OpenSourceHardware rockpro64 pi400 fablab fujitsu plastic RaspberryPi pda laserjet robotapoc HomeServer PiBoyXRS hdhomerun papercomputing prints tplink sonicpi battery update prep elektroroller printers Rpi4 ethernet castiron rockchip PineNote CAD InfiniTime RenewableTech ScientificCalculators robotron electrolyzer animacja pixelsky wearables spi PreprintOfTheDay zmodem Librem14 raspberrypk quantumcomputing dicemaking weeklyupdate printmaking depressed carbonintensity secure prepping Pebble TimeToUpdate solarpanels workfromhome homebrew homepod homekit SchemeMachine TweedleDee championsleaguefinal solarisecon2022 quarto solaris sweethome3d RestartProject PlantUpdates ipados homegrown electrofunk plasticfree mega - Sat, 11 Jun 2022 19:30:54 UT + Sat, 25 Jun 2022 09:46:04 UT abuse disinformation trolling scam Pedophilia ZooPhilia abusiverelationship alexjones HowAnnoying bullying abus - Sat, 11 Jun 2022 19:30:54 UT + Sat, 25 Jun 2022 09:46:04 UT places - nowhere bundeskartellamt klimaatleiderschap klimaatmars KlimaDAO klimaattop Begpest siberia kilkenny workingclass framapiaf Grangemouth chaostreffbern havanasyndrome beijing2022 klimaatactie chronicpain London seattleisdying flint michigan hongkong Powderpaint toronto communedeparis lapaz luanda klimakatastrophe asunción salisbury nouakchott conakry kyiv enviromentalism gadgetbridge moscow winchester cardiff saipan gibraltar dublin KlimaGerechtigkeit stuff catalunya dannibleibt avarua lilo wolverhampton hargeisa delhi niamey chișinău freestuff colombo dundee brasília StupidComparisons brushes phnompenh mbabane danni belgrade rotterdam stasaph belmopan detroit ghent pyongyang hannover strawinsky calls ulaanbaatar oranjestad kali Reykjavik Barliman gaborone seattle ndjamena lancaster chelmsford raw singapore classicalmusic tuberlin Lanarkshire feedbackwanted preston lincoln kingedwardpoint abidjan nuuk york asshole pretoria papeete DreamtimeVillage washingtonstate bradford malé rhetorical robberfly sunderland zagreb gitega abudhabi flyingfishcove castries revil georgetown suffolk wickr hagåtña lochlomond videoFreex oric ella lichtenberg videofeedback borikua basseterre hamburg southeastasia afrika kinshasa Schadensersatzforderung streetartparis suva klimaatverandering valparaíso athens roseau sheffield baku aberdeen charlotteamalie antananarivo domi pristina northumberland RadentscheidJena bordeaux diff MakoYass videocalls santiago fsb sukhumi berlin urk bristol uptronicsberlin funafuti libreville newry rush radentscheid puertorico ClimateChange hanoi philipsburg tehran banjul prague Stockente rawhide andorralavella daw yerevan portauprince videoprojects sensorica mewcastle dakar asu paramaribo tifariti durham CrisiClimatica capetown rigaer94 tirana klima ankara ipswich managua lisbon bishkek amsterdam climatchoas kent klimaat EastVirginia portonovo santodomingo wakefield bangkok texas coventry bucharest kathmandu aden buchtipp madrid cleanarchitecture paris14 sanjuan vienna kingston stuttgart Utrecht inverness kabul damascus stockholm douglas ClassOf2015 willemstad brighton klimaschutz klimaatnoodtoestand hibernoenglish thehague panamacity RassismusTötet beirut belfast amman newdelhi tórshavn nottingham nouméa oslo alofi gustavia paris fromembers cockburntown berlinale manchester dominio ottawa classical buch stepanakert portofspain klimakrise class fsberlin honiara berniememe asmara florida nicosia helsinki anywhere taipei salford tegucigalpa bridge tokyo tashkent larochelle vr gabocom MadeInEU sarajevo algiers southampton KlimaKrise nairobi muscat monaco riyadh flying lusaka perth wellington wick bissau juba mariehamn majuro parisagreement mumiaabujamal norwich buenosaires ngerulmud dhaka berlinhateigenbedarf guatemalacity washington bedarf vatican kuwaitcity martlesham Erdmannhausen Puntarella londonboaters SystemChangeNotClimateChange bern mexicocity amap bratislava myasstodontownhall bridgetown delhipolice stokeonTrent crowsnestpass leeds tunis manila warwickshire architecture rigaer94verteidigen arctic stanley matautu copenhagen hereford barcelona lomé videocall budapest ouagadougou mogadishu PrawnOS freetown victoria bangor brazzaville portmoresby ashgabat kampala Klimaatalarm gigabitvoucher kirigami yorkshire elaaiún kalimantan vilnius guineabissau ContourDrawing bloemfontein gnuassembly swansea classe sucre london passalong marseille berniesanders pagopago bradesestate oakland vaduz birmingham addis lisburn nürnberg naypyidaw derry CassetteNavigation khartoum baghdad bandar truro moroni cuirass rigaer lehavre klimaliste portvila kingstown armagh Klima ulm ChrisCrawford reykjavík lofi manama accra mewport windhoek fortworth nukualofa classic ciutatvella tbilisi canberra quito maputo cetinje adams putrajaya lichfield ramallah solimaske oslotown bogotá warming portsmouth dodoma berkeley harare stirling havana warsaw klimapolitik rigaer94bleibt münster valletta snes localberlin ljubljana bamako leicester kualalumpur peterborough podgorica rabat cotonou oranje plymouth seoul westminster neumünster Portland dushanbe bangui aotearoa theCellar canterbury westisland tskhinvali palikir caracas brussel jamestown rome gloucester munich cambridge ripon carlisle freestuffberlin wells chichester sãotomé jakarta floraspondence daressalaam sansalvador seo apia essex klimawandel yaren cairo jerusalem brussels kigali southtarawa beijing minsk montevideo vientiane philips maseru klimaatopwarming hamilton lurk doha klimaatwake worcester tripoli portlouis stalbans lima adamstown deventer weimar abuja fuckalabamapower saw lilongwe nassau lobamba heathrow nyc oxford fly montreal klimaatzaakshell rawtherapee dili feedback thesprawl riga r94 assembly lesbos monrovia nursultan Neuzulassung caste gab sanjosé klimaatrechtvaardigheid marigot islamabad fb malabo tallinn sahara thimphu seattleprotestnetwork klimaatzaak exeter oranjeklanten klimanotstand chester brest yaoundé praia bujumbura strawberries washingtondc derby sofia skopje pain HogeschoolUtrecht UtrechtUniversity UtrechtSciencePark UtrechtBIJ1 leicestershire stellaris clean kentucky amyklobuchar maastricht woproUtrecht kimstanleyrobinson victorian imap crows woodbridge consciousness openassembly jest Amsterdam flyinglunaclipper hackney kyivgraffiti HotelMokum Navidrome falluja basildon nuremberg newyorkcity helm colorado NewYorkflooding tuomasholopainen bushwick Montreal lying phillipines stockport wiltshire hawaii goodfellas commune Glassholes anarchistbookfairinlondon pest Chornobyl Puntarella33 floral nest jerseycity islamaphobia klimaflucht cambridgeshire Whitechapel felixstowe colchester EvacuateKherson derbyshire allefürsklima londonmakhnovists helmutbuntjer brush gadget brisbane ScuolaPuntarella buchempfehlungen jugendbuch jhberlin21 assholes tcddublin Klimaatmars2021 KentishTownFiorum newyork politik porto melbourne UtrechtTegenFascisme adelaide fukushima ExchangeChristchurch ehlersdanlossyndrome chaosamsterdam Srella difference buchmesse mosquito elon elongate elonmusk musk itstuff flipclass newyorkyankees muskodon yorkshirehousing impostersyndrome marvinminsky historical capecod AntifaUtrecht asap luna Spain AgroPuntarella stasi schiphol nopainnogain prometheus Klimaatmars2022 berlinbubble zuidafrika ThisIsManahttan viennapride cleaning church + nowhere bundeskartellamt klimaatleiderschap klimaatmars KlimaDAO klimaattop Begpest siberia kilkenny workingclass framapiaf Grangemouth chaostreffbern havanasyndrome beijing2022 klimaatactie chronicpain London seattleisdying flint michigan hongkong Powderpaint toronto communedeparis lapaz luanda klimakatastrophe asunción salisbury nouakchott conakry kyiv enviromentalism gadgetbridge moscow winchester cardiff saipan gibraltar dublin KlimaGerechtigkeit stuff catalunya dannibleibt avarua lilo wolverhampton hargeisa delhi niamey chișinău freestuff colombo dundee brasília StupidComparisons brushes phnompenh mbabane danni belgrade rotterdam stasaph belmopan detroit ghent pyongyang hannover strawinsky calls ulaanbaatar oranjestad kali Reykjavik Barliman gaborone seattle ndjamena lancaster chelmsford raw singapore classicalmusic tuberlin Lanarkshire feedbackwanted preston lincoln kingedwardpoint abidjan nuuk york asshole pretoria papeete DreamtimeVillage washingtonstate bradford malé rhetorical robberfly sunderland zagreb gitega abudhabi flyingfishcove castries revil georgetown suffolk wickr hagåtña lochlomond videoFreex oric ella lichtenberg videofeedback borikua basseterre hamburg southeastasia afrika kinshasa Schadensersatzforderung streetartparis suva klimaatverandering valparaíso athens roseau sheffield baku aberdeen charlotteamalie antananarivo domi pristina northumberland RadentscheidJena bordeaux diff MakoYass videocalls santiago fsb sukhumi berlin urk bristol uptronicsberlin funafuti libreville newry rush radentscheid puertorico ClimateChange hanoi philipsburg tehran banjul prague Stockente rawhide andorralavella daw yerevan portauprince videoprojects sensorica mewcastle dakar asu paramaribo tifariti durham CrisiClimatica capetown rigaer94 tirana klima ankara ipswich managua lisbon bishkek amsterdam climatchoas kent klimaat EastVirginia portonovo santodomingo wakefield bangkok texas coventry bucharest kathmandu aden buchtipp madrid cleanarchitecture paris14 sanjuan vienna kingston stuttgart Utrecht inverness kabul damascus stockholm douglas ClassOf2015 willemstad brighton klimaschutz klimaatnoodtoestand hibernoenglish thehague panamacity RassismusTötet beirut belfast amman newdelhi tórshavn nottingham nouméa oslo alofi gustavia paris fromembers cockburntown berlinale manchester dominio ottawa classical buch stepanakert portofspain klimakrise class fsberlin honiara berniememe asmara florida nicosia helsinki anywhere taipei salford tegucigalpa bridge tokyo tashkent larochelle vr gabocom MadeInEU sarajevo algiers southampton KlimaKrise nairobi muscat monaco riyadh flying lusaka perth wellington wick bissau juba mariehamn majuro parisagreement mumiaabujamal norwich buenosaires ngerulmud dhaka berlinhateigenbedarf guatemalacity washington bedarf vatican kuwaitcity martlesham Erdmannhausen Puntarella londonboaters SystemChangeNotClimateChange bern mexicocity amap bratislava myasstodontownhall bridgetown delhipolice stokeonTrent crowsnestpass leeds tunis manila warwickshire architecture rigaer94verteidigen arctic stanley matautu copenhagen hereford barcelona lomé videocall budapest ouagadougou mogadishu PrawnOS freetown victoria bangor brazzaville portmoresby ashgabat kampala Klimaatalarm gigabitvoucher kirigami yorkshire elaaiún kalimantan vilnius guineabissau ContourDrawing bloemfontein gnuassembly swansea classe sucre london passalong marseille berniesanders pagopago bradesestate oakland vaduz birmingham addis lisburn nürnberg naypyidaw derry CassetteNavigation khartoum baghdad bandar truro moroni cuirass rigaer lehavre klimaliste portvila kingstown armagh Klima ulm ChrisCrawford reykjavík lofi manama accra mewport windhoek fortworth nukualofa classic ciutatvella tbilisi canberra quito maputo cetinje adams putrajaya lichfield ramallah solimaske oslotown bogotá warming portsmouth dodoma berkeley harare stirling havana warsaw klimapolitik rigaer94bleibt münster valletta snes localberlin ljubljana bamako leicester kualalumpur peterborough podgorica rabat cotonou oranje plymouth seoul westminster neumünster Portland dushanbe bangui aotearoa theCellar canterbury westisland tskhinvali palikir caracas brussel jamestown rome gloucester munich cambridge ripon carlisle freestuffberlin wells chichester sãotomé jakarta floraspondence daressalaam sansalvador seo apia essex klimawandel yaren cairo jerusalem brussels kigali southtarawa beijing minsk montevideo vientiane philips maseru klimaatopwarming hamilton lurk doha klimaatwake worcester tripoli portlouis stalbans lima adamstown deventer weimar abuja fuckalabamapower saw lilongwe nassau lobamba heathrow nyc oxford fly montreal klimaatzaakshell rawtherapee dili feedback thesprawl riga r94 assembly lesbos monrovia nursultan Neuzulassung caste gab sanjosé klimaatrechtvaardigheid marigot islamabad fb malabo tallinn sahara thimphu seattleprotestnetwork klimaatzaak exeter oranjeklanten klimanotstand chester brest yaoundé praia bujumbura strawberries washingtondc derby sofia skopje pain HogeschoolUtrecht UtrechtUniversity UtrechtSciencePark UtrechtBIJ1 leicestershire stellaris clean kentucky amyklobuchar maastricht woproUtrecht kimstanleyrobinson victorian imap crows woodbridge consciousness openassembly jest Amsterdam flyinglunaclipper hackney kyivgraffiti HotelMokum Navidrome falluja basildon nuremberg newyorkcity helm colorado NewYorkflooding tuomasholopainen bushwick Montreal lying phillipines stockport wiltshire hawaii goodfellas commune Glassholes anarchistbookfairinlondon pest Chornobyl Puntarella33 floral nest jerseycity islamaphobia klimaflucht cambridgeshire Whitechapel felixstowe colchester EvacuateKherson derbyshire allefürsklima londonmakhnovists helmutbuntjer brush gadget brisbane ScuolaPuntarella buchempfehlungen jugendbuch jhberlin21 assholes tcddublin Klimaatmars2021 KentishTownFiorum newyork politik porto melbourne UtrechtTegenFascisme adelaide fukushima ExchangeChristchurch ehlersdanlossyndrome chaosamsterdam Srella difference buchmesse mosquito elon elongate musk itstuff flipclass newyorkyankees muskodon yorkshirehousing marvinminsky historical capecod AntifaUtrecht asap luna Spain AgroPuntarella stasi schiphol nopainnogain prometheus Klimaatmars2022 berlinbubble zuidafrika ThisIsManahttan viennapride cleaning church fennellang klimaatstrijd fennel imapclienr imapclient andromeda - Sat, 11 Jun 2022 19:30:54 UT + Sat, 25 Jun 2022 09:46:04 UT internet - Twitch openstreetmaps expressvpn xfiles browserfingerprint telecom nameserver nbxmpp blockprotocol staticsite peppermintos justcontentcreatorthings interpeer SmallTech weblite dataprotectionday mirrored NetRegulation streisandeffect selfportraitday torrents Technology BestWord chillingeffects Podcast meshnetworks SepiaSearch hyper WiPri trackers Wikiless did Teddit webtorrent cooling chatcontrol onlineoffice dataverzameling DistributedDatabase scuttlebutt occupy cloudmacs ssg internetsafety cookieswet thegreatfirewall extensions converse librehosters digitalconvergence recovery dataviz logitechmediaserver firefoxos homeserver datasette onlinesafetybill linkeddata markdown selfsufficiency webgl decentralised immersiveweb pep decentraliseren i2p sceptic earlyinternet Clubhouse CooperativeClouds spam firefox redecentralize NYCMesh decentral socializing staticsitegenerator wikipedia zeitschriften maps rtmp PlasticFreeJuly dataprotection NNCP decentralization decentralize IPFSing w3c OsmFinds datacollection files dotConism offlineimap internetaccess agnostic geminispace archivists gaza selfhosted piratenpartij mapuche videohosting DarkPatternsFTC metafilter maille meta wikibase CooperativeTechnology torrent mailab geocaching freenode MollyBrown mailfence bot adblocker tox k9mail nylasmail smalltech data basemap webarchive sitejs meshroom protocol anticolonial VerkehrsswendeJetzt thecloud Jabbber worldbusterssocialclub publicserviceinternet networks criticism online openddata centralisation flameshot internetarchaeology WordPress darkages hiddenServices chainmail datarecovery elinks saferinternetday selfhost contentmoderation distributed OperationPanopticon mappe mydata webhosting decentralizedweb mailman natto p2pleft router sysadminday protection dataretention speedtest ublockorigin bigdata routeros internetofthings greenhosting selfhosting forkawesome communityhosting TikTok tilde CriminalJusticeBill networking brave panopticon aldi icann selfsustaining hosting mailart DAOs discourse digitalcolonialism weblate kinosocial libera coopserver PeerToPeer wikis dns decentralizetheweb stripe service economíasocial responsiveness nojs ejabberd amusewiki freifunk oauth Anticon tic foxes hypercore CDNsAreEvil meshtastic piratebay protonmail TubEdu standards StuffCircuit yourdataisyourdata internetfreedom mirroring onlineWhiteboard gemini antarctic zeit webui InternetCrimeFamily wlan boilemMashEmStickEmInAStew internetBanking SmallWeb fedwiki snikket redessociales fleenode ircd coopcloud cw internetshutdown democratic criticalmass masculinity datadetox mailpile clearnet cdn cloudflared liberapay pinterest brahmaputra distributedcoop xmpp semanticweb identicurse socialnetwork Disarchive selfie anticolonialism website datasets SaferInternetDay content splinternet participation highavailability webstandards mapa domains ntp centralized cloudfront socialnetworks metadata wikileaks disconnect Meme aioxmpp database socialanxiety proton disco web3 cloudfirewall TLSmastery descentralizare icmp organicMaps oop videocast governement jabber cleanuptheweb webbrowsers webhook communications decentralized userdata selflove wiki cloudron bsi browserextensions Fragattacks RedditDown ssb darknet cookies Qute MattHancock darkweb netcat webInstaller liberachat safety uberspace map Konfekoop Reddit archiv recaptcha server browser cloudy IPFS p2p social chainmaille antisocial tiddlywiki www missioncritical FreenodeTakeover ageverification corne fortinet Pluralistic opendata ilovewikipedia web WebsiteStatus ownyourdata battiato netshutdowns xep callforparticipation twitch im darkmode 9front bbb quadraticvoting GaiaX gavcloud decentralise att jabberspam theserverroom antarctica shutdowns Watomatic datafree greenhost domain mesh selfemployed hackint OpenStreetMap gnusocial darkambient RudolfBerner slixmpp geminiprotocol BurnermailIO irc osm eveonline pirate plaintext Graphika datacracy filesharing sysadminlife ownlittlebitofinternet squatting sysadmin misinformation rss ipns mozilla twitchbannedrevision voicemail gazaunderattack mapbox Nyxt legacyInternet yacy webrtc databases symbiotic debloattheweb crosspost fastmail sysadmins jmap mail tinycircuits bureaucratic i2pd ipfs internetradio bravenewworld routers practice browsers wikidata selfpub decentralizeit puredata netscape SSH mixcloud RSS DecolonizeTheInternet gmail openculture websites letthenetwork cyberspace SwitchToXmpp messaging selfies enxeñeríasocial cloud ddg bopwiki blabber snailmail cleanup selfdefense internet moderation decentralisation justcloudflarethings webinar metaverse qutebrowser _w3c_ socialcooling intox scholarsocial Seattle fox umap centralization ssbroom pihole serverMeddling sealioning missingmaps qtox puremaps archiving bravesearch sneakernet NatureNeedsJustice Nextcloud internetarchive dataintegration mydataismydata dweb kmail js metatext adblock dark captcha socialNetworks BlackHatSEO beakerbrowser LiberaChat openweb soulseek NetShutdown enigmail libervia failwhale onlineharms webp gooddata mailinglist kernelupgrade dot wifi Internet descentralizarea thepiratebay internetshutdowns fixtheweb mapporn contentid lazyweb servers atom kernel socialweb colonial AtomPub shutdown socialists kernenergie ebay zeitschrift mozillahubs instantmessaging publicservice interoperabilitate SolidProject tiktok Justice4MohamudHassan cloudflare messenger invidious Earthstar DigitalInfrastructure analysis internetexplorer digitalmusicnews archiveorg Nameservice doublestandards validator taco dataareliability plexoduswiki UserGeneratedContent internetofshit digitalgarden undemocratic webmentions bloat firefoxesr WebSustainability theinternetarchive dataVisualistion magnet trumpsocial purrdata onlinesafety torbrowser dataMinimisation westerndigital occupydarkcave AlternateDNS distributedweb humancentricinternet multicast virtualpanopticon massdatacolletion CommonWeb Word digitalnomad SafeWords telecomix crossposting memoryunsafety oldmanyellingatcloud publicsafety nointernet offline BigWeb noInternet cisco digitalhumanities emoticon TechWontSaveUs gajim groupcall Decentralization mirror retroshare whoogle gnudip safetynet wikirace2022 solarprotocol staticsites fork lazy isoc verizon tags GrowYourOwnServices ManagedHosting explore connectivity contentstrategy freedominternet dataprotectionbill masculinitysofragile DuckDuckGone xmppc fediwiki static zaproxy hashtags catalystcloud microservers LibreServer CloudIsland western towerdefense web03 mailboxforwarding explorer digitalsovereignty socialgood magneto talklikeapirateday webbrowser AttentionCrisis ffdweb webarchives Odysee digitalpolitik servicetoot sanfrancisco cortana webdesign serverscoop contextpatrol SelfHosting Searsia HowtoFixtheInternet MikeSearches computerSaysNo twitchclip analytics webb TheRulesOrg pirateparty WebOfConsent fabric peachcloud qualitativedataanalysis mediaserver sysadminporn finger digitalid digitalcollage nextgenerationinternet ZeroData searchengine DuckDuckGo little web0 digitalselfdefence email upgrade netblocks SwearWord deplatforming dbus communication bittorrent digital bucktooth lagrange CommunityHosting clawsmail piratebox ambientguitar libera_ ultimatespam effect interconnectivity SafariTechnologyPreview nina_xmpp nina bookmark opengraph vivaldi NamedDataNetworking digitalcourage starlink publicservices conversejs SmallCamp uBlacklist interconnection telecommunications selfreliance datalog BigBlueButton aesthetics weirderchat HTML6 HTMLlite SansJS SansScript websearch protocols rfc Irdest sametootbutwithhashtags discoelysium hashtag smolweb proxy Yunohost littlesnitch seafile darkux discodelgiorno strategy mailing servicedesign icon truthsocial qualitative usenet wikiversity digitaleconomy oonidata datashards originalcontent littleprince spammers mint greatfirewall haugenfiles owncloud mu4e WordProcessing agile archaeology ontopic metacontent exodus bookmarking digitalasset digitalwellness webpack supportnetworks creator hubs InternetOfTargets doublestandard twitchclips mailchimp microformats webfinger metaphor dashashtag dashashtagdasnicht webmention stern contentdesign web3isgoingjustgreat hyperfiddle UpstreamPodcast digitalSphereAsBattleground ineffective strategygame strategygames dataharvest dataharvest2022 extension calm corn sovereignty SingleTenant OpenWeb calming sendmail teamtacos tacos StandardsNerds UnifiedPush geminigracja tuxdigital webextension ublock webhost eurodisco italodisco unikernel convergence webfs dialup filespooler privacybrowser dokuwiki scent DeceptiveDesign EinkBro FreeTheServers twtxt hyperreality earlyweb Hostea + Twitch openstreetmaps expressvpn xfiles browserfingerprint telecom nameserver nbxmpp blockprotocol staticsite peppermintos justcontentcreatorthings interpeer SmallTech weblite dataprotectionday mirrored NetRegulation streisandeffect selfportraitday torrents Technology BestWord chillingeffects Podcast meshnetworks SepiaSearch hyper WiPri trackers Wikiless did Teddit webtorrent cooling chatcontrol onlineoffice dataverzameling DistributedDatabase scuttlebutt occupy cloudmacs ssg internetsafety cookieswet thegreatfirewall extensions converse librehosters digitalconvergence recovery dataviz logitechmediaserver firefoxos homeserver datasette onlinesafetybill linkeddata markdown selfsufficiency webgl decentralised immersiveweb pep decentraliseren i2p sceptic earlyinternet Clubhouse CooperativeClouds spam firefox redecentralize NYCMesh decentral socializing staticsitegenerator wikipedia zeitschriften maps rtmp PlasticFreeJuly dataprotection NNCP decentralization decentralize IPFSing w3c OsmFinds datacollection files dotConism offlineimap internetaccess agnostic geminispace archivists gaza selfhosted piratenpartij mapuche videohosting DarkPatternsFTC metafilter maille meta wikibase CooperativeTechnology torrent mailab geocaching freenode MollyBrown mailfence bot adblocker tox k9mail nylasmail smalltech data basemap webarchive sitejs meshroom protocol anticolonial VerkehrsswendeJetzt thecloud Jabbber worldbusterssocialclub publicserviceinternet networks criticism online openddata centralisation flameshot internetarchaeology WordPress darkages hiddenServices chainmail datarecovery elinks saferinternetday selfhost contentmoderation distributed OperationPanopticon mappe mydata webhosting decentralizedweb mailman natto p2pleft router sysadminday protection dataretention speedtest ublockorigin bigdata routeros internetofthings greenhosting selfhosting forkawesome communityhosting TikTok tilde CriminalJusticeBill networking brave panopticon aldi icann selfsustaining hosting mailart DAOs discourse digitalcolonialism weblate kinosocial libera coopserver PeerToPeer wikis dns decentralizetheweb stripe service economíasocial responsiveness nojs ejabberd amusewiki freifunk oauth Anticon tic foxes hypercore CDNsAreEvil meshtastic piratebay protonmail TubEdu standards StuffCircuit yourdataisyourdata internetfreedom mirroring onlineWhiteboard gemini antarctic zeit webui InternetCrimeFamily wlan boilemMashEmStickEmInAStew internetBanking SmallWeb fedwiki snikket redessociales fleenode ircd coopcloud cw internetshutdown democratic criticalmass masculinity datadetox mailpile clearnet cdn cloudflared liberapay pinterest brahmaputra distributedcoop xmpp semanticweb identicurse socialnetwork Disarchive selfie anticolonialism website datasets SaferInternetDay content splinternet participation highavailability webstandards mapa domains ntp centralized cloudfront socialnetworks metadata wikileaks disconnect Meme aioxmpp database socialanxiety proton disco web3 cloudfirewall TLSmastery descentralizare icmp organicMaps oop videocast governement jabber cleanuptheweb webbrowsers webhook communications decentralized userdata selflove wiki cloudron bsi browserextensions Fragattacks RedditDown ssb darknet cookies Qute MattHancock darkweb netcat webInstaller liberachat safety uberspace map Konfekoop Reddit archiv recaptcha server browser cloudy IPFS p2p social chainmaille antisocial tiddlywiki www missioncritical FreenodeTakeover ageverification corne fortinet Pluralistic opendata ilovewikipedia web WebsiteStatus ownyourdata battiato netshutdowns xep callforparticipation twitch im darkmode 9front bbb quadraticvoting GaiaX gavcloud decentralise att jabberspam theserverroom antarctica shutdowns Watomatic datafree greenhost domain mesh selfemployed hackint OpenStreetMap gnusocial darkambient RudolfBerner slixmpp geminiprotocol BurnermailIO irc osm eveonline pirate plaintext Graphika datacracy filesharing sysadminlife ownlittlebitofinternet squatting sysadmin misinformation rss ipns mozilla twitchbannedrevision voicemail gazaunderattack mapbox Nyxt legacyInternet yacy webrtc databases symbiotic debloattheweb crosspost fastmail sysadmins jmap mail tinycircuits bureaucratic i2pd ipfs internetradio bravenewworld routers practice browsers wikidata selfpub decentralizeit puredata netscape SSH mixcloud RSS DecolonizeTheInternet gmail openculture websites letthenetwork cyberspace SwitchToXmpp messaging selfies enxeñeríasocial cloud ddg bopwiki blabber snailmail cleanup selfdefense internet moderation decentralisation justcloudflarethings webinar metaverse qutebrowser _w3c_ socialcooling intox scholarsocial Seattle fox umap centralization ssbroom pihole serverMeddling sealioning missingmaps qtox puremaps archiving bravesearch sneakernet NatureNeedsJustice Nextcloud internetarchive dataintegration mydataismydata dweb kmail js metatext adblock dark captcha socialNetworks BlackHatSEO beakerbrowser LiberaChat openweb soulseek NetShutdown enigmail libervia failwhale onlineharms webp gooddata mailinglist kernelupgrade dot wifi Internet descentralizarea thepiratebay internetshutdowns fixtheweb mapporn contentid lazyweb servers atom kernel socialweb colonial AtomPub shutdown socialists kernenergie ebay zeitschrift mozillahubs instantmessaging publicservice interoperabilitate SolidProject tiktok Justice4MohamudHassan cloudflare messenger invidious Earthstar DigitalInfrastructure analysis internetexplorer digitalmusicnews archiveorg Nameservice doublestandards validator taco dataareliability plexoduswiki UserGeneratedContent internetofshit digitalgarden undemocratic webmentions bloat firefoxesr WebSustainability theinternetarchive dataVisualistion magnet trumpsocial purrdata onlinesafety torbrowser dataMinimisation westerndigital occupydarkcave AlternateDNS distributedweb humancentricinternet multicast virtualpanopticon massdatacolletion CommonWeb Word digitalnomad SafeWords telecomix crossposting memoryunsafety oldmanyellingatcloud publicsafety nointernet offline BigWeb noInternet cisco digitalhumanities emoticon TechWontSaveUs gajim groupcall Decentralization mirror retroshare whoogle gnudip safetynet wikirace2022 solarprotocol staticsites fork lazy isoc verizon tags GrowYourOwnServices ManagedHosting explore connectivity contentstrategy freedominternet dataprotectionbill masculinitysofragile DuckDuckGone xmppc fediwiki static zaproxy hashtags catalystcloud microservers LibreServer CloudIsland western towerdefense web03 mailboxforwarding explorer digitalsovereignty socialgood magneto talklikeapirateday webbrowser AttentionCrisis ffdweb webarchives Odysee digitalpolitik servicetoot sanfrancisco cortana webdesign serverscoop contextpatrol SelfHosting Searsia HowtoFixtheInternet MikeSearches computerSaysNo twitchclip analytics webb TheRulesOrg pirateparty WebOfConsent fabric peachcloud qualitativedataanalysis mediaserver sysadminporn finger digitalid digitalcollage nextgenerationinternet ZeroData searchengine DuckDuckGo little web0 digitalselfdefence email upgrade netblocks SwearWord deplatforming dbus communication bittorrent digital bucktooth lagrange CommunityHosting clawsmail piratebox ambientguitar libera_ ultimatespam effect interconnectivity SafariTechnologyPreview nina_xmpp nina bookmark opengraph vivaldi NamedDataNetworking digitalcourage starlink publicservices conversejs SmallCamp uBlacklist interconnection telecommunications selfreliance datalog BigBlueButton aesthetics weirderchat HTML6 HTMLlite SansJS SansScript websearch protocols rfc Irdest sametootbutwithhashtags discoelysium hashtag smolweb proxy Yunohost littlesnitch seafile darkux discodelgiorno strategy mailing servicedesign icon truthsocial qualitative usenet wikiversity digitaleconomy oonidata datashards originalcontent littleprince spammers mint greatfirewall haugenfiles owncloud mu4e WordProcessing agile archaeology ontopic metacontent exodus bookmarking digitalasset digitalwellness webpack supportnetworks creator hubs InternetOfTargets doublestandard twitchclips mailchimp microformats webfinger metaphor dashashtag dashashtagdasnicht webmention stern contentdesign web3isgoingjustgreat hyperfiddle UpstreamPodcast digitalSphereAsBattleground ineffective strategygame strategygames dataharvest dataharvest2022 extension calm corn sovereignty SingleTenant OpenWeb calming sendmail teamtacos tacos StandardsNerds UnifiedPush geminigracja tuxdigital webextension ublock webhost eurodisco italodisco unikernel convergence webfs dialup filespooler privacybrowser dokuwiki scent DeceptiveDesign EinkBro FreeTheServers twtxt hyperreality earlyweb Hostea digitalocean SmallTechnologyFoundation StaSiG Webkit2GTK showyourstripes bloatware beagle torrentfreak blackmirror MagnetLinks rdf - Sat, 11 Jun 2022 19:30:54 UT + Sat, 25 Jun 2022 09:46:04 UT games - Wordle winning gamingonlinux Ninja_Golf ageofempires4 Ghostbusters_II signification letsplay dwarffortress gameplay Wolfgame capturetheflag dungeonsAndDragons miniature appdesign gameofshrooms minecraft soloRPG nbsdgames karma tetris99 gamestop libregaming ageofempires mondragon BiophilicDesign videogame ksp TerraNil productdesign dungeonmaster gogodotjam AudioGame runequest miniatures dragonfall boardgames computergames creature fucknintendo fudgedice angrydesigner gameassets gamestonk fossgaming videogames FediDesign gameboy puzzle indiegames gamedesign shadowrun spot godotengine adventuregames chess gamejam nintendoswitch mudrunner mud indiegame game 0ad dragon playlog gameart sdg lovewood designfail opengameart sign asset gilgamesh fudgerpg ttrpg fudge gamedev freegames guildwars2 creaturedesign bideogames adventuregame TetrisGore gaming gamemaker gameing nintendo roleplayinggames itch unvanquished gamesdonequick Gamesphere devilutionx rpg gamespot tetris dosgaming supertuxkart freegaming DnD socialdesign karmaisabitch cyber2077 godot gamestudies tarot cyberpunk2077 gamesforcats FreeNukum spelunkspoil boardgaming supermariomaker2 neopets minetest omake guildwars dice dnd games playing chromakey signs slopesgameroom dungeonsanddragons cardgames signify subwaycreatures nintendo64 itchio ageofempires2 indiegamedev 12creatures 12creatures3 gamingforgood fossgames TransportTycoon roguelike princeofpersia hotspot quidditch worldrecord 2dgame gamedevs creatureconcept nes gamingindustry pets VoteChess NonPlayerCharacter GamingForEducation LANFest fallout fallout76 gamergirl gameclip gamer VideoGamesLive gamingmusic FalloutClips FalloutGames gameengine designer dragonbox gamergirls FalloutClip chute 12morecreatures gamejams gamesnight gaming4life jackboxgames videogames4life fortnite jams seacreature ComputerAidedDesign gameDev dragonsfoot ttrpgs dicegoblin resindice petscii WebDesigner permagaming flag scarygames adventure gamingmoment girlgamers roleplaying roleplayinggame rpgs gamingclips GameClips wargames dragonfly TheGroundItself CharacterDesign lichess LetsBuildAZoo guessthegame assetpack veloren nesdev SummerGameFest mmorpg + Wordle winning gamingonlinux Ninja_Golf ageofempires4 Ghostbusters_II signification letsplay dwarffortress gameplay Wolfgame capturetheflag dungeonsAndDragons miniature appdesign gameofshrooms minecraft soloRPG nbsdgames karma tetris99 gamestop libregaming ageofempires mondragon BiophilicDesign videogame ksp TerraNil productdesign dungeonmaster gogodotjam AudioGame runequest miniatures dragonfall boardgames computergames creature fucknintendo fudgedice angrydesigner gameassets gamestonk fossgaming videogames FediDesign gameboy puzzle indiegames gamedesign shadowrun spot godotengine adventuregames chess gamejam nintendoswitch mudrunner mud indiegame game 0ad dragon playlog gameart sdg lovewood designfail opengameart sign asset gilgamesh fudgerpg ttrpg fudge gamedev freegames guildwars2 creaturedesign bideogames adventuregame TetrisGore gaming gamemaker gameing nintendo roleplayinggames itch unvanquished gamesdonequick Gamesphere devilutionx rpg gamespot tetris dosgaming supertuxkart freegaming DnD socialdesign karmaisabitch cyber2077 godot gamestudies tarot cyberpunk2077 gamesforcats FreeNukum spelunkspoil boardgaming supermariomaker2 neopets minetest omake guildwars dice dnd games playing chromakey signs slopesgameroom dungeonsanddragons cardgames signify subwaycreatures nintendo64 itchio ageofempires2 indiegamedev 12creatures 12creatures3 gamingforgood fossgames TransportTycoon roguelike princeofpersia hotspot quidditch worldrecord 2dgame gamedevs creatureconcept nes gamingindustry pets VoteChess NonPlayerCharacter GamingForEducation LANFest fallout fallout76 gamergirl gameclip gamer VideoGamesLive gamingmusic FalloutClips FalloutGames gameengine designer dragonbox gamergirls FalloutClip chute 12morecreatures gamejams gamesnight gaming4life jackboxgames videogames4life fortnite jams seacreature ComputerAidedDesign gameDev dragonsfoot ttrpgs dicegoblin resindice petscii WebDesigner permagaming flag scarygames adventure gamingmoment girlgamers roleplaying roleplayinggame rpgs gamingclips GameClips wargames dragonfly TheGroundItself CharacterDesign lichess LetsBuildAZoo guessthegame assetpack veloren nesdev SummerGameFest mmorpg PitchDetection KitchenGardens BrusselsKitchenGarden - Sat, 11 Jun 2022 19:30:54 UT + Sat, 25 Jun 2022 09:46:04 UT activism - smashadvertsoutofbusstopwindows current changeTheBloodyDateAlready bp thetruthisoutthere mutuailaidrequest thesystem radical nonprofits SaveMills good HandsOffOurLibraries DefendWinnemuccaCamp Activisme FreeMutuluNow hell ict4good landback UniteInResistance rights activism protestor dutysolicitor roots WeDemandTransparency CallToAction annonce rojava PrisonLivesMatter clearchannel nog20 Lobauautobahn eni tyrannyofconvenience grassroot nonviolentcommunication FreeLibreOpen protesters g20 ShaleMustFall JusticeForRapheal rig augustriseup bekannt farmersprotest animalrights protests resistance cyborgrights riseup resistg7 DontShootTheMessenger demo PrisonSolidarity linnemann sflc DanniVive freeassange dangote reuse stopspyingonus keepiton Dannenroederforst FSFE20 ClimateJusticeMovement fsfe killthebill edri softwarefreedom indigenousrights activists unautremondeestpossible AntiCopyright Rojava ilovefs stopnacjonalizmowi ann activist wec HeroesResist edrigram xr SustainableUserFreedom bannerlord systemchangenotclimatechange riseup4rojava righttoexist seachange directaction mannheim Doulingo politicalactivism diskriminierung wechange seattleprotests eff gamechanger root change openrightsgroup protest icantbreathe channelname planning FSF userrights LaptevSea actiondirecte kroymann climatechange protestsupport climatchange HS2 ngo StandWithTillie FrightfulFive fsf fsfi StopHS2 grassroots HS2Rebellion protestcamp resist openrights TalesFromTheExtinction FreeJournalistAssange antireport ClimateJustice FreedomCamping BLM ExtinctionRebellion shellmustfall changeisinyourhands wlroots weareallassange conservancy ngos UserFreedom sp bin JefferySaunders freepalestine CopsOffCampus GreatGreenWall LiliannePloumen freeassangenow savetheplanet directactiongetsthegoods hauptmann activismandlaw climatechangeadaptation Kolektiva Indigenousresistance BayouBridgePipeline XR freeolabini tellthetruth announcement isolateByoblu FreeAllPoliticalPrisoners digitalhumanrights BlackburnTakeover hopepunk sage SchellingPoint StopDataDiscrimination woonprotestUtrecht Groundswell woningprotest hellraiser ShutDownCanada messageDigests MelbourneProtest Landback prototypedemos cyborg DismantleFossilIndustries FeministAntiWarResistance UnitingForPeace tinc frootLoops Coronaprotest boycottcoke DayAgainstDRM womensrights TheYesMen AntiNFTAktion ThinkBeforeSharing ShutEmDown2021 MoveShell nowar ActivismInternational MauiShell borg localresilience GrowYourOwn Barcade softwarefreedomday imessage trustroots changemymind rightsOfPassage freeallpoliticalprisoners disroot uberawareness PeopleNotProfit radicaltranscare uprootthesystem FreeElany textmessage changes leeuwarden spying klimaatactivisme JustStopOil Solidarity Call_in_campaign juststopoil demonstratie groenlinks WoonProtest peasantrightsnow demonstration radicalleft demonizer exposingtheinvisible Striketober softwarefreedomconservancy truth democrats workerrights currentlyinked bitchesAgainstPower abolishborders SeizeTheMeansOfCommunity Seychelles urbanplanning directmessages Activism kurdishSolidarity banspying goodvibes olabini riscisgood RallyAgainstShell ThereAreNoUnskilledJobs disk InternationalSolidarityDay rootful abolish + smashadvertsoutofbusstopwindows current changeTheBloodyDateAlready bp thetruthisoutthere mutuailaidrequest thesystem radical nonprofits SaveMills good HandsOffOurLibraries DefendWinnemuccaCamp Activisme FreeMutuluNow hell ict4good landback UniteInResistance rights activism protestor dutysolicitor roots WeDemandTransparency CallToAction annonce rojava PrisonLivesMatter clearchannel nog20 Lobauautobahn eni tyrannyofconvenience grassroot nonviolentcommunication FreeLibreOpen protesters g20 ShaleMustFall JusticeForRapheal rig augustriseup bekannt farmersprotest animalrights protests resistance cyborgrights riseup resistg7 DontShootTheMessenger demo PrisonSolidarity linnemann sflc DanniVive freeassange dangote reuse stopspyingonus keepiton Dannenroederforst FSFE20 ClimateJusticeMovement fsfe killthebill edri softwarefreedom indigenousrights activists unautremondeestpossible AntiCopyright Rojava ilovefs stopnacjonalizmowi ann activist wec HeroesResist edrigram xr SustainableUserFreedom bannerlord systemchangenotclimatechange riseup4rojava righttoexist seachange directaction mannheim Doulingo politicalactivism diskriminierung wechange seattleprotests eff gamechanger root change openrightsgroup protest icantbreathe channelname planning FSF userrights LaptevSea actiondirecte kroymann climatechange protestsupport climatchange HS2 ngo StandWithTillie FrightfulFive fsf fsfi StopHS2 grassroots HS2Rebellion protestcamp resist openrights TalesFromTheExtinction FreeJournalistAssange antireport ClimateJustice FreedomCamping BLM ExtinctionRebellion shellmustfall changeisinyourhands wlroots weareallassange conservancy ngos UserFreedom sp bin JefferySaunders freepalestine CopsOffCampus GreatGreenWall LiliannePloumen freeassangenow savetheplanet directactiongetsthegoods hauptmann activismandlaw climatechangeadaptation Kolektiva Indigenousresistance BayouBridgePipeline XR freeolabini tellthetruth announcement isolateByoblu FreeAllPoliticalPrisoners digitalhumanrights BlackburnTakeover hopepunk sage SchellingPoint StopDataDiscrimination woonprotestUtrecht Groundswell woningprotest hellraiser ShutDownCanada messageDigests MelbourneProtest Landback prototypedemos cyborg DismantleFossilIndustries FeministAntiWarResistance UnitingForPeace tinc frootLoops Coronaprotest boycottcoke DayAgainstDRM womensrights TheYesMen AntiNFTAktion ThinkBeforeSharing ShutEmDown2021 MoveShell nowar ActivismInternational MauiShell borg localresilience GrowYourOwn Barcade softwarefreedomday imessage trustroots changemymind rightsOfPassage freeallpoliticalprisoners disroot uberawareness PeopleNotProfit radicaltranscare uprootthesystem FreeElany textmessage changes leeuwarden spying klimaatactivisme JustStopOil Solidarity Call_in_campaign juststopoil demonstratie groenlinks WoonProtest peasantrightsnow demonstration radicalleft demonizer exposingtheinvisible Striketober softwarefreedomconservancy truth democrats workerrights currentlyinked bitchesAgainstPower abolishborders SeizeTheMeansOfCommunity Seychelles urbanplanning directmessages Activism kurdishSolidarity banspying goodvibes olabini riscisgood RallyAgainstShell ThereAreNoUnskilledJobs disk InternationalSolidarityDay rootful abolish disks changelist JanesRevenge EndFossilFuelProtection messages GlobalJusticeNow 3goodthings - Sat, 11 Jun 2022 19:30:54 UT + Sat, 25 Jun 2022 09:46:04 UT culture stayathome fomo traditionalart trad trading brainstorming etiquette celtic counterculture netiquette GeekBeacon stoparmstrade basicWitch basicBitch motivational symbolism celebrity parenting tradefree afrodiasporic adolescence ParentingDoneRight cringe ultradroite renting - Sat, 11 Jun 2022 19:30:54 UT + Sat, 25 Jun 2022 09:46:04 UT other - BezczelnaAutopromocja warning filecoin struggle lifepo4 evil nonotreally epikfail awesome nft ageassurance pentester bullshit klimaatbeleid justasleepypanda extinctionrebellion fail masseffect lastpass yolo nothingnew Lastpass extinction weareclosed happy efail bripe MasseyUniversity PassSanitaire solution dansenmetjanssen messageToSelf TagGegenAntimuslimischenRassismus quecksilber itscomplicated Erzvorkommen test isntreal gentests rzeźwołyńska massextinction misc tw rants manutentore frantzfanon shots assaultcube shitpost denachtvanjanssen biomassacentrale mining rising devilsadvocate ACA pinside xp impfpass cda rant Terrassen righttodisassemble rassismus MassoudBarzani koerden CovPass nahrungskette SomeUsefulAndRelvantHashtag LanguageHelpForMigrants nsfw biomass rassismustötet oversleep ass id Chiacoin futtermittel CubanProtests geo oerde m assassinfly migrantstruggles PointlessGriping close decluttering OCUPACAOCARLOSMARIGHELLA bundesregierung eek happyfriday hattip anus zelftests rmit uxfail handspun crap therant woningnood CosmosNetwork dao LondonProtest kerst rebel tests sleepy EnquiringMinds nftcommunity badboy bang awesomeOSM garbage scale MigrantCulture falling catlife lifeisgood beevil KazakhstanProtests braindump happythoughts scientistrebellion shit nojoke Kazakhstan happyhalloween hands dadlife EyeLevelSticks halloween found lookIjusttaggedyourpost Cunts rantover anotherlife life silverlining shitpostandwhisky secondlife newfoundland tailscale closeenough happyhour musl mousevillage handsfree muslims shitposting weed vibrant thebestlife datamining eatshit crappy restaurant cruisinglife + BezczelnaAutopromocja warning filecoin struggle lifepo4 evil nonotreally epikfail awesome nft ageassurance pentester bullshit klimaatbeleid justasleepypanda extinctionrebellion fail masseffect lastpass yolo nothingnew Lastpass extinction weareclosed happy efail bripe MasseyUniversity PassSanitaire solution dansenmetjanssen messageToSelf TagGegenAntimuslimischenRassismus quecksilber itscomplicated Erzvorkommen test isntreal gentests rzeźwołyńska massextinction misc tw rants manutentore frantzfanon shots assaultcube shitpost denachtvanjanssen biomassacentrale mining rising devilsadvocate ACA pinside xp impfpass cda rant Terrassen righttodisassemble rassismus MassoudBarzani koerden CovPass nahrungskette SomeUsefulAndRelvantHashtag LanguageHelpForMigrants nsfw biomass rassismustötet oversleep ass id Chiacoin futtermittel CubanProtests geo oerde m assassinfly migrantstruggles PointlessGriping close decluttering OCUPACAOCARLOSMARIGHELLA bundesregierung eek happyfriday hattip anus zelftests rmit uxfail handspun crap therant woningnood CosmosNetwork dao LondonProtest kerst rebel tests sleepy EnquiringMinds nftcommunity badboy bang awesomeOSM garbage scale MigrantCulture falling catlife lifeisgood beevil KazakhstanProtests braindump happythoughts scientistrebellion shit nojoke Kazakhstan happyhalloween hands dadlife EyeLevelSticks halloween found lookIjusttaggedyourpost Cunts rantover anotherlife life silverlining shitpostandwhisky secondlife newfoundland tailscale closeenough happyhour musl mousevillage handsfree muslims shitposting weed vibrant thebestlife datamining eatshit crappy restaurant cruisinglife janus donotlike - Sat, 11 Jun 2022 19:30:54 UT + Sat, 25 Jun 2022 09:46:04 UT agriculture agroecology farmers regenerativeagriculture communitysupportedagriculture ColonyCages - Sat, 11 Jun 2022 19:30:54 UT + Sat, 25 Jun 2022 09:46:04 UT emotions blessed - Sat, 11 Jun 2022 19:30:54 UT + Sat, 25 Jun 2022 09:46:04 UT health - actuallyadhd ministryofhealth Schandmaul eventsourcing merchandise FreedomIsTheOnlyTreatment gnuhealth water 4 medical CoronaApp runningdownthewalls watersnood EfeLevent autism burnout Underunderstood cannabis hand event healthinsurance medicine anxiety freshwater mh inflammation run eternalpuberty NHSDataGrab treatment EmotionalFirstAid safeabortion4all maryjane organisierung autistic BlockBrunsbüttel running neurodivergent health motion crunchbang actuallyautistic meds PatientSafety marijuana suicideprevention mentalhealth postmortem H5N8 healthy DarrenChandler autismmeme einzelhandel drugs atm neurodiverse asperger cigarettes insurance hearingimpairment selfcare autismus stressreduction SnowSurgeon medicineedison coping unhealthy RecreationalDrugs fibromyalgia libhandy librehealth seventies heachache handgelenk shamelessselfpromotion medicalcannabis Hypervigilance hayfever paramedic ambulance mindfulness sleepnet autismacceptancemonth worldautismawarenessday handRolled dementia autismawarenessmonth salmonella masking WorkSafe adhd healthdata waterfox motionlessinwhite applehealth sleep eleventy fitbit thyroid events wellbeing worried dyslexia need watertime rainwater healhinsurance todayswater johanderksen eventstorming needMoreArms Safety SchoolSafety hearing fuckfibromyalgia + actuallyadhd ministryofhealth Schandmaul eventsourcing merchandise FreedomIsTheOnlyTreatment gnuhealth water 4 medical CoronaApp runningdownthewalls watersnood EfeLevent autism burnout Underunderstood cannabis hand event healthinsurance medicine anxiety freshwater mh inflammation run eternalpuberty NHSDataGrab treatment EmotionalFirstAid safeabortion4all maryjane organisierung autistic BlockBrunsbüttel running neurodivergent health motion crunchbang actuallyautistic meds PatientSafety marijuana suicideprevention mentalhealth postmortem H5N8 healthy DarrenChandler autismmeme einzelhandel drugs atm neurodiverse asperger cigarettes insurance hearingimpairment selfcare autismus stressreduction SnowSurgeon medicineedison coping unhealthy abortion RecreationalDrugs fibromyalgia libhandy librehealth seventies heachache handgelenk shamelessselfpromotion medicalcannabis Hypervigilance hayfever paramedic ambulance mindfulness sleepnet autismacceptancemonth worldautismawarenessday handRolled dementia autismawarenessmonth salmonella masking WorkSafe adhd healthdata waterfox motionlessinwhite applehealth sleep eleventy fitbit thyroid events wellbeing worried dyslexia need watertime rainwater healhinsurance todayswater johanderksen eventstorming needMoreArms Safety SchoolSafety hearing fuckfibromyalgia - Sat, 11 Jun 2022 19:30:54 UT + Sat, 25 Jun 2022 09:46:04 UT pets mastopets Tech TechnikTechnik DogasOfMastodon animals buny spinning catpics shepherd leiningen uninstallman ExposureNotifications ats germanshepherd catofmastodon nin TheRabbitHole staatstrojaner deskcat verification eurocrats QuestioningTechnology toocute cataloging cathedrals petpeeve Stelleninserat acidification reEducationCamp mastodogs rats puppets catbehaviour digidog dogecoin Stallman Coolcats petrats governing dogsofmastodon gentrification evening broadcats gattini bunyPosting benjennings kitten fostercats gamification woningnet WegenErdogan jürgenconings cats uninStallman kittens Uninstallman pet dog scotties Pruning acat catontour catsofmastodon leninismo podcatcher meow cute mastocat lenin catstodon dogs reimagining catsofparkdale mastocats W3CSpecification mastodog notpixiethecat londoninnercitykitties cat blackcat furry petitie JuliaKitten dogsofmaston JurgenConings scottie catcontent UserDomestication puppet BigTech vacaturevrijdag leninism login TechnoRealism executed dogwalk coneofshame SovereignTechFund fedicats RetroEdgeTechStack handspinning kittenmews warriorcats Dogs meowlogism dogsatpollingstations TechnicalKevetch TechnicalKvetch prats ScamTech - Sat, 11 Jun 2022 19:30:54 UT + Sat, 25 Jun 2022 09:46:04 UT sports archery - Sat, 11 Jun 2022 19:30:54 UT + Sat, 25 Jun 2022 09:46:04 UT gender - transcrowfund Transrowdfund LGBTQ Trans selfportraitday2021 mensenrechten transitiongoals transgender trans transparantie transistors transparenz broketrans transition internationalwomensday2021 transwomen womenwhocode transfobie buildless WomenInHistory transdayofresistance mens vieillesse womensart blacktranslivesmatter female nonbinary womensday vantascape blacktransmagic nb patriarchy nonbinarycommunity transpositivity LucyLawless transdayofvisibility lgbtqia transphobia transmitter women menschheit lgbt bodypositive nonbinarypeoplesday transzorg womenrock estradiol lgbtq transaid queerartist transgenders girlboss pointlesslygendered queer transdayofvisbility nonbinaryday genderQuiz gender genderqueerpositivity NonBinaryPositivity woman transrights TransZorgNu transawarenessweek creators genderstudies queerstudies transmetropolitan queercreators transmission transformers justtransition transformation internationalwomensday InternationalWomensDay2022 womenintech romance womeninmusic WomensPanel TallGirlProblems TransDayOfConsequences carmensandiego girlslikeus day2 comingout lgbtqi transvisibility fund womenpower positivity Transfrau lgbtfriendly antimisogyny womenquote magic neuromancer smashthepatriarchy mmromance visiblewikiwomen parent Commensality queerSoliBox TranszorgU transhappinessisreal digitaltransformation visibility binary nombinary genderpaygap + transcrowfund Transrowdfund LGBTQ Trans selfportraitday2021 mensenrechten transitiongoals transgender trans transparantie transistors transparenz broketrans transition internationalwomensday2021 transwomen womenwhocode transfobie buildless WomenInHistory transdayofresistance mens vieillesse womensart blacktranslivesmatter female nonbinary womensday vantascape blacktransmagic nb patriarchy nonbinarycommunity transpositivity LucyLawless transdayofvisibility lgbtqia transphobia transmitter women menschheit lgbt bodypositive nonbinarypeoplesday transzorg womenrock estradiol lgbtq transaid queerartist transgenders girlboss pointlesslygendered queer transdayofvisbility nonbinaryday genderQuiz gender genderqueerpositivity NonBinaryPositivity woman transrights TransZorgNu transawarenessweek creators genderstudies queerstudies transmetropolitan queercreators transmission transformers justtransition transformation internationalwomensday InternationalWomensDay2022 womenintech romance womeninmusic WomensPanel TallGirlProblems TransDayOfConsequences carmensandiego girlslikeus day2 comingout lgbtqi transvisibility fund womenpower positivity Transfrau lgbtfriendly antimisogyny womenquote magic neuromancer smashthepatriarchy mmromance visiblewikiwomen parent Commensality queerSoliBox TranszorgU transhappinessisreal digitaltransformation visibility binary nombinary genderpaygap transient fundamentalism - Sat, 11 Jun 2022 19:30:54 UT + Sat, 25 Jun 2022 09:46:04 UT software - librepanet silicon featurenotabug RockyLinux responsibletech AdobePremiere adobemax preinstalled fossArrogance endsoftwarepatents freewill wolf drmfree flatpak softwareautonomy patent FOSSForSociety freethink AudioProcessing AbandonwareContinuity thematrix automation freeasinfreedom soundscape alternativesocialmedia freelina bachata computeing fossjobs WireWorld lawsuits SoftwareWarranty Convene Windows softwarerecommendation openengiadina interoperabiliteit freeTheBrowser nerdsnipe beta borgbackup forms app FLOSS freeUP1 freedombox windows edit nginx transclusion krebsrisiken proprietarysoftware cooperativetechnology freepalestin calibre misophonia fosshost postscript nota AAPIHeritageMonth freenet freebsd kc font Framasoft tts E40 Flisol2021 drm freedos softwarelibero alternativesto Raychat publicdomain ilovefreesoftware hydra readers StoryMapJS kubernetes openvms luca nodrm fossmendations happyauthor freedoom librespeed jami betatesting NottsTV libregraphics genossenschaft FuckOffZoom quicksy thunder whiteboard free docker softwarelibre opensourcehardware uxdesign interoperability impression3d freesoftware gimp krebs backups foss matrix fonts dinosaur mossad unfa weechat clapper designjustice thefreethoughtproject filesystems nextcloud translate wechat notmatrix gnupg lucaApp chats duplicati HappyLight opensourcesoftware permissionless compression ArchLinux openscad freeganizm uidesign softwaredeveloper neochat TabOrder searx ikiwiki prosody Linux FreeSoftware userresearch FlisolLibre2021 DisCOElements Audio rocketchat thanksfreesw libres webapps immers outreachy synapse API freelibre lyft freekirtaner nitter monitoring misogyny virtualbox ngi4eu discord reverseengineering whisperfish ee opensourcedesign vaporware opensource diaspora yunohost oss librelounge AudioCreation chickadee appstore dégooglisons littlebigdetails cabal conferencing cadmium libreboot blueridgeabc musiquelibre mycroft smokefree kdeapplications owncast lovewins phabricator emacs freiesoftware FLOSSvol moss fluffychat dinoim impress writefreely videoconferencing bigbluebutton tile_map_editor ngi esri chatapps HappyNewYear Eiskappe fossilfriday umatrix floss plugins softwaresuite frecklesallovertheshow graphic libresoftware softwareengineering mosstodon expandocat deltachat application uifail FOSS peatfree lucaapp GNOMECircle palestinewillbefree penpot vlc zoom southasia tiling session diaspora0800 FriendofGNOME Senfstoffknappheit usability winamp opendesign obnam snap appim ProprietarySoftwareProblems pandoc Happy4thJuly freemumia write artificialintelligence blackcappedchickadee cryptpad software libretranslate OwnStream upstream maplibre slack Hummingbard userfreedom hydrated emacslisp Element freeware DismantleFossilCompanies safenetwork asia jit SoftwareLibre zrythm gnu CTZN silicongraphics mumble strugglesessions grsync freecad telegram containers tails freeschool chatons blockchain windows11 irssi HabKeinWhatsapp information mcclim jitsimeet dedrm iso mutt librelingo freetibet WeAreAlmaLinux tilingwm sri design gameoftrees GnuLinuxAudio freegan freeriding freetool backup trueLinuxPhone ngio rotonde freetube jumpdrive GNU speechrecognition eurovison skydroid thunderbird it sound alternativeto screenreader parler bison apps chat licensing fossasia inclusivedesign ethicalsoftware defectivebydesign berne metager digitalsustainability ZeroCool freedombone uber obsproject arti librecast softwareheritage pittsburgh profanity delta Tankklappe doomemacs imageeditor ffmpeg fossandcrafts GNOME40 telesoftware proprietary love notabug reboot opensourcegardens musique switchingsoftware hydrangeas OSM freesw agpl distribute magnifyingglass GNOME freeganizmniewybacza drive botlove duolingo freesoftare AlmaLinux GreenandBlackCross strafmaatschappij freetillie distributedledger mattermost principiadiscordia blue LinuxPhones filesystem rocket ghostscript win10 Zoom tibet ComputerFolklore fossaudio elemental flisoltenerife libreops appsec element platforms inclusive uxn librelabucm engineer softwareNotAsAService ptp chatty Matrix lucafail fontawesome informationwantstobefree softwareGripe nativeApp MatrixEffect culturalibre jitsi taintedlove flisol engineers dinosaurier wordpress SwitchToJami mongodb ux rsync libreoffice chatbot crossstitch dino RainbOSM plugin xwiki tecc openoffice container discordia softwaredesign redeslibres ledger sounddesign alternatives glimpse libregraphicsmeeting mycroftai iLoveFreeSoftware fossbro kiwi hydrasynth clap vterm domaindrivendesign multics cloudengineer chatsecure shaarli GamingOnLinux Subplot will GreenSoftware ggplot2 openEngiadina notallcars characterdesign sustainablewebdesign spacemacs literaryeditor hledger Eurasianism bluewall interop UpyclingOfSoftware ecodesign meditation matrixdotorg elementartOS libre composeui destroycarsociety coreboot libreelec simples adobe doommoments reboots kiwix graphicdesign linuxlibre bridges switch easteregg LiberaForms BinaryBlobs VBCC Buongiornissimo dmenu patents ansible opendesigncourse schildichat chatrooms impartially Spheremail blueangel fossback Software freesound fairemail doom TechnologiesOfHope rocketeer OrgSuperAgenda OrgQL soundengineer tutanota postdoom electriccars appimage uiuxdesign webapp windows10 virtualworlds applications uninstalluber removeuber uberislooting MatrixBridge computerchronicles GNOME41 ox GNUNameSystem facesofopensource autohotkey lcars support posteo editor tramp podman snapchat soundart sharepoint screenshot participatiewet ultraedit freedomofinstallation mediterranean fossdev freedomboxdev matrix4 MatrixResurrections willsmith ultrasound bikelove antartica freebritney AudioPlugins libresaas reverseengineer PravApp virtualworld deltarune soundandvision framasphere annotation HappyNewYear2022 Gartic suit writeas notalone artifact ohnotafeeling MERN easter openbenches olivevideoeditor smoke adverts joindiaspora TheFossbroParadox aphantasia freethought simplescreenrecorder outreach corebootbook blueorigin siliconvalley RobloxDev tuberculosis librewolf fossFinds pico8 vim artinpiration theDetailsMatter cars tinytools tinysoftware freemen dapps imageoptimization graphicnovels parties dinosaurs WindowsSecurity gxdoom gzdoom kubernetics graphicnovel googl unison nerds lovesexy Orgdown FreeTheAudience details freeDCam FedoraSilverblue blockchains screen freecollege college feditits screenplay TelegramFOSS novels softwareengineer quantuminformation libregames tomuchinformation songwriter screenplays freemarleneandmatej freespeach society bluetit blueksy hostiledesign opensourcefriday urbandesign Wortschatz Kicad wordpress501 saas terra terraluna civilsociety loveislove gnomesoftware AntonioMartinCarrillo DDRdesign foxglove configuration LiberaForm artimprovement carfree g8alternatives bluevelvet codesign informationmanagement notation loveletter gemdrive improv + librepanet silicon featurenotabug RockyLinux responsibletech AdobePremiere adobemax preinstalled fossArrogance endsoftwarepatents freewill wolf drmfree flatpak softwareautonomy patent FOSSForSociety freethink AudioProcessing AbandonwareContinuity thematrix automation freeasinfreedom soundscape alternativesocialmedia freelina bachata computeing fossjobs WireWorld lawsuits SoftwareWarranty Convene Windows softwarerecommendation openengiadina interoperabiliteit freeTheBrowser nerdsnipe beta borgbackup forms app FLOSS freeUP1 freedombox windows edit nginx transclusion krebsrisiken proprietarysoftware cooperativetechnology freepalestin calibre misophonia fosshost postscript nota AAPIHeritageMonth freenet freebsd kc font Framasoft tts E40 Flisol2021 drm freedos softwarelibero alternativesto Raychat publicdomain ilovefreesoftware hydra readers StoryMapJS kubernetes openvms luca nodrm fossmendations happyauthor freedoom librespeed jami betatesting NottsTV libregraphics genossenschaft FuckOffZoom quicksy thunder whiteboard free docker softwarelibre opensourcehardware uxdesign interoperability impression3d freesoftware gimp krebs backups foss matrix fonts dinosaur mossad unfa weechat clapper designjustice thefreethoughtproject filesystems nextcloud translate wechat notmatrix gnupg lucaApp chats duplicati HappyLight opensourcesoftware permissionless compression ArchLinux openscad freeganizm uidesign softwaredeveloper neochat TabOrder searx ikiwiki prosody Linux FreeSoftware userresearch FlisolLibre2021 DisCOElements Audio rocketchat thanksfreesw libres webapps immers outreachy synapse API freelibre lyft freekirtaner nitter monitoring misogyny virtualbox ngi4eu discord reverseengineering whisperfish ee opensourcedesign vaporware opensource diaspora yunohost oss librelounge AudioCreation chickadee appstore dégooglisons littlebigdetails cabal conferencing cadmium libreboot blueridgeabc musiquelibre mycroft smokefree kdeapplications owncast lovewins phabricator emacs freiesoftware FLOSSvol moss fluffychat dinoim impress writefreely videoconferencing bigbluebutton tile_map_editor ngi esri chatapps HappyNewYear Eiskappe fossilfriday umatrix floss plugins softwaresuite frecklesallovertheshow graphic libresoftware softwareengineering mosstodon expandocat deltachat application uifail FOSS peatfree lucaapp GNOMECircle palestinewillbefree penpot vlc zoom southasia tiling session diaspora0800 FriendofGNOME Senfstoffknappheit usability winamp opendesign obnam snap appim ProprietarySoftwareProblems pandoc Happy4thJuly freemumia write artificialintelligence blackcappedchickadee cryptpad software libretranslate OwnStream upstream maplibre slack Hummingbard userfreedom hydrated emacslisp Element freeware DismantleFossilCompanies safenetwork asia jit SoftwareLibre zrythm gnu CTZN silicongraphics mumble strugglesessions grsync freecad telegram containers tails freeschool chatons blockchain windows11 irssi HabKeinWhatsapp information mcclim jitsimeet dedrm iso mutt librelingo freetibet WeAreAlmaLinux tilingwm sri design gameoftrees GnuLinuxAudio freegan freeriding freetool backup trueLinuxPhone ngio rotonde freetube jumpdrive GNU speechrecognition eurovison skydroid thunderbird it sound alternativeto screenreader parler bison apps chat licensing fossasia inclusivedesign ethicalsoftware defectivebydesign berne metager digitalsustainability ZeroCool freedombone uber obsproject arti librecast softwareheritage pittsburgh profanity delta Tankklappe doomemacs imageeditor ffmpeg fossandcrafts GNOME40 telesoftware proprietary love notabug reboot opensourcegardens musique switchingsoftware hydrangeas OSM freesw agpl distribute magnifyingglass GNOME freeganizmniewybacza drive botlove duolingo freesoftare AlmaLinux GreenandBlackCross strafmaatschappij freetillie distributedledger mattermost principiadiscordia blue LinuxPhones filesystem rocket ghostscript win10 Zoom tibet ComputerFolklore fossaudio elemental flisoltenerife libreops appsec element platforms inclusive uxn librelabucm engineer softwareNotAsAService ptp chatty Matrix lucafail fontawesome informationwantstobefree softwareGripe nativeApp MatrixEffect culturalibre jitsi taintedlove flisol engineers dinosaurier wordpress SwitchToJami mongodb ux rsync libreoffice chatbot crossstitch dino RainbOSM plugin xwiki tecc openoffice container discordia softwaredesign redeslibres ledger sounddesign alternatives glimpse libregraphicsmeeting mycroftai iLoveFreeSoftware fossbro kiwi hydrasynth clap vterm domaindrivendesign multics cloudengineer chatsecure shaarli GamingOnLinux Subplot will GreenSoftware ggplot2 openEngiadina notallcars characterdesign sustainablewebdesign spacemacs literaryeditor hledger Eurasianism bluewall interop UpyclingOfSoftware ecodesign meditation matrixdotorg elementartOS libre composeui destroycarsociety coreboot libreelec simples adobe doommoments reboots kiwix graphicdesign linuxlibre bridges switch easteregg LiberaForms BinaryBlobs VBCC Buongiornissimo dmenu patents ansible opendesigncourse schildichat chatrooms impartially Spheremail blueangel fossback Software freesound fairemail doom TechnologiesOfHope rocketeer OrgSuperAgenda OrgQL soundengineer tutanota postdoom miro electriccars appimage uiuxdesign webapp windows10 virtualworlds applications uninstalluber removeuber uberislooting MatrixBridge computerchronicles GNOME41 ox GNUNameSystem facesofopensource autohotkey lcars support posteo editor tramp podman snapchat soundart sharepoint screenshot participatiewet ultraedit freedomofinstallation mediterranean fossdev freedomboxdev matrix4 MatrixResurrections willsmith ultrasound bikelove antartica freebritney AudioPlugins libresaas reverseengineer PravApp virtualworld deltarune soundandvision framasphere annotation HappyNewYear2022 Gartic suit writeas notalone artifact ohnotafeeling MERN easter openbenches olivevideoeditor smoke adverts joindiaspora TheFossbroParadox aphantasia freethought simplescreenrecorder outreach corebootbook blueorigin siliconvalley RobloxDev tuberculosis librewolf fossFinds pico8 vim artinpiration theDetailsMatter cars tinytools tinysoftware freemen dapps imageoptimization graphicnovels parties dinosaurs WindowsSecurity gxdoom gzdoom kubernetics graphicnovel googl unison nerds lovesexy Orgdown FreeTheAudience details freeDCam FedoraSilverblue blockchains screen freecollege college feditits screenplay TelegramFOSS novels softwareengineer quantuminformation libregames tomuchinformation songwriter screenplays freemarleneandmatej freespeach society bluetit blueksy hostiledesign opensourcefriday urbandesign Wortschatz Kicad wordpress501 saas terra terraluna civilsociety loveislove gnomesoftware AntonioMartinCarrillo DDRdesign foxglove configuration LiberaForm artimprovement carfree g8alternatives bluevelvet codesign informationmanagement notation loveletter gemdrive improv harddrive PeopleOverPlatforms ProtocolsOverPlatforms BatoceraLinux lawsociety freesydney - Sat, 11 Jun 2022 19:30:54 UT + Sat, 25 Jun 2022 09:46:04 UT food - shortage sitemap wasted define alsa òrain fishing cookieA porn weaselwords burgerking fruit vitamind cake veganism teamviewer FoodHardship vanilla pankow margarine zwartepiet panthera dessert foils salsa caviar utopie brot BellaSpielt cookery pietons Ôtepoti panther food cakecutting skillet teamgodzilla openfoodnetwork Vegan liquor SoilSovereignty milk bolognese recipe foodporn yeast drinking VendrediPeanutsNouka plate waffle pansexual biscuit glaze omelette veganismo morel filet pastry wine woke Caribbeans hamburger juice unauthorizedbread Amazfish Avocados management sourdough gedankenspiel cagefree words MauriceSchuhmann nuts gras toast broth batter foodie breadposting spiele zerowaste haggis ketchup carrots go-nuts damnfinecoffee divoc seasoning mayo nowords MastoEats soup arpanet SteamDeck pan voc imateapot Anglefish mayoverse potatoes mayonnaise vegan dish avocado spice keto bakery butterfly cooking teamhuman SailfishOS Trypanophobia AgentProvocatuer yogurt rok thecandycrystalrainbowcodex crumble PropaneSalute cider caffeine Kinipan butter mastokitchen cook rain pottery kurdish creepypasta wastemanagement kitchencounter mastocook cobbler steak pizza vocaloid crystal soda fedikitchen coffeebreak aroma oil Miroil kochbrothers flour foodsovereignty cream nutella pie cut cuisine potse meatismurder freerange tartar tea marinade cakes mushroom thekitchen govegan entree lfi dominospizza bread salad beans mush fresh syrup fermentation teamsky mushrooms cookie cookiebanners olivetti wordstoliveby curd soysauce lowcarb pudding plantbased tema beer organicfood fish grasslands panoptykon spanisch honeypot foodnotbombs foodwaste organic wholeGrain wheat pot TeamFerment timewaster Wypierdalaj sauerkraut stew weltspiegel chocolate paste soynuevo wok rainbow recipes kitchengarden expanse olive burger mrpotatohead candy lifesnacks Steam kitchen coffee foodshortage bagel batterylife OpTinfoil teams taste SpieleWinter2020 meat noodle raclette caramel rice eggs grill davewiner poutine demoteam lard croissant pasta vegane strawberry toomuchcaffeine morelmushroom foods coffeeaddict WaterDrinkers cheese oregano drink muffin bikekitchen krop LowRefresh kyotocandy foie onepiece sauce foodanddrink soy foodpics growyourfood vore mushtodon wholewheat pandemie cocoa sandwich bigoil mousse waste chili redfish baking knowledgemanagement graphicscardshortage ohno warmcookiesoftherevolution RussiaUkraineCrisis UkraineInvasion UkraineRussiaWar UkraineInEUNow Russia Ukraine Russian fahernistasters BlackPeopleInUkraine RussianUkrainianWar UkraineRussianWar FischerPrice smashwords bananas fortunecookie author theexpanse veggiespondance Butterbeer icecream banner johnoliver UkraineRefugees UkraineCrisis bake winemaking MuesliChallenge daydrinking finfisher migraine bagels chilis pastebin coffeeLife defiance openwords FoodJusticeFiles productmanagement FoodSharing Karrot waffles RussianFascism crystallang RobloxTerrain seasonalfood foodsovereigntynow RussianTankerTracker yiddish meatloaf fine beansComputing mushroomhunting Cooking veggiespondence projectmanagement grimgrains kristenstewart foodnotlawns Swedish copypasta FastTrain imagemanagement assetmanagement priceparity fruitBread pane burgers veggie tatasteel bananabread swedish biscuits drinks SylviaWitteman croissants seagrass fahernista fahernistas redwine coffeecup waffle130 teacup waffle131 waffle132 organics auth waffle133 Food Cookery pornhub pizzabox authentication tata kyoto + shortage sitemap wasted define alsa òrain fishing cookieA porn weaselwords burgerking fruit vitamind cake veganism teamviewer FoodHardship vanilla pankow margarine zwartepiet panthera dessert foils salsa caviar utopie brot BellaSpielt cookery pietons Ôtepoti panther food cakecutting skillet teamgodzilla openfoodnetwork Vegan liquor SoilSovereignty milk bolognese recipe foodporn yeast drinking VendrediPeanutsNouka plate waffle pansexual biscuit glaze omelette veganismo morel filet pastry wine woke Caribbeans hamburger juice unauthorizedbread Amazfish Avocados management sourdough gedankenspiel cagefree words MauriceSchuhmann nuts gras toast broth batter foodie breadposting spiele zerowaste haggis ketchup carrots go-nuts damnfinecoffee divoc seasoning mayo nowords MastoEats soup arpanet SteamDeck pan voc imateapot Anglefish mayoverse potatoes mayonnaise vegan dish avocado spice keto bakery butterfly cooking teamhuman SailfishOS Trypanophobia AgentProvocatuer yogurt rok thecandycrystalrainbowcodex crumble PropaneSalute cider caffeine Kinipan butter mastokitchen cook rain pottery kurdish creepypasta wastemanagement kitchencounter mastocook cobbler steak pizza vocaloid crystal soda fedikitchen coffeebreak aroma oil Miroil kochbrothers flour foodsovereignty cream nutella pie cut cuisine potse meatismurder freerange tartar tea marinade cakes mushroom thekitchen govegan entree lfi dominospizza bread salad beans mush fresh syrup fermentation teamsky mushrooms cookie cookiebanners olivetti wordstoliveby curd soysauce lowcarb pudding plantbased tema beer organicfood fish grasslands panoptykon spanisch honeypot foodnotbombs foodwaste organic wholeGrain wheat pot TeamFerment timewaster Wypierdalaj sauerkraut stew weltspiegel chocolate paste soynuevo wok rainbow recipes kitchengarden expanse olive burger mrpotatohead candy lifesnacks Steam kitchen coffee foodshortage bagel batterylife OpTinfoil teams taste SpieleWinter2020 meat noodle raclette caramel rice eggs grill davewiner poutine demoteam lard croissant pasta vegane strawberry toomuchcaffeine morelmushroom foods coffeeaddict WaterDrinkers cheese oregano drink muffin bikekitchen krop LowRefresh kyotocandy foie onepiece sauce foodanddrink soy foodpics growyourfood vore mushtodon wholewheat pandemie cocoa sandwich bigoil mousse waste chili redfish baking knowledgemanagement graphicscardshortage ohno warmcookiesoftherevolution RussiaUkraineCrisis UkraineInvasion UkraineRussiaWar UkraineInEUNow Russia Ukraine Russian fahernistasters BlackPeopleInUkraine RussianUkrainianWar UkraineRussianWar FischerPrice smashwords bananas fortunecookie author theexpanse veggiespondance Butterbeer icecream banner johnoliver UkraineRefugees UkraineCrisis bake winemaking MuesliChallenge daydrinking finfisher migraine bagels chilis pastebin coffeeLife defiance openwords FoodJusticeFiles productmanagement FoodSharing Karrot waffles RussianFascism crystallang RobloxTerrain seasonalfood foodsovereigntynow RussianTankerTracker yiddish meatloaf fine beansComputing mushroomhunting Cooking veggiespondence projectmanagement grimgrains kristenstewart foodnotlawns Swedish copypasta FastTrain imagemanagement assetmanagement priceparity fruitBread pane burgers veggie tatasteel bananabread swedish biscuits drinks SylviaWitteman croissants seagrass fahernista fahernistas redwine coffeecup waffle130 teacup waffle131 waffle132 organics auth waffle133 Food Cookery pornhub pizzabox authentication tata kyoto fines migrainestatus HomegrownFood growyourownfood growyourown ewaste BrainTourniquet - Sat, 11 Jun 2022 19:30:54 UT + Sat, 25 Jun 2022 09:46:04 UT security - attack endtoendencryption cracking pkexec polkit backgroundcheck endtoend nso keepassx passwordmanager keepassdroid trojan algorithmic securedrop databreach masssurveillance pentesting zuluCrypt encrypt letsencrypt messengers autos BrowserHistory FlexibilizaciónResponsable puntarellaparty autoritäreretatismus BlacksInCyber omemo autotomy saveanonymity alg onionrouting Installationsanleitung dataleak foodinsecurity password keepassxc partyline party cybersecuritynews pipewire Installation solarwinds bitwarden communityalgorithmictrust infosec gchq GemeinsamGegenDieTierindustrie mitm castor repairing IHaveSomethingToHide fotografie passwords gif IronySec anonym encryptioncan supplychainattacks UseAMaskUseTor anonymous cyberattack editors security tor comb e2e supplychain bruceschneier gigafactory vpn BlacksInCybersecurity ransomware wireapp toreador itsec dnssecmastery2e openssh factorio Reactorweg openssl backdoored spyware dorfleaks torx encryptionsts e2ee sequoia backdoor NSAmeansNationalScammingAgency stork conscientiousobjectors ed25519 torproject cryptomeanscryptography encryption 0day informationsecurity ssh misshaialert cybersec restore FileSecurity FormFactors autokorrektur giftofencryption CyberSecurity foodsecurity kansascity auto signalapp firejail anonymity endtoendcrypto automattic fotografía onionshare onion kontor autofahrer infosecbikini autocrypt malware switchtosignal 0days cloudsecurity RestoreOurEarth radiorepair algérie WebAuthn hexeditor nsogroup automotive distortions cryptographyisoverparty opsec InfoSec keepass encryptionists TastySecurity securitybyobscurity torsocks nsa autorenleben schneier protonvpn trustissues InsecurityByObscurity yubikey nitrokey encrypted 1password openpgp pgpainless tatort ghibli afraleaks castor9 deletesignal prismbreak gpgtools autodidactic gpg fotopiastory equatorial sequoiapgp cybersecurity Tor CryptoWars signal noscript redaktor vector trust backdoors Torge Torfverbrennung sasl emailsecurity cryptoparty pentest wire historia AllmendeKontor itsecurity websecurity foto pgp RobinHoodStore cryptomator signalmessenger openvpn CyberAttack datasecurity autorotate regulators anleitung leak drugstore encryptiost libresignal doctors securitynow storage tracking cypherpunk Briar teaparty canning ClientSideScanning odin securityaffairs sigint dnssec lockpicking datastorage algorithm adtracking openpgpca GPG energystorage TorForGood anonymously NieuweProfielfoto hiddenservice threatpost gift snowflake freiemessenger sybil aes espionage CodedMessage infosecurity administrator openkeychain IDontHaveAnythingToHide RealTryHackMe EncryptionSavesLives whonix SecurityNightmares issue exploit PenetrationTest snowflakes spoofing Log4Shell cryptography cryptowars firewall wireshark exploitation Shadowcrew moxiemarlinspike EncryptTheWeb OpSecReview partyLikeIts1199 autobots phishing weboftrust physicalsecurity AntitrustDay socialengineering emoji vectorart integrity PegasusProject sha256 sha512 vulnerability cloudstorage cybersecurityawarenessmonth proxychains securemessaging rootkit DCG201 LANtenna dataleaks ssl securityfail Encrochat demoparty hackIbeenpwned sandstorm moxie EncryptionDay globalencryptionday customemoji Goldbackdoor algorithmicart historians shark digitalsecurity sharks bigissue no2backdoors GnuPG hotwire tomato backgroundchecks trustnobody Conti + attack endtoendencryption cracking pkexec polkit backgroundcheck endtoend nso keepassx passwordmanager keepassdroid trojan algorithmic securedrop databreach masssurveillance pentesting zuluCrypt encrypt letsencrypt messengers autos BrowserHistory FlexibilizaciónResponsable puntarellaparty autoritäreretatismus BlacksInCyber omemo autotomy saveanonymity alg onionrouting Installationsanleitung dataleak foodinsecurity password keepassxc partyline party cybersecuritynews pipewire Installation solarwinds bitwarden communityalgorithmictrust infosec gchq GemeinsamGegenDieTierindustrie mitm castor repairing IHaveSomethingToHide fotografie passwords gif IronySec anonym encryptioncan supplychainattacks UseAMaskUseTor anonymous cyberattack editors security tor comb e2e supplychain bruceschneier gigafactory vpn BlacksInCybersecurity ransomware wireapp toreador itsec dnssecmastery2e openssh factorio Reactorweg openssl backdoored spyware dorfleaks torx encryptionsts e2ee sequoia backdoor NSAmeansNationalScammingAgency stork conscientiousobjectors ed25519 torproject cryptomeanscryptography encryption 0day informationsecurity ssh misshaialert cybersec restore FileSecurity FormFactors autokorrektur giftofencryption CyberSecurity foodsecurity kansascity auto signalapp firejail anonymity endtoendcrypto automattic fotografía onionshare onion kontor autofahrer infosecbikini autocrypt malware switchtosignal 0days cloudsecurity RestoreOurEarth radiorepair algérie WebAuthn hexeditor nsogroup automotive distortions cryptographyisoverparty opsec InfoSec keepass encryptionists TastySecurity securitybyobscurity torsocks nsa autorenleben schneier protonvpn trustissues InsecurityByObscurity yubikey nitrokey encrypted 1password openpgp pgpainless tatort ghibli afraleaks castor9 deletesignal prismbreak gpgtools autodidactic gpg fotopiastory equatorial sequoiapgp cybersecurity Tor CryptoWars signal noscript redaktor vector trust backdoors Torge Torfverbrennung sasl emailsecurity cryptoparty pentest wire historia AllmendeKontor itsecurity websecurity foto pgp RobinHoodStore cryptomator signalmessenger openvpn CyberAttack datasecurity autorotate regulators anleitung leak drugstore encryptiost libresignal doctors securitynow storage tracking cypherpunk Briar teaparty canning ClientSideScanning odin securityaffairs sigint dnssec lockpicking datastorage algorithm adtracking openpgpca GPG energystorage TorForGood anonymously NieuweProfielfoto hiddenservice threatpost gift snowflake freiemessenger sybil aes espionage CodedMessage infosecurity administrator openkeychain IDontHaveAnythingToHide RealTryHackMe EncryptionSavesLives whonix SecurityNightmares issue exploit PenetrationTest snowflakes spoofing Log4Shell cryptography cryptowars firewall wireshark exploitation Shadowcrew moxiemarlinspike EncryptTheWeb OpSecReview partyLikeIts1199 autobots phishing weboftrust physicalsecurity AntitrustDay socialengineering emoji vectorart integrity PegasusProject sha256 sha512 vulnerability cloudstorage cybersecurityawarenessmonth proxychains securemessaging rootkit DCG201 LANtenna dataleaks ssl securityfail Encrochat demoparty hackIbeenpwned sandstorm moxie EncryptionDay globalencryptionday customemoji Goldbackdoor algorithmicart historians shark digitalsecurity sharks bigissue no2backdoors GnuPG hotwire tomato backgroundchecks trustnobody Conti supplychainsecurity stingray mi5 - Sat, 11 Jun 2022 19:30:54 UT + Sat, 25 Jun 2022 09:46:04 UT transport - lelystadairport transontrains timetravel ryanair luggage Gütertransporte publictransport busses activetransport transportation train transport trains deutsch deutscheumwelthilfe airway journey motorway aviation deutschebahn travel ev prorail airport rail selfdrivingcar publictransportation Antonov biofuels electricvehicles travelvlog traveling viewFromTheTrain eurostar a14 roadtrip interrail escooter krail gas deutschrap deutschebank railFan vlog driving deutschlernen electric trainspotting devlog selfdrivingcars trainsnark midjourney hypetrain + lelystadairport transontrains timetravel ryanair luggage Gütertransporte publictransport busses activetransport transportation train transport trains deutsch deutscheumwelthilfe airway journey motorway aviation deutschebahn travel ev prorail airport rail selfdrivingcar publictransportation Antonov biofuels electricvehicles travelvlog traveling viewFromTheTrain eurostar a14 roadtrip interrail escooter krail gas deutschrap deutschebank railFan vlog driving deutschlernen electric trainspotting devlog selfdrivingcars trainsnark midjourney hypetrain trainday - Sat, 11 Jun 2022 19:30:54 UT + Sat, 25 Jun 2022 09:46:04 UT writing - maga personaljournals orgroam songwriting blogroll vicorvastorytime post readthedocs journalistiek storyline pronunciation blog framablog interactive amwriting authors writingprompt poem lime cutupmethod story pdf linkblog blogPages swap shortstory prompts magazine smallstories prompt blogging smallpoems sciencefiction responsetootherblogs writing proverbs quotes blogs teleprompters noblogo otf playwright hedgedoc FediWriters interactivestorytelling westernjournal AuthorsofSocialCoop Videopoetry quote olimex QuickSummary letterwriting icanhazpdf microblog bulletjournal storytelling goodreads journalist creativewriting horror wordplay writers limerick journals artjournaling zineswap zines shortstories journalists journal writingcommunity poetry 20thcenturypoetry logos amwritingfiction zettelkasten fountainpen stories logosbynick zinestation postUI newleafjournal writersblock wether whether microblogging shorts fountainpens plagiarism ShortStoryTime postman Fotojournalist scribus bloggers TrueJournalism GhostStories paper simswapping phrack writingtips writingtip horrorcomics folkhorror bulletjournaling scribe GratitudeJournaling postcard writingbiz fantomesZine rewriting blogger screenwriting reblog ibus notetaking roam papertag zdfmagazinroyal Radiopaper newblogpost horrorgames other typewriters thouposting cargobikeposting amwritingscifi truestory + maga personaljournals orgroam songwriting blogroll vicorvastorytime post readthedocs journalistiek storyline pronunciation blog framablog interactive amwriting authors writingprompt poem lime cutupmethod story pdf linkblog blogPages swap shortstory prompts magazine smallstories prompt blogging smallpoems sciencefiction responsetootherblogs writing proverbs quotes blogs teleprompters noblogo otf playwright hedgedoc FediWriters interactivestorytelling westernjournal AuthorsofSocialCoop Videopoetry quote olimex QuickSummary letterwriting icanhazpdf microblog bulletjournal storytelling goodreads journalist creativewriting horror wordplay writers limerick journals artjournaling zineswap zines shortstories journalists journal writingcommunity poetry 20thcenturypoetry logos amwritingfiction zettelkasten fountainpen stories logosbynick zinestation postUI newleafjournal writersblock wether whether microblogging shorts fountainpens plagiarism ShortStoryTime postman Fotojournalist scribus bloggers TrueJournalism GhostStories paper simswapping phrack writingtips writingtip horrorcomics folkhorror bulletjournaling scribe GratitudeJournaling postcard writingbiz fantomesZine rewriting blogger screenwriting reblog ibus notetaking roam papertag zdfmagazinroyal Radiopaper newblogpost horrorgames other typewriters thouposting cargobikeposting amwritingscifi truestory blogdown writinglife TrueStories LjWrites - Sat, 11 Jun 2022 19:30:54 UT + Sat, 25 Jun 2022 09:46:04 UT gafam - facebookfiles GoogleAntiTrust googleforms RingDoorBell TeamBringBackVisibleScrollbars facebookpapers goodbyeApple TheSocialEmpire twitterad TheCorporateWeb GoogleDocs googledrive webring FacebookDelandaEst googleplaystore boycottchina FuckOffMark markzuckerberg Bluesky Twitter dystopian twitterdown zuckerberg caringissharing ads apple youtuberegrets antitrust SpringerEnteignen peoplefarming deletewhatsapp advertisingandmarketing chromevox GoogleDown aws AppleSearch Floc bankruptBezos googlesearch googleio youtube Goggle twitterkurds banadvertising chromebook fuckfacebook headset arcgis ffs FacebookEvents AmazonMeansCops facebook 100heads 20thcenturyadvertising amazon googlevoracle amazonprimeday dystopia microsoftgithub farcebook myco boycottinstagram FlocOff stopgafam genoegisgenoeg legislation amazonprime deletewhatsappday amazonring Gafam googleplus soldering GoogleForms weirdyoutuberecomendations HaringeyAnti delete lobbyregister degooglisation florespondance linkedin siri Apple Facebook LeiharbeitAbschaffen PoweringProgress advertising monopolies googleanalytics ausländerzentralregister adtech fuckgoogle storing plottertwitter failbook kadse microsoft deletechrome alanturing poledance HeadscarfBan twitter skype azure chrome logistics googledoodles hildebrandt twitterblue corporateGiant Tracking uitkeringen FlocOffGoogle sidewalk plot zuck nogafam youtubedl degoogled Google youtubers google Microsoft stemverklaring walledgarden GAFCAM GooglevsOracle dotcoms deleteyoutube datafarms Instagram walledgardens agistri appleevent offseting Hypnagogist appleii facebookoversightboard fascistbook FuckGoogle degoogle boringdystopia fuschia ohneamazon appleiie deleteinstagram ungoogled ring stopgoogle affordances googledown decentring YouTube gafam oracle killedbygoogle fuckoffgoogle deletefacebook fakebook GoogleIsBad fuckoffgoogleandco office365 lordoftherings turingpi amazonas instagram TrackingFreeAds FlocBloc playstore bigtech boycottamazon amazonien whatsapp mytwitteranniversary deleteamazon bluesky Amazon s3 birdsite boring weird theSiliconValleyModel TwitterTop100 targetedads MikeBreaksUpWithApple boycott AppleToo Tilvidsfirstyoutubelater aiweirdness TILvidsnowYouTubemaybe medtwitter twitterstorians dotcom inspiring datafarming Tech4Bad chromebooks chromeos chromecast plotter hearingaids facebookads makeamazonpay GoogleOP1 anniversary FuckYouGoogle weirdshit BringSundiataHome SilosSuck samenzweringstheorie TILvidsnowYouTubelater moregoogleblech googleless deletegoogle YouTubeUnblockWION BoycotGoogle boycottgoogle labplot GoogleImage stringer manufacturing googleplay facebookdown nowhatsapp pouring monopoly microsoftaccess DeleteFacebook AmazonLaborUnion offset webSearch amazonwtf applewatch ElonMuskTwitter AppleEvent WebAds NextSense outlook eldenring Musk ElonMuskBuyTwitter TwitterSold dktwitter advertisers seti Labor artistsofftwitter mastering GoringIsBoring triggering PineappleTime access turin WeAreHiring accessability currentdystopia fuckapple webfiltering douchebags douchebag wandering accessibilty dungeoneering accessibledesign BringBackTootApp peering fuckoff + facebookfiles GoogleAntiTrust googleforms RingDoorBell TeamBringBackVisibleScrollbars facebookpapers goodbyeApple TheSocialEmpire twitterad TheCorporateWeb GoogleDocs googledrive webring FacebookDelandaEst googleplaystore boycottchina FuckOffMark markzuckerberg Bluesky Twitter dystopian twitterdown zuckerberg caringissharing ads apple youtuberegrets antitrust SpringerEnteignen peoplefarming deletewhatsapp advertisingandmarketing chromevox GoogleDown aws AppleSearch Floc bankruptBezos googlesearch googleio youtube Goggle twitterkurds banadvertising chromebook fuckfacebook headset arcgis ffs FacebookEvents AmazonMeansCops facebook 100heads 20thcenturyadvertising amazon googlevoracle amazonprimeday dystopia microsoftgithub farcebook myco boycottinstagram FlocOff stopgafam genoegisgenoeg legislation amazonprime deletewhatsappday amazonring Gafam googleplus soldering GoogleForms weirdyoutuberecomendations HaringeyAnti delete lobbyregister degooglisation florespondance linkedin siri Apple Facebook LeiharbeitAbschaffen PoweringProgress advertising monopolies googleanalytics ausländerzentralregister adtech fuckgoogle storing plottertwitter failbook kadse microsoft deletechrome alanturing poledance HeadscarfBan twitter skype azure chrome logistics googledoodles hildebrandt twitterblue corporateGiant Tracking uitkeringen FlocOffGoogle sidewalk plot zuck nogafam youtubedl degoogled Google youtubers google Microsoft stemverklaring walledgarden GAFCAM GooglevsOracle dotcoms deleteyoutube datafarms Instagram walledgardens agistri appleevent offseting Hypnagogist appleii facebookoversightboard fascistbook FuckGoogle degoogle boringdystopia fuschia ohneamazon appleiie deleteinstagram ungoogled ring stopgoogle affordances googledown decentring YouTube gafam oracle killedbygoogle fuckoffgoogle deletefacebook fakebook GoogleIsBad fuckoffgoogleandco office365 lordoftherings turingpi amazonas instagram TrackingFreeAds FlocBloc playstore bigtech boycottamazon amazonien whatsapp mytwitteranniversary deleteamazon bluesky Amazon s3 birdsite boring weird theSiliconValleyModel TwitterTop100 targetedads MikeBreaksUpWithApple boycott AppleToo Tilvidsfirstyoutubelater aiweirdness TILvidsnowYouTubemaybe medtwitter twitterstorians dotcom inspiring datafarming Tech4Bad chromebooks chromeos chromecast plotter hearingaids facebookads makeamazonpay GoogleOP1 anniversary FuckYouGoogle weirdshit BringSundiataHome SilosSuck samenzweringstheorie TILvidsnowYouTubelater moregoogleblech googleless deletegoogle YouTubeUnblockWION BoycotGoogle boycottgoogle labplot GoogleImage stringer manufacturing googleplay facebookdown nowhatsapp pouring monopoly microsoftaccess DeleteFacebook AmazonLaborUnion offset webSearch amazonwtf applewatch ElonMuskTwitter AppleEvent WebAds NextSense outlook eldenring Musk ElonMuskBuyTwitter TwitterSold dktwitter advertisers seti Labor artistsofftwitter mastering GoringIsBoring triggering PineappleTime access turin WeAreHiring accessability currentdystopia fuckapple webfiltering douchebags douchebag wandering accessibilty dungeoneering accessibledesign BringBackTootApp peering fuckoff deleteadobe lean copilot TwitterNotes - Sat, 11 Jun 2022 19:30:54 UT + Sat, 25 Jun 2022 09:46:04 UT employment - gigwork fuckwork migrant MontanaFarmersUnion framed SocialNetworks justworked futureofwork InterviewQuestions jechercheunjob mywork remote employees hiring TheNetwork workingfromhome ProgrammingJob reproductivework frame workinprogress bullshitjobs workplace DigitalNetwork antiwork workshops kreaturworks workers worklog sexworkers remotejob remotework remotejobs migrantworkers job culturalworkers DjangoJob teamwork framework hire KDEGear careers hirefedi career SocialNotworks workshop illustratorforhire tidyworkshops carework AtlasNetwork nowhiring KDE remoteaccess rds KDEGear21 workersrights obsolescence records work hertfordshire flossjobs jobs workflow precariousworkers sexworker theworkshop employee overwork sabbat 11pmrecords recruiters UnemploymentInsurance IamEngineer lancashire justworks workmoan trainee cheshire sexworkerrights freelance flow horizontalNetwork vacation patchworkfamilie CharityJob workout sabbatical patchwork illustrator workerownership hampshire AdNetworks prosexwork wfh EUjobs AntiRaidsNetwork MightyNetworks DataNetworkSecurity Shireen careerchange fedijobs ShireenAbuAkleh techworkers emote worker AbuAkleh illustrators EUcareer sexwork Perthshire employment farmworkers + gigwork fuckwork migrant MontanaFarmersUnion framed SocialNetworks justworked futureofwork InterviewQuestions jechercheunjob mywork remote employees hiring TheNetwork workingfromhome ProgrammingJob reproductivework frame workinprogress bullshitjobs workplace DigitalNetwork antiwork workshops kreaturworks workers worklog sexworkers remotejob remotework remotejobs migrantworkers job culturalworkers DjangoJob teamwork framework hire KDEGear careers hirefedi career SocialNotworks workshop illustratorforhire tidyworkshops carework AtlasNetwork nowhiring KDE remoteaccess rds KDEGear21 workersrights obsolescence records work hertfordshire flossjobs jobs workflow precariousworkers sexworker theworkshop employee overwork sabbat 11pmrecords recruiters UnemploymentInsurance IamEngineer lancashire justworks workmoan trainee cheshire sexworkerrights freelance flow horizontalNetwork vacation patchworkfamilie CharityJob workout sabbatical patchwork illustrator workerownership hampshire AdNetworks prosexwork wfh EUjobs AntiRaidsNetwork MightyNetworks DataNetworkSecurity Shireen careerchange fedijobs ShireenAbuAkleh techworkers emote worker AbuAkleh illustrators EUcareer sexwork Perthshire employment farmworkers horizon EmploymentLawInstitute - Sat, 11 Jun 2022 19:30:54 UT + Sat, 25 Jun 2022 09:46:04 UT activitypub - lastboost fediversefirst mastoadmins fedicamp KommInsFediverseJan mastoween zappa asqfedi fedihired pixel6pro komminsfediversetaz Paratooting collaboration_space Fedifollower gamemaster subtooting instance signalboost FediverseGuide followerpower FederatedSocialMedia mastodevs kazarma activitypub activertypub FediTips tootfic askthefedi fedivision pleroma losttoot Rss2Fedi PeerTube CreativeToots gofed getfedihired collaborate pixelfedlabs hometown homelab RedactionWeb fediblock fediverso lazyfedi happyfedi2u federation Invite2Fedi instances fedilab bandsofmastodon Wallabag blocks pixiv mastotips TheFediverseChallenge sammelabschiebung toot fedilabfeature mastodev fediversetv pixel Ktistec mastodontips catsofthefediverse misskeydev mastotip pixel3a wallaby MastoDev friendica mastodontip talesfromthefediverse mastofficina fleamarket ap_c2s hiveway bands mastodonart mast Moneylab Mosstodon Adblocker fedionly DeveloperExperience askthefediverse misskey collaboraoffice activitypub_conf plsboost BlackFedi joinmastodon AskPixelfed siskin socialhub followers fediart blocking fedifreebies Metatext FediBlock SocialMediaReimagined fediverse13 mondkapjesplicht Pixelfed contentwarnings pixelfed labournettv fediverseplaysjackbox mapeocolaborativo fedihive greeninstances fedidb block FediMemories mastectomy Feditip devs fediverseparty collabathon Dev Fediseminar onlyfedi admin socialcg teamtoot masterton fedbox FediMeta sponsorblock SocialNetworkingReimagined tusky retoot contentwarning peertubers imagedescription joinpeertube anastasia feditips tootcat dnsssecmastery2e fedizens alimonda Mastodon following epicyon afediversechat andstatus peertubeadmin leylableibt fediversefleamarket mastomagic YearOfTheFediverse dearMastomind thatsthetoot mastodob fediadmin pleaseboost mastodonhost mond pixeldev pixelfont timeline socialmedia wedistribute fedivisionCollab fosstodon instanceblock freetoot mastodonmonday fedihelp fediWhen fedicat asta collaborative isolategab greenmastodon FediverseFixesThis fedireads pixeldroid networkTimeline PeertubeMastodonHost boost AskFediverse Bookwyrm federated socialhome greenfediverse WriteFreely fédiverse microblocks collabora fedivers MastodonMondays fediverse imagedescriptions gbadev lemmy Fedilab bunsenlabs mastoadmin smithereen hackerstown uadblock c2s FediverseFutures latenighttoots mastodon pcmasterrace developingcountries boostswelcome PixelfedDev fedi fediversefriday mondkapje fediplay activity widevine socialcoop peertube fieldlabs mastomind lab fediversepower BlackMastadon fedeproxy boosten tootorial boostwelcome lazyfediverse mastoaiuto mobilizon Fediverse13 gemifedi activityPubRocks newprofilepic fediversehistory justfedithings fedibird Ecko adminarchy fedinews SocialMedia eastanglia onhere boosts dearfediverse mastojobs serendipitoot followstrategies adblocking follow mondragón bonfire activitystreams Forgefriend Fedivangelism fediversetown pixelPrinciples zap spritely SocialMediaAnxiety Radio commonspub colab freeradical blocklist Fediverse honk pixel4a FediverseWiki FediverseFoundation Ecolabel Mstdn boosterprik ambiguoustoots thefederation blocked bath JoinTheFediverse JoinFediverse JoinFediverseWiki PixelTips PixelFedTips gotosocial Fedi4Fedi WebOfAgency ReimagineSocialNetworking HabitableWeb toots NewFedilab FediverseRising2022 boostsappreciated desmond peertubes ElectricShipping Misskey fediversary dbadmin Peopleverse subtoot pixel6 tootapp numi mondkapjesdeal fedijam masters jackbox TootCat socialfabric MastoRadio fediask PeerTubeTips FediverseProverbs warnings newtomastodon askmastadon ping diamonds adev typing pinga Fediverb feierabendtoot MetaModeration subtooting_myself fantasticfedi IdeationHub Allblock instablock FediTargets artistsofmastodon canasta masterarbeit Fedichorus fediverseFilmFestival admins self MastodonNewbie feditip OpenEngiadiana welcomeToFedi vite toottoot Webmaster FediTip JoinTheFediverseGreta ShineOnYouCrazyDiamond AllAcrossTheFediverse fediverseinfo fediverseDirectory fedi22 fediquette fedinew Film AskFedi PositiveSubtoot freebies tippingpoint FediRecs Blacktoothed fediadmins AwkwardCropping selfawerness fedivison fediverse14 vangelis MastoPrompt damselfly pixelfedMobile selfnet pixelfedembed BabkaSocial activitysub MastodonApp localtimeline pixelfedLive alfa selfpromote Moderation fedibrain MastoTips Peertube FediQuestion FediHire MrMastodonFarm FediTheme + lastboost fediversefirst mastoadmins fedicamp KommInsFediverseJan mastoween zappa asqfedi fedihired pixel6pro komminsfediversetaz Paratooting collaboration_space Fedifollower gamemaster subtooting instance signalboost FediverseGuide followerpower FederatedSocialMedia mastodevs kazarma activitypub activertypub FediTips tootfic askthefedi fedivision pleroma losttoot Rss2Fedi PeerTube CreativeToots gofed getfedihired collaborate pixelfedlabs hometown homelab RedactionWeb fediblock fediverso lazyfedi happyfedi2u federation Invite2Fedi instances fedilab bandsofmastodon Wallabag blocks pixiv mastotips TheFediverseChallenge sammelabschiebung toot fedilabfeature mastodev fediversetv pixel Ktistec mastodontips catsofthefediverse misskeydev mastotip pixel3a wallaby MastoDev friendica mastodontip talesfromthefediverse mastofficina fleamarket ap_c2s hiveway bands mastodonart mast Moneylab Mosstodon Adblocker fedionly DeveloperExperience askthefediverse misskey collaboraoffice activitypub_conf plsboost BlackFedi joinmastodon AskPixelfed siskin socialhub followers fediart blocking fedifreebies Metatext FediBlock SocialMediaReimagined fediverse13 mondkapjesplicht Pixelfed contentwarnings pixelfed labournettv fediverseplaysjackbox mapeocolaborativo fedihive greeninstances fedidb block FediMemories mastectomy Feditip devs fediverseparty collabathon Dev Fediseminar onlyfedi admin socialcg teamtoot masterton fedbox FediMeta sponsorblock SocialNetworkingReimagined tusky retoot contentwarning peertubers imagedescription joinpeertube anastasia feditips tootcat dnsssecmastery2e fedizens alimonda Mastodon following epicyon afediversechat andstatus peertubeadmin leylableibt fediversefleamarket mastomagic YearOfTheFediverse dearMastomind thatsthetoot mastodob fediadmin pleaseboost mastodonhost mond pixeldev pixelfont timeline socialmedia wedistribute fedivisionCollab fosstodon instanceblock freetoot mastodonmonday fedihelp fediWhen fedicat asta collaborative isolategab greenmastodon FediverseFixesThis fedireads pixeldroid networkTimeline PeertubeMastodonHost boost AskFediverse Bookwyrm federated socialhome greenfediverse WriteFreely fédiverse microblocks collabora fedivers MastodonMondays fediverse imagedescriptions gbadev lemmy Fedilab bunsenlabs mastoadmin smithereen hackerstown uadblock c2s FediverseFutures latenighttoots mastodon pcmasterrace developingcountries boostswelcome PixelfedDev fedi fediversefriday mondkapje fediplay activity widevine socialcoop peertube fieldlabs mastomind lab fediversepower BlackMastadon fedeproxy boosten tootorial boostwelcome lazyfediverse mastoaiuto mobilizon Fediverse13 gemifedi activityPubRocks newprofilepic fediversehistory justfedithings fedibird Ecko adminarchy fedinews SocialMedia eastanglia onhere boosts dearfediverse mastojobs serendipitoot followstrategies adblocking follow mondragón bonfire activitystreams Forgefriend Fedivangelism fediversetown pixelPrinciples zap spritely SocialMediaAnxiety Radio commonspub colab freeradical blocklist Fediverse honk pixel4a FediverseWiki FediverseFoundation Ecolabel Mstdn boosterprik ambiguoustoots thefederation blocked bath JoinTheFediverse JoinFediverse JoinFediverseWiki PixelTips PixelFedTips gotosocial Fedi4Fedi WebOfAgency ReimagineSocialNetworking HabitableWeb toots NewFedilab FediverseRising2022 boostsappreciated desmond peertubes ElectricShipping Misskey fediversary dbadmin Peopleverse subtoot pixel6 tootapp numi mondkapjesdeal fedijam masters jackbox TootCat socialfabric MastoRadio fediask PeerTubeTips FediverseProverbs warnings newtomastodon askmastadon ping diamonds adev typing pinga Fediverb feierabendtoot MetaModeration subtooting_myself fantasticfedi IdeationHub Allblock instablock FediTargets artistsofmastodon canasta masterarbeit Fedichorus fediverseFilmFestival admins self MastodonNewbie feditip OpenEngiadiana welcomeToFedi vite toottoot Webmaster FediTip JoinTheFediverseGreta ShineOnYouCrazyDiamond AllAcrossTheFediverse fediverseinfo fediverseDirectory fedi22 fediquette fedinew Film AskFedi PositiveSubtoot freebies tippingpoint FediRecs Blacktoothed fediadmins AwkwardCropping selfawerness fedivison fediverse14 vangelis MastoPrompt damselfly pixelfedMobile selfnet pixelfedembed BabkaSocial activitysub MastodonApp localtimeline pixelfedLive alfa selfpromote Moderation fedibrain MastoTips Peertube FediQuestion FediHire MrMastodonFarm FediTheme peertubefirstyoutubelater instafollow oktoboost - Sat, 11 Jun 2022 19:30:54 UT + Sat, 25 Jun 2022 09:46:04 UT bots - humantrafficking humanScale mantra posthumanism mrrobot human dehumanification Militanzverbot nobot botanists humanity militanzverbot Sabot44 humanrobotinteraction therobots humanetechnow verbote humankind humans humanRights humanitarian scaleistheenemyofhumanity disposablehumanity crimesagainsthumanity humanAlgorithm + humantrafficking humanScale mantra posthumanism mrrobot human dehumanification Militanzverbot nobot botanists humanity militanzverbot Sabot44 humanrobotinteraction therobots humanetechnow verbote humankind humans humanRights humanitarian scaleistheenemyofhumanity disposablehumanity crimesagainsthumanity humanAlgorithm humanityisweird - Sat, 11 Jun 2022 19:30:54 UT + Sat, 25 Jun 2022 09:46:04 UT privacy - privacyisahumanright RegainPrivacy policykit privacyrespecting privacyday toolkit righttoprivacy privacyplease appleprivacyletter state whatip auditableprivacy appleprivacy PrivacyBook SearchHistory privacyaware dataprivacyday profiling what3words surveillancestate Privacy datenschutz privacypolicy WhatsApp privacyrights privacytoolsio privacyshield makeprivacystick privacyweek surveillancetech onlineprivacy developertools WhatMakesMeReallyAngry privacyredirect Liberanet LiberanetChat drugpolicy privacymatters policy privacyMatters whatsappprivacypolicy dataprivacy privacywashing fight4privacy privacy privacyinternational whowhatwere hat NoToWhatsApp DataPrivacyDay2020 investinprivacy PrivacyFlaw statePropaganda nl privacytools WhatsappPrivacy tool policymaking xdotool justdeleteme familyDocuments audit national FutureOfPrivacy databroker landesdatenschutzbeauftragte auditable databrokers FifthEstate PrivacyCamp nostate transnational digitalprivacyofcorrespondence ReinstateLara gtoolkit UntrackMe + privacyisahumanright RegainPrivacy policykit privacyrespecting privacyday toolkit righttoprivacy privacyplease appleprivacyletter state whatip auditableprivacy appleprivacy PrivacyBook SearchHistory privacyaware dataprivacyday profiling what3words surveillancestate Privacy datenschutz privacypolicy WhatsApp privacyrights privacytoolsio privacyshield makeprivacystick privacyweek surveillancetech onlineprivacy developertools WhatMakesMeReallyAngry privacyredirect Liberanet LiberanetChat drugpolicy privacymatters policy privacyMatters whatsappprivacypolicy dataprivacy privacywashing fight4privacy privacy privacyinternational whowhatwere hat NoToWhatsApp DataPrivacyDay2020 investinprivacy PrivacyFlaw statePropaganda nl privacytools WhatsappPrivacy tool policymaking xdotool justdeleteme familyDocuments audit national FutureOfPrivacy databroker landesdatenschutzbeauftragte auditable databrokers FifthEstate PrivacyCamp nostate transnational digitalprivacyofcorrespondence ReinstateLara gtoolkit UntrackMe IPACT - Sat, 11 Jun 2022 19:30:54 UT + Sat, 25 Jun 2022 09:46:04 UT programming - powershell HungaTongaHungaHaapi microcode greencoding compsci encoding nodevember2021 nodevember CriticalDigitalInfrastructure analoguecomputers macos mach AutokorrekturFakten machomebrew riversintheair githubdown ender zorginfarct asynchronous monodevelop zinc dada geometrynodes scripts autonomous Docker rust2024 lara brainfuck drama term devops webassembly Easer psychotherapie cpp digitalpreservation programming css maui rubyonrails objects Python system digitaldivide digitalisierung FrancisBacon2020 dracut gitea orgmode mixers webdev proofing developerexperience seguridaddigital gui release ada schutzstreifen pypi crust codeforge workaround proofofwork zorg node websocket proofofstake ecosystem rustlang systemwandel DigitalTech python2 ocaml NapierBarracks program ngiforum21 DigitalSouveräneSchule request_reaction sqlite guile capitolhillautonomouszone transcript nim warsawhackerspace uptronics algorithmicharm hypocritcal profiles digitalsketch DeutschlandDigitalSicherBSI typescript forums vscode aapihm gitsyncmurder musicforhackers publiccode ocr computerscience hackers guidelines vieprivée Digitalzwangmelder laravel vala adventofcode cgit solidarność DigitalPayments beginnersguide CommonJS webdev101 scripting coding warn mauikit digitalesouveränität DevelopmentBlog ohShitGit digitalzwang meld git org QR_code proof sourcehut ui nocode solid nodejs systemchange trevornoah tailwindcss terminalporn Wassersouveränität guix libertàdigitali js_of_ocaml raku fedidev c script freenode-services sourcecode audiodescription publiekecode framaforms WendyLPatrick DigitalAutonomy grep django gmic zim sackthelot amada gitportal Acode gitlab crusty decoder bulldada readability parrot relevance_P1Y mnt digitalartwork Verkada react dogfooding webdevelopment kingparrot Leiharbeit programmer trunk java haskell CodedBias codelyoko workstation guixhome Tarifvertrag capitolhill Auto desperatehousehackers esm penguin unicode development gittutors programminglanguage gerrit db frgmntscnr Fagradalsfjall dev github freecodecamp openrc tuskydev threema recoverourdigitalspace html5 algorithms PythonJob lisp digitaldefenders codeberg souveränität forge ursulaleguin pleaseshare rustprogramming EspacioDigital HirsuteHippo resnetting frontenddevelopment animatedgif fourtwenty rails rakudev adaptation programme developers bug fortran libraries drivers animation printingsystems freecode forgefed javascript fragment cpm code elisp JardínOpenSource commands patterns eq ECMAScriptModules html codeofconduct vintagecomputers ConstructiveAmbiguity rakulang portal terminal c99 SemillasOpenSource rust programminghumor lowcode request AreWeTheBorg spiritbomb r FOSSlight bugbounty dramasystem go forges digitalaudioworkstation esbuild federadas commonlisp golang clojurescript nodemcu vintage ruby releaseday rustc contractpatch rubylang deceptionpatterns mugorg debugging makejavascriptoptional nodefwd obsolescence_programmée computers developer darkpatterns racket sourceforge forum ksh digitalprivacy bugreport mercurial aapi adafruit openappecosystem python fontforge webdeveloper indiedev ocrodjvu sh digitalGardens api assembler kabelfernsehen OpenSource Scheibenwischer forth programminglanguages LantermanSessions dependencies edge machineGenerated esolang qrcode regexp hackerspace codebrown redesign postgresql emscripten ForgeFriends deepadaptation solidground digitalsobriety proofreader featurerequest gits forgefriends Payment Godot4 Blender libadwaita vintagetoy iode frontends Slight digitalaudio ThisIsWhatAutonomyLooksLike programmer_humour pullrequest gittips frontend rivers automerge IssueTriage elixir conscript proofofconcept WebDivelopment asyncio cheatsheet vineScript conlang socialcoding qt gamedevelopment functionalprogramming secretcode CodeZwart Development darkpattern driver reactos icalender picolisp clojure ForgeFlux riversedge FrustumOfFrustration debug solodev indiedeveloper smalltalk graphql genode svelte AgileDevelopment Boot2Gecko PowerAutomate claricelispector async VScode printing CBDM qcoder qualcoder Blog TaskQueue reactie softwaredevelopment mainline DroneCI WoodpeckerCI continuousintegration Devs dbforge softwaredev linode segfault contra creativecoding developersWanted fullstackdeveloper reader Unicode4Life suckless LibResilient virtualmachine productdevelopment magit contrachrome UXDesigners programmerhumor introToUxn GitlabCE opendataportal cprogramming decode encode urldecode urlencode kerbalspaceprogram rssreader wezterm EcosystemRestoration experience postgres subscription DriversCoop nodered chemtrails deception DevelopmentUpdate qbasic valgrind handcoding YAML rabbitmq endlessloop ethicalhackers htmlmail TrustedIntents humanalgorithms codeorange operatingsystems developmentcooperation programmingisfun programmingjokes codingjokes programmings miriverse UXDesigner carolarackete coders developing Threadreader vintagecomputer reactathon chemtrail koreader ebookreader aiscript functional myelixirstatus linuxcommands vintagecamera waybackmachine CodeTheCity computersecurity CommunityDevelopment designsystems trails montypython codeHelp xterm mlterm jonesforth devsecops userexperience NodeKit contractor longtermism LogView apdebug + powershell HungaTongaHungaHaapi microcode greencoding compsci encoding nodevember2021 nodevember CriticalDigitalInfrastructure analoguecomputers macos mach AutokorrekturFakten machomebrew riversintheair githubdown ender zorginfarct asynchronous monodevelop zinc dada geometrynodes scripts autonomous Docker rust2024 lara brainfuck drama term devops webassembly ml Easer psychotherapie cpp digitalpreservation programming css maui rubyonrails objects Python system digitaldivide digitalisierung FrancisBacon2020 dracut gitea orgmode mixers webdev proofing developerexperience seguridaddigital gui release ada schutzstreifen pypi crust codeforge workaround proofofwork zorg node websocket proofofstake ecosystem rustlang systemwandel DigitalTech python2 ocaml NapierBarracks program ngiforum21 DigitalSouveräneSchule request_reaction sqlite guile capitolhillautonomouszone transcript nim warsawhackerspace uptronics algorithmicharm hypocritcal profiles digitalsketch DeutschlandDigitalSicherBSI typescript forums vscode aapihm gitsyncmurder musicforhackers publiccode ocr computerscience hackers guidelines vieprivée Digitalzwangmelder laravel vala adventofcode cgit solidarność DigitalPayments beginnersguide CommonJS webdev101 scripting coding warn mauikit digitalesouveränität DevelopmentBlog ohShitGit digitalzwang meld git org QR_code proof sourcehut ui nocode solid nodejs systemchange trevornoah tailwindcss terminalporn Wassersouveränität guix libertàdigitali js_of_ocaml raku fedidev c script freenode-services sourcecode audiodescription publiekecode framaforms WendyLPatrick DigitalAutonomy grep django gmic zim sackthelot amada gitportal Acode gitlab crusty decoder bulldada readability parrot relevance_P1Y mnt digitalartwork Verkada react dogfooding webdevelopment kingparrot Leiharbeit programmer trunk java haskell CodedBias codelyoko workstation guixhome Tarifvertrag capitolhill Auto desperatehousehackers esm penguin unicode development gittutors programminglanguage gerrit db frgmntscnr Fagradalsfjall dev github freecodecamp openrc tuskydev threema recoverourdigitalspace html5 algorithms PythonJob lisp digitaldefenders codeberg souveränität forge ursulaleguin pleaseshare rustprogramming EspacioDigital HirsuteHippo resnetting frontenddevelopment animatedgif fourtwenty rails rakudev adaptation programme developers bug fortran libraries drivers animation printingsystems freecode forgefed javascript fragment cpm code elisp JardínOpenSource commands patterns eq ECMAScriptModules html codeofconduct vintagecomputers ConstructiveAmbiguity rakulang portal terminal c99 SemillasOpenSource rust programminghumor lowcode request AreWeTheBorg spiritbomb r FOSSlight bugbounty dramasystem go forges digitalaudioworkstation esbuild federadas commonlisp golang clojurescript nodemcu vintage ruby releaseday rustc contractpatch rubylang deceptionpatterns mugorg debugging makejavascriptoptional nodefwd obsolescence_programmée computers developer darkpatterns racket sourceforge forum ksh digitalprivacy bugreport mercurial aapi adafruit openappecosystem python fontforge webdeveloper indiedev ocrodjvu sh digitalGardens api assembler kabelfernsehen OpenSource Scheibenwischer forth programminglanguages LantermanSessions dependencies edge machineGenerated esolang qrcode regexp hackerspace codebrown redesign postgresql emscripten ForgeFriends deepadaptation solidground digitalsobriety proofreader featurerequest gits forgefriends Payment Godot4 Blender libadwaita vintagetoy iode frontends Slight digitalaudio ThisIsWhatAutonomyLooksLike programmer_humour pullrequest gittips frontend rivers automerge IssueTriage elixir conscript proofofconcept WebDivelopment asyncio cheatsheet vineScript conlang socialcoding qt gamedevelopment functionalprogramming secretcode CodeZwart Development darkpattern driver reactos icalender picolisp clojure ForgeFlux riversedge FrustumOfFrustration debug solodev indiedeveloper smalltalk graphql genode svelte AgileDevelopment Boot2Gecko PowerAutomate claricelispector async VScode printing CBDM qcoder qualcoder Blog TaskQueue reactie softwaredevelopment mainline DroneCI WoodpeckerCI continuousintegration Devs dbforge softwaredev linode segfault contra creativecoding developersWanted fullstackdeveloper reader Unicode4Life suckless LibResilient virtualmachine productdevelopment magit contrachrome UXDesigners programmerhumor introToUxn GitlabCE opendataportal cprogramming decode encode urldecode urlencode kerbalspaceprogram rssreader wezterm EcosystemRestoration experience postgres subscription DriversCoop nodered chemtrails deception DevelopmentUpdate qbasic valgrind handcoding YAML rabbitmq endlessloop ethicalhackers htmlmail TrustedIntents humanalgorithms codeorange operatingsystems developmentcooperation programmingisfun programmingjokes codingjokes programmings miriverse UXDesigner carolarackete coders developing Threadreader vintagecomputer reactathon chemtrail koreader ebookreader aiscript functional myelixirstatus linuxcommands vintagecamera waybackmachine CodeTheCity computersecurity CommunityDevelopment designsystems trails montypython codeHelp xterm mlterm jonesforth devsecops userexperience NodeKit contractor longtermism LogView apdebug codinglife communitydevelopment CustomerDevelopment parrots maintainership - Sat, 11 Jun 2022 19:30:54 UT + Sat, 25 Jun 2022 09:46:04 UT france OmicronBA2 macron Macronavirus cron omnicron DumpMacron anacron - Sat, 11 Jun 2022 19:30:54 UT + Sat, 25 Jun 2022 09:46:04 UT science - AcapellaScience deep openscience eResearch sickMathSkills System76 sciencematters pseudoscience mecha daydreaming cellbiology science engineering math politicalgeography epidemiology stemfie OpenScienceUN TranslateScience electrochemistry ethnology womeninstem archeology botany STEM biodiversity ocean stemgeenFVD linguistic anthro supercollider nextgeneration zoology linguistics climatology oceans SolarSystems reasoning dna geography physics intergenerational archaeologist generalstreik geology ClinicalPsychology generationidentitaire economicanthropology Science OpenScience corrosion research stemwijzer systemsmap bioengineering GotScience sistemainoperativo stemgeenPVV knowledge stemgeenVVD botanical dawkins ineigenersache psychogeography stemgeenVVS graphTheory deepdreamgenerator AnnualStatisticalReview trilateralresearch meterology botanicalart regenerative ScienceDenial biotech stemgeenJA21 regeneration psychology pataphysics particles biology bughunting researching_research pacificocean generation gene fossilhunting badscience mathematics chemistry muon processengineering paleontology oceanography stem anthropocene particlephysics biomedical mechanicalengineering anthropology Pterodactyls researchsoftware process fsckputin HeterogeneousComputing DataScience helloSystem complexsystems WoozlesEpistemicParadox epistemicSystems Paleotology UnreproducableMath openresearch MetaScience super nethunter Wolfram sengi scihub researchmethods betterlivingthroughchemistry ClimateActionScience mycology processing nope multiprocessing SciFail maths astrophysics astrobiology mechatronics researchjournaling ROpenSci buckminsterfuller socialsciences neuroscience regenerativeag CommunicationScience BrainScience soundengineering genealogy genetics molecularbiology womeninscience microbiology ScienceThread uxresearch + AcapellaScience deep openscience eResearch sickMathSkills System76 sciencematters pseudoscience mecha daydreaming cellbiology science engineering math politicalgeography epidemiology stemfie OpenScienceUN TranslateScience electrochemistry ethnology womeninstem archeology botany STEM biodiversity ocean stemgeenFVD linguistic anthro supercollider nextgeneration zoology linguistics climatology oceans SolarSystems reasoning dna geography physics intergenerational archaeologist generalstreik geology ClinicalPsychology generationidentitaire economicanthropology Science OpenScience corrosion research stemwijzer systemsmap bioengineering GotScience sistemainoperativo stemgeenPVV knowledge stemgeenVVD botanical dawkins ineigenersache psychogeography stemgeenVVS graphTheory deepdreamgenerator AnnualStatisticalReview trilateralresearch meterology botanicalart regenerative ScienceDenial biotech stemgeenJA21 regeneration psychology pataphysics particles biology bughunting researching_research pacificocean generation gene fossilhunting badscience mathematics chemistry muon processengineering paleontology oceanography stem anthropocene particlephysics biomedical mechanicalengineering anthropology Pterodactyls researchsoftware process fsckputin HeterogeneousComputing DataScience helloSystem complexsystems WoozlesEpistemicParadox epistemicSystems Paleotology UnreproducableMath openresearch MetaScience super nethunter Wolfram sengi scihub researchmethods betterlivingthroughchemistry ClimateActionScience mycology processing nope multiprocessing SciFail maths astrophysics astrobiology mechatronics researchjournaling ROpenSci buckminsterfuller socialsciences neuroscience regenerativeag CommunicationScience BrainScience soundengineering genealogy genetics molecularbiology womeninscience microbiology ScienceThread uxresearch superhero energyresearch ReproducibleResearch parti - Sat, 11 Jun 2022 19:30:54 UT + Sat, 25 Jun 2022 09:46:04 UT climate sciencemuseum RuaBioscience strophe CarbonCredits ReduceAirTraffic climatechanging carbonemissions carbonsequestration climatemarch goalsetting environmentaljustice atem permafrost YouStormOutlook metoffice heatwave energyconsumption consumption energy energyuse SoilCarbon renewables fuel clouds greenhousegas ClimateEmergency renewableenergy climatejustice ipcc ClimateMeme Nyurbinsky climateemergency climatechos extremeweather ClimateAction climate climateracism renewable windenergy ClimateDenial ClimateProtection ClimateStrike CycloneTauktae emissions coal climatecase climatestrike globalsouth ClimatePodcast weatherforecast kaspersky crisis foodcrisis voteclimate energyvisions klimaatcrisis environment skypack climatecrises sustainability fossilfuel earthscience globalwarming mitigation weather ragingqueerenergy fossilcriminals climatecamp ClimateRefigees windpower sealevelrise ClimateCase globally climatechoas endfossilfuels emergency CarbonOffsets heatwaves pollution global parisclimateagreement fossil energyefficiency climatecatastrophe mitmachen fossilfuels Climate climatescience energytransition climateaction ClimateCrisis storms RacistClimate warm biofuel globalviews climatemitigation environmentalism Ruttecrisis climatecrisis environmentfriendlytech environmentfriendly greenenergy hanging climatereport datascience criminals endcoal EnergyDemand cloudseeding climateactionnow GreenHydrogen airpollution crisiscamp Podcasts charcoal climechoas jetstream ClimateApocalypse ClimateCollaps ClimateCatastrophe globalgoals globalism EarthBreakdown GetOutOfCoal wooncrisis melbourneweather GreenAlgorithms climategrief heatwaveinIndia bubblegumcrisis ClimateJusticeNow openweathermap LowCarbonComputing catastrophe desktopenvironments coalesce climatejoy climatehope DefundClimateChaos - Sat, 11 Jun 2022 19:30:54 UT + Sat, 25 Jun 2022 09:46:04 UT economics - skillsharing skills startup smartcontract scarification postgrowth moneyask solidarityeconomy vat Europe workercoop InformationFriction cooperatives accounting bank cooplife bitcoin noplanetb theWorkshop feministeconomics WealthConcentration valueflows coops holochain valuesovereignty cooperativism greatplains platformcoop pico coopstack usebitcoin gigeconomy consommation workercoops economics cooperationjackson cooperation value business platformcooperatives shopping economic shop companyculture plaintextaccounting MarketForLemons ethereum oops fairtrade bankingCartel Datenbank Bitcoin startups HenryGeorge plausible economíasolidaria disablitycrowdfund limitstogrowth ponzi companies sharingiscaring techcoops plastikfrei woocommerce meetcoop micropatronage mehrplatzfürsrad monetize postscarcity cooperativas coopjobs degrowth smallbusiness intellectualproperty kommerzialisierung GitPay gdp coopsday timebank coop cooperativismo smallbusinesses europeancentralbank banknotes whyBitcoin infoshop telecoop growth limits fuckfoodbanks btc values banks plannedObsolence worldbank zinccoop basicincome scoop cooperativa doughnuteconomics overconsumption sellingout sberbank AlternativeEconomics money platformcooperative circulareconomy sharing banking sustainable defi commonscooperativism openvalue SpaceBillionaires Fedigrowth OpenSalary economicgrowth EconomyOfMachinery KateBishop BillionairesShouldntExist billionairestax SingleMarketÜberAlles radicals foodcoops foodbanks coopalooza abundance publicgoods worldtrade trade SalesEngineering faircoop 8values cash bankruptcy banksy snoopsnitch OwnershipMatters InvestInCoops rebrand savemoney cashless WasteReduction interoperation freetrade datasharing plain lain explainer EuropeDay Degrowth linksharing Whoopsie property counting opera crow + skillsharing skills startup smartcontract scarification postgrowth moneyask solidarityeconomy vat Europe workercoop InformationFriction cooperatives accounting bank cooplife bitcoin noplanetb theWorkshop feministeconomics WealthConcentration valueflows coops holochain valuesovereignty cooperativism greatplains platformcoop pico coopstack usebitcoin gigeconomy consommation workercoops economics cooperationjackson cooperation value business platformcooperatives shopping economic shop companyculture plaintextaccounting MarketForLemons ethereum oops fairtrade bankingCartel Datenbank Bitcoin startups HenryGeorge plausible economíasolidaria disablitycrowdfund limitstogrowth ponzi companies sharingiscaring techcoops plastikfrei woocommerce meetcoop micropatronage mehrplatzfürsrad monetize postscarcity cooperativas coopjobs degrowth smallbusiness intellectualproperty kommerzialisierung GitPay gdp coopsday timebank coop cooperativismo smallbusinesses europeancentralbank banknotes whyBitcoin infoshop telecoop growth limits fuckfoodbanks btc values banks plannedObsolence worldbank zinccoop basicincome scoop cooperativa doughnuteconomics overconsumption sellingout sberbank AlternativeEconomics money platformcooperative circulareconomy sharing banking sustainable defi commonscooperativism openvalue SpaceBillionaires Fedigrowth OpenSalary economicgrowth EconomyOfMachinery KateBishop BillionairesShouldntExist billionairestax SingleMarketÜberAlles radicals foodcoops foodbanks coopalooza abundance publicgoods worldtrade trade SalesEngineering faircoop 8values cash bankruptcy banksy snoopsnitch OwnershipMatters InvestInCoops rebrand savemoney cashless WasteReduction interoperation freetrade datasharing plain lain explainer EuropeDay Degrowth linksharing Whoopsie property counting opera crow endmoney worldeconomicforum theCostOfDoingBusiness WeAreOpenCoOp - Sat, 11 Jun 2022 19:30:54 UT + Sat, 25 Jun 2022 09:46:04 UT sport - yvamosparabingo gosport bats billiard darts olympics2020 swim olympics motorsport snooker sports locksport swimming trailrunning marathon hockey aikido bouldering diving baseball Millwall mma mammal sailing athletics nook olympic dumpsterdiving sportsball bing skating skiing sport footballers climbing football combatsports golf tuebingen unitübingen tübingen rollerderby foot esports TransportTycoonDeluxe icedipping passport vibing carryshitolympics snowboarding boulder arab urbansportsclub skydiving crossfit + yvamosparabingo gosport bats billiard darts olympics2020 swim olympics motorsport snooker sports locksport swimming trailrunning marathon hockey aikido bouldering diving baseball Millwall mma mammal sailing athletics nook olympic dumpsterdiving sportsball bing skating skiing sport footballers climbing football combatsports golf tuebingen unitübingen tübingen rollerderby foot esports TransportTycoonDeluxe icedipping passport vibing carryshitolympics snowboarding boulder arab urbansportsclub skydiving crossfit zomergolf - Sat, 11 Jun 2022 19:30:54 UT + Sat, 25 Jun 2022 09:46:04 UT nature - lighthouses amazonrainforest retractions auroraborealis butte action fastaslight nature hiking camping RedNeckedWallaby reforestation hillwalking wat hambach nsu20 marsupial lightning StormBella zensurheberrecht insect morning lavawervelwind seashell delightful plankton otterbox trees sky_of_my_window lichen MicroOrganisms badger nsu2 ProForestation nonsupremacy light gecko birds embargo_watch volcano teamcapy butterflies Nature snowden actiblizzwalkout frogs rainforest snow sunrise fossils hambacherforest forestfinance lighthouse hitchhiking leopardgecko moutains coldwater rocks inaturalist revuestarlight clamfacts sunset naturereserve forest LandRestoration australianwildlife forests capybara rgblighting enlightened waterfall sundaymorning forestation enlightenment natur lightening finance walking watches deforestation desert lava natural WoodWideWeb birdsarentreal lichensubscribe morningwalk lighttheme nsu retraction_watch SpringRockShed insects wildlife GreatInsults snowdrift afforestation northernlights RainforestAlliance ProtégeonsLaNature amphibians Bear walk desertification otter spaceflight walkthrough EyesOnNature signatures toadstool AustralianWildlife flightradar24 cancellightwaves kangaroos frog RedEyedTreeFrog alligator agroforestry stoneSkipping outdoors woodpecker gaslighting PlaneSpotters walkaway naturelovers lightbulb SyntaxHighlighting theme JohnDonnePotter greenfinance wildlifeart facts rest natureisweird octopus embargo lizards transactionaleEmail amphibia wateruse AtlantaForest InternationalDawnChorusDay themes Email Atlanta delightul hashtrees natureart beach PrestonsParadox SaveEmailFromGoogleAMP Stealthcamping penplotter forestry naturstrom LastSecondCurvesTowardsFlight CuttingSwatches + lighthouses amazonrainforest retractions auroraborealis butte action fastaslight nature hiking camping RedNeckedWallaby reforestation hillwalking wat hambach nsu20 marsupial lightning StormBella zensurheberrecht insect morning lavawervelwind seashell delightful plankton otterbox trees sky_of_my_window lichen MicroOrganisms badger nsu2 ProForestation nonsupremacy light gecko birds embargo_watch volcano teamcapy butterflies Nature snowden actiblizzwalkout frogs rainforest snow sunrise fossils hambacherforest forestfinance lighthouse hitchhiking leopardgecko moutains coldwater rocks inaturalist revuestarlight clamfacts sunset naturereserve forest LandRestoration australianwildlife forests capybara rgblighting enlightened waterfall sundaymorning forestation enlightenment natur lightening finance walking watches deforestation desert lava natural WoodWideWeb birdsarentreal lichensubscribe morningwalk lighttheme nsu retraction_watch SpringRockShed insects wildlife GreatInsults snowdrift afforestation northernlights RainforestAlliance ProtégeonsLaNature amphibians Bear walk desertification otter spaceflight walkthrough EyesOnNature signatures toadstool AustralianWildlife flightradar24 cancellightwaves kangaroos frog RedEyedTreeFrog alligator agroforestry stoneSkipping outdoors woodpecker gaslighting PlaneSpotters walkaway naturelovers lightbulb SyntaxHighlighting theme JohnDonnePotter greenfinance wildlifeart facts rest natureisweird octopus embargo lizards transactionaleEmail amphibia wateruse AtlantaForest InternationalDawnChorusDay themes Email Atlanta delightul hashtrees natureart beach PrestonsParadox SaveEmailFromGoogleAMP Stealthcamping penplotter forestry naturstrom LastSecondCurvesTowardsFlight CuttingSwatches outdoor seriesfixatowatches - Sat, 11 Jun 2022 19:30:54 UT + Sat, 25 Jun 2022 09:46:04 UT events - intersexawarenessday goblinweek aceweek thefuture HeavyRainShowerThoughts fireworks traincrash Halloween2021 hottip actualstateofmind calendar2022 calendar timezones FunADay unfalive CTFtime Nosievember thedailywire neverforget TuesdayVibe award daffodilday OONIbday waybackwednesday thursdayvibes fridayfilm todayilearned ShowYourStripesDay thursdaythought sun futuroparanissan IndigenousPeoplesDay5 notifications hissyfit ddosecrets solo throwbackthursday nissan valentinesday adventskalender live livehack Day deepthoughts solorpg thingaday idahobit screenshotsaturday warmingup thursdaythoughts fridays ipv hackathons thursdaymorning Gesundheitskrise throwback RomaDay assweek animalsweatersunday justwatched TooMuchScreenTime beethoven250thbirthday valentine humanrightsday time followfriday wednesdaythought afediversechristmas whydopeopledoshitlikethis birthdaypresent festivals wednesdaymotivation early MayDay2021 SwissOvershootDay IllustrationDay bigbrotherawards cccamp19 lovewhereyoulive thelibrary PostLikeYouThinkACrabWouldSunday showerthoughts BIJ1 worldpenguinday animal ScreenshotSaturday beethoven anarchymonday treibhausgasemissionen solokey tipoftheday Verkiezingsfestival future primeday IRL paperoftheday bundesnetzagentur thimblefulthursday FreeAssangeYesterday 100DaysToOffload iScreech hackathon ff kids holiday folklorethursday LURKbirthday tomorrowspaperstoday wenbiesday punday ipv4flagday ipv6 christmas livecoding verfassungsschutz weeknotes LINMOBlive week FlashFictionFriday mothersday gsd koningsdag scree concert folklore festival FridayFolklore pride poll screenshottuesday VerkiezingsfestivalBIJ1 motivation towertuesday doesliverpool fujifilmxt2 Docuthon Nakbaday kdenlive dontstarve onthisday GlobalMayDay2021 insideoutsockday screenshots livestream blissos whiskerswednesday BowieDay morningcrew theskytoday InternationalAsexualityDay tzag TinyTuesday FridaysForFuture sunday notification Koning weekendvibes screenshotsunday worldenvironmentday2021 showerthought koningshuis cree VerseThursday liverpool waitangiday esc2021 bigbrotheraward caturday adayinthelife goodmorning Caturday day InternationalCheetahDay flatfuckfriday songfestival ItchCreatorDay iss RabbitRoadTrip2021 interestingtimes sideprojectsunday birthday sixonsaturday supdate StPatricksDay2021 koningsdag2021 wordoftheday theweeknd christmaslights AfricaDay livefree CancelCanadaDay worldenvironmentday fridaysforfuture nationallibraryweek meetup FathersDay transpride sex rechtsextreme awards ShowerThoughts transdayofrevenge GivingTuesday calendars studymonday monday docshackathon justhavingagoodtime BlackFriday ThanksGiving christmastodon like liveandlearn ddos givingtuesday interesting plwc2022 IWD2022 saturday nowavailable actual agda hott livestock todaywasagoodday simple lastweektonight piday crew tuesday retrofuture weddings randomthoughts earlyaccess saturdayvibes concerts badluckmonday happyholidays dayagainstdrm listeningtonow bivisibilityday merrychristmas weirdmas whamageddon christmas3 EarthHour FediDelivers watched bigbrother indigenouspeoplesday thedaily transdayofvisability aprilfoolsday happynewyear NewYear2022 NewYear LiveStreaming mondaythoughts clive simplepleasures futureland globalmilweek thoughts simpleJoys polltax portfolioday irishfolklore backtothefuture indigenouspeople wedding cosmonauticsday polls friday craigofthecreek finefemmefriday newmusicfriday oldtimer ShowerThought MayDay MayDay2022 jazzsunday ScreenshotSunday tomorrow fedifriday WeAreScrewed tomorrowland mybirthday metalmonday wednesdaythoughts kidsinthehall selfiesaturday echr idahobit22 tacotuesday caturdayeveryday PVsundays pushnotifications billieholiday swatchtime futurefunk pride2022 reclaimpride humanright random + intersexawarenessday goblinweek aceweek thefuture HeavyRainShowerThoughts fireworks traincrash Halloween2021 hottip actualstateofmind calendar2022 calendar timezones FunADay unfalive CTFtime Nosievember thedailywire neverforget TuesdayVibe award daffodilday OONIbday waybackwednesday thursdayvibes fridayfilm todayilearned ShowYourStripesDay thursdaythought sun futuroparanissan IndigenousPeoplesDay5 notifications hissyfit ddosecrets solo throwbackthursday nissan valentinesday adventskalender live livehack Day deepthoughts solorpg thingaday idahobit screenshotsaturday warmingup thursdaythoughts fridays ipv hackathons thursdaymorning Gesundheitskrise throwback RomaDay assweek animalsweatersunday justwatched TooMuchScreenTime beethoven250thbirthday valentine humanrightsday time followfriday wednesdaythought afediversechristmas whydopeopledoshitlikethis birthdaypresent festivals wednesdaymotivation early MayDay2021 SwissOvershootDay IllustrationDay bigbrotherawards cccamp19 lovewhereyoulive thelibrary PostLikeYouThinkACrabWouldSunday showerthoughts BIJ1 worldpenguinday animal ScreenshotSaturday beethoven anarchymonday treibhausgasemissionen solokey tipoftheday Verkiezingsfestival future primeday IRL paperoftheday bundesnetzagentur thimblefulthursday FreeAssangeYesterday 100DaysToOffload iScreech hackathon ff kids holiday folklorethursday LURKbirthday tomorrowspaperstoday wenbiesday punday ipv4flagday ipv6 christmas livecoding verfassungsschutz weeknotes LINMOBlive week FlashFictionFriday mothersday gsd koningsdag scree concert folklore festival FridayFolklore pride poll screenshottuesday VerkiezingsfestivalBIJ1 motivation towertuesday doesliverpool fujifilmxt2 Docuthon Nakbaday kdenlive dontstarve onthisday GlobalMayDay2021 insideoutsockday screenshots livestream blissos whiskerswednesday BowieDay morningcrew theskytoday InternationalAsexualityDay tzag TinyTuesday FridaysForFuture sunday notification Koning weekendvibes screenshotsunday worldenvironmentday2021 showerthought koningshuis cree VerseThursday liverpool waitangiday esc2021 bigbrotheraward caturday adayinthelife goodmorning Caturday day InternationalCheetahDay flatfuckfriday songfestival ItchCreatorDay iss RabbitRoadTrip2021 interestingtimes sideprojectsunday birthday sixonsaturday supdate StPatricksDay2021 koningsdag2021 wordoftheday theweeknd christmaslights AfricaDay livefree CancelCanadaDay worldenvironmentday fridaysforfuture nationallibraryweek meetup FathersDay transpride sex rechtsextreme awards ShowerThoughts transdayofrevenge GivingTuesday calendars studymonday monday docshackathon justhavingagoodtime BlackFriday ThanksGiving christmastodon like liveandlearn ddos givingtuesday interesting plwc2022 IWD2022 saturday nowavailable actual agda hott livestock todaywasagoodday simple lastweektonight piday crew tuesday retrofuture weddings randomthoughts earlyaccess saturdayvibes concerts badluckmonday happyholidays dayagainstdrm listeningtonow bivisibilityday merrychristmas weirdmas whamageddon christmas3 EarthHour FediDelivers watched bigbrother indigenouspeoplesday thedaily transdayofvisability aprilfoolsday happynewyear NewYear2022 NewYear LiveStreaming mondaythoughts clive simplepleasures futureland globalmilweek thoughts simpleJoys polltax portfolioday irishfolklore backtothefuture indigenouspeople wedding cosmonauticsday polls friday craigofthecreek finefemmefriday newmusicfriday oldtimer ShowerThought MayDay MayDay2022 jazzsunday ScreenshotSunday tomorrow fedifriday WeAreScrewed tomorrowland mybirthday metalmonday wednesdaythoughts kidsinthehall selfiesaturday echr idahobit22 tacotuesday caturdayeveryday PVsundays pushnotifications billieholiday swatchtime futurefunk pride2022 reclaimpride humanright random happybirthday WholesomeWednesday pridefest mondays femme timelapse docs Intergalacticthrowback - Sat, 11 Jun 2022 19:30:54 UT + Sat, 25 Jun 2022 09:46:04 UT linux - yearoflinuxondesktop desktopComposer matedesktop armbian packagemanagement archenemy archer blackarch aurorastore elasticsearch visualstudio showcase ttlinuxchallenge linuxchallenge Wayland linuxjob shareandcontrubute ThisWeekInGNOME nico apt pubnix fishshell linuxboot compiz osdev musescore commandline opensuse share linuxisnotanos elementaryos cli buster viernesdeescritorio voidlinux shell nu cliff olinuxino deb composite beschbleibt kde FragAttacks Debian11 reprobuilds pureos nospoilers kdepim thisweekinlinux slackware search bsd tap openwrt runbsd distros stapler viernes tmux nixos alpine nix DebianBullseye jobsearch rm xfce ubuntubuzz gnutools vaguejoke ack shareyourdesktop shellagm wireguard posix lightweight hardenedbsd Guix linuxaudio mate haikuos usb initramfs nushell LinuxTablets nixpkgs wordsearch osi alpines computertruhe nonmateria torvalds gtk linuxmint DebianAcademy debian chroot trisquel studio gnome distrowatch oldcomputerchallenge linuxposting fedoraonpinephone console showyourdesktop FuckDeMonarchie researchassistants anarchie windowmanager desktop GuixSystem arch chaoscomputerclub personalities platform ubuntu personalwiki jodee snowfall gnulinux patriarchat aur tuxjam justlinuxthings xubuntu thesuicidesquad kdeframeworks5 stackoverflow unix fedora openbsd centos nos fittrackee tuxedocomputers tracker openmandriva backwaren gentoo buildroot aurora researcher archive icarosdesktop BlackLives liveusb dee SearchFu personalarchive usergroup StockOS systemd linuxgaming Debian distro 1492LandBackLane Racklet theartofcomputerprogramming icecat tape puppylinux destinationlinux LinuxSpotted lovelinux thestudio suicide aros show Squarch monstrosities computer gtk3 blackout deepBlah escritoriognulinux acepride materials qubesos i3wm clipstudiopaint dadjokes kubuntu epr artixlinux JuiceFS reproducible kdecommunity haiku alpinelinux linuxisnotaplatform clip fall linux EMMS planetdebian minicomputer altap raspbian netbsd DanctNIX termux btrfs reproduciblebuilds showTheRainbow gravitationalwaves joke artix gtk4 esc linuxexpress archlinuxarm bash dd archlinux hare ubuntucore linuxconfau newinbullseye researchers AuratAzadiMarch gnomebuilder void GNUlinux rhel debianinstaller debianindia linuxisajoke tux devuan debían suse zsh linuxconsole scoobySnacks bullseye ostomate kxstudio skolelinux CllimateChange eclipse yesmate distroism personalanthem OligarchYachts gnomemaps vaguejokes endthesearch suicidesquad oilshell fedisearch archivedotorg SharedEarningsAgreement openplatforms callforhelp openstudio archives blackarchives tabletop elementary GTK bashfuscator MercuryOS stopshell challenge MNTResearch thejoker WeWantOneDesktopEnvironment debianedu qubes gnomesettings tuxedo RasPup linuxdesktop bunniestudios KDEapps KDEAplications ubuntustudio GNOME42 silverblue frankendebian linuxtablet DistroHoppingFromAndToWindows ghost Freeshell visualstudiocode HealthResearch ghostbusters clipboard OligarchsAreGenerallyNotUseful squad hierarchies maters mxlinux Oligarchs settings automate Guix10Years tailsos NEISvoid tablet stack aftershow unixlayout avlinux fedishare yaylinux ResearchJournal researchdatamanagement openstack unreasonablesearch Spotted substack ghostintheshell jamstack SharePointOnline neisvoid distrobox chaos hella jobsearching ShareToMuch systemd76 latenightlinux cyclocomputer windowmanagers LinuxAfterDark lunareclipse Shareon chaospost royaldutchshell gnometerminal ghostbsd debianreunion gnomeshell inkscapechallenge dutch musicshowcase + yearoflinuxondesktop desktopComposer matedesktop armbian packagemanagement archenemy archer blackarch aurorastore elasticsearch visualstudio showcase ttlinuxchallenge linuxchallenge Wayland linuxjob shareandcontrubute ThisWeekInGNOME nico apt pubnix fishshell linuxboot compiz osdev musescore commandline opensuse share linuxisnotanos elementaryos cli buster viernesdeescritorio voidlinux shell nu cliff olinuxino deb composite beschbleibt kde FragAttacks Debian11 reprobuilds pureos nospoilers kdepim thisweekinlinux slackware search bsd tap openwrt runbsd distros stapler viernes tmux nixos alpine nix DebianBullseye jobsearch rm xfce ubuntubuzz gnutools vaguejoke ack shareyourdesktop shellagm wireguard posix lightweight hardenedbsd Guix linuxaudio mate haikuos usb initramfs nushell LinuxTablets nixpkgs wordsearch osi alpines computertruhe nonmateria torvalds gtk linuxmint DebianAcademy debian chroot trisquel studio gnome distrowatch oldcomputerchallenge linuxposting fedoraonpinephone console showyourdesktop FuckDeMonarchie researchassistants anarchie windowmanager desktop GuixSystem arch chaoscomputerclub personalities platform ubuntu personalwiki jodee snowfall gnulinux patriarchat aur tuxjam justlinuxthings xubuntu thesuicidesquad kdeframeworks5 stackoverflow unix fedora openbsd centos nos fittrackee tuxedocomputers tracker openmandriva backwaren gentoo buildroot aurora researcher archive icarosdesktop BlackLives liveusb dee SearchFu personalarchive usergroup StockOS systemd linuxgaming Debian distro 1492LandBackLane Racklet theartofcomputerprogramming icecat tape puppylinux destinationlinux LinuxSpotted lovelinux thestudio suicide aros show Squarch monstrosities computer gtk3 blackout deepBlah escritoriognulinux acepride materials qubesos i3wm clipstudiopaint dadjokes kubuntu epr artixlinux JuiceFS reproducible kdecommunity haiku alpinelinux linuxisnotaplatform clip fall linux EMMS planetdebian minicomputer altap raspbian netbsd DanctNIX termux btrfs reproduciblebuilds showTheRainbow gravitationalwaves joke artix gtk4 esc linuxexpress archlinuxarm bash dd archlinux hare ubuntucore linuxconfau newinbullseye researchers AuratAzadiMarch gnomebuilder void GNUlinux rhel debianinstaller debianindia linuxisajoke tux devuan debían suse zsh linuxconsole scoobySnacks bullseye ostomate kxstudio skolelinux CllimateChange eclipse yesmate distroism personalanthem OligarchYachts gnomemaps vaguejokes endthesearch suicidesquad oilshell fedisearch archivedotorg SharedEarningsAgreement openplatforms callforhelp openstudio archives blackarchives tabletop elementary GTK bashfuscator MercuryOS stopshell challenge MNTResearch thejoker WeWantOneDesktopEnvironment debianedu qubes gnomesettings tuxedo RasPup linuxdesktop bunniestudios KDEapps KDEAplications ubuntustudio GNOME42 silverblue frankendebian linuxtablet DistroHoppingFromAndToWindows ghost Freeshell visualstudiocode HealthResearch ghostbusters clipboard OligarchsAreGenerallyNotUseful squad hierarchies maters mxlinux Oligarchs settings automate Guix10Years tailsos NEISvoid tablet stack aftershow unixlayout avlinux fedishare yaylinux ResearchJournal researchdatamanagement openstack unreasonablesearch Spotted substack ghostintheshell jamstack SharePointOnline neisvoid distrobox chaos hella jobsearching ShareToMuch systemd76 latenightlinux cyclocomputer windowmanagers LinuxAfterDark lunareclipse Shareon chaospost royaldutchshell gnometerminal ghostbsd debianreunion gnomeshell inkscapechallenge dutch musicshowcase jugpiersghost - Sat, 11 Jun 2022 19:30:54 UT + Sat, 25 Jun 2022 09:46:04 UT radio - 5g echolink metalradio tootradio fediradio cbradio worldradioday radiokookpunt hamr freieradios varia why radioamateur shoshanazuboff winlink tootlabradio pouetradio schenklradio dx macintosh radioactive ntsradio amateurradio radiohost radiokapital talkradio localization shortwave nwr vantaradio roadsafety ca radio healthcare listening hamradio variabroadcasts card10 fastapi webradio freeradio radiobroadcasting radiosurvivor Poecileatricapillus apis radioshow local cellbroadcast radio3 noshame osh audycja hackerpublicradio kosher radioalhara Phosh audycjaradiowa california road radiobroadcast radiostation mastoradio broadcasting radiodread amateurr radiolibre modelrailroad spazradio anonradio Capitaloceno kolektywneradio io roadmap capi beltandroad localart radio_tosepan lorawan shortwaveradio hospitals broadcast BA2variant transmit localisation hospital short pita lrad localgroup antenna gumroad shorthand DiversityCapitals abroad broadcaster abra LaatKapitalisme localfood cantenna + 5g echolink metalradio tootradio fediradio cbradio worldradioday radiokookpunt hamr freieradios varia why radioamateur shoshanazuboff winlink tootlabradio pouetradio schenklradio dx macintosh radioactive ntsradio amateurradio radiohost radiokapital talkradio localization shortwave nwr vantaradio roadsafety ca radio healthcare listening hamradio variabroadcasts card10 fastapi webradio freeradio radiobroadcasting radiosurvivor Poecileatricapillus apis radioshow local cellbroadcast radio3 noshame osh audycja hackerpublicradio kosher radioalhara Phosh audycjaradiowa california road radiobroadcast radiostation mastoradio broadcasting radiodread amateurr radiolibre modelrailroad spazradio anonradio Capitaloceno kolektywneradio io roadmap capi beltandroad localart radio_tosepan lorawan shortwaveradio hospitals broadcast BA2variant transmit localisation hospital short pita lrad localgroup antenna gumroad shorthand DiversityCapitals abroad broadcaster abra LaatKapitalisme localfood cantenna antennapod - Sat, 11 Jun 2022 19:30:54 UT + Sat, 25 Jun 2022 09:46:04 UT philosophy - rousseau Hobbes spider deleuze guattari postmeritocracy minimalism maximalist Allposts nationalpost maximalism digitalminimalism postprocess philosophy erp stoic spiderposting postfordismo postmodernism minimalist minimal postfix pragmatism philosophyofscience AfricanPhilosophy minimalcomputing spiderman + rousseau Hobbes spider deleuze guattari postmeritocracy minimalism maximalist Allposts nationalpost maximalism digitalminimalism postprocess philosophy erp stoic spiderposting postfordismo postmodernism minimalist minimal postfix pragmatism philosophyofscience AfricanPhilosophy minimalcomputing spiderman minimalwave spiders - Sat, 11 Jun 2022 19:30:54 UT + Sat, 25 Jun 2022 09:46:04 UT entertainment CommunityCircus rockyhorror CircusInPlace legallyblonde watching theCinema Thundercat makingof entertainment nowwatching mandalorian themandalorian nt LethalWeapon3 VoiceActor electronicentertainmentexpo - Sat, 11 Jun 2022 19:30:54 UT + Sat, 25 Jun 2022 09:46:04 UT religion - Crapaganda atheist buddhist ama neopagan pagan catholic paganism genesis jesuit secularism SiddarthaGautama oorlogspropaganda hinduism synagogues ropa christian christianity secular synagogue dart + Crapaganda atheist buddhist ama neopagan pagan catholic paganism genesis jesuit secularism SiddarthaGautama oorlogspropaganda hinduism synagogues ropa christian christianity secular synagogue dart catholicism catholicchurch - Sat, 11 Jun 2022 19:30:54 UT + Sat, 25 Jun 2022 09:46:04 UT commons - opengl ringworld world DeepCommons openaps WireworldFriendsday openstandards ed openformat mentalillness opennmsgroup OpenAccessButton niemandistvergessen distraction open linkedopenactors openaccess reopening openocd opennms ess badges opensocial commonscloud activisim openlibrary characters opensourcing innovation openpublishing verge InstantMessenger LessIsMore openrefine openworlds extraction openwashing publicinterest besserorganisieren exittocommunity openinnovation opennmt openbadges accessable openfest2021 ManufacturaIndependente openspades Accessibility keinvergessen openrepos2021 openftw Bessa CCSharesCulture borders opensouce opensea openworld openarena EcoCommons openmanufacture openbim nova opencitations helloworld openttd innovative AutoShare opencv neurodivergence worldbuilding openborders openpedagogy openScholarship fact opensnitch openapi CommonsEngine hello theverge moistnotborders novalpina openinfrastructure opensociety strangenewworlds infrastructure opencyc FreeCoop Interworld openmovie refactor openletter + opengl ringworld world DeepCommons openaps WireworldFriendsday openstandards ed openformat mentalillness opennmsgroup OpenAccessButton niemandistvergessen distraction open linkedopenactors openaccess reopening openocd opennms ess badges opensocial commonscloud activisim openlibrary characters opensourcing innovation openpublishing verge InstantMessenger LessIsMore openrefine openworlds extraction openwashing publicinterest besserorganisieren exittocommunity openinnovation opennmt openbadges accessable openfest2021 ManufacturaIndependente openspades Accessibility keinvergessen openrepos2021 openftw Bessa CCSharesCulture borders opensouce opensea openworld openarena EcoCommons openmanufacture openbim nova opencitations helloworld openttd innovative AutoShare opencv neurodivergence worldbuilding openborders openpedagogy openScholarship fact opensnitch openapi CommonsEngine hello theverge moistnotborders novalpina openinfrastructure opensociety strangenewworlds infrastructure opencyc FreeCoop Interworld openmovie refactor openletter openvoip openmic voip opengov - Sat, 11 Jun 2022 19:30:54 UT + Sat, 25 Jun 2022 09:46:04 UT help helpneeded tips mastohelp MutualAidRequest helpwanted lpf helpful MutualAidReques hilfe helpMeOutHere help helpisneeded needhelp HelpAComrade sendhelp pleasehelp icanhelpwith uxtips sozialhilfe - Sat, 11 Jun 2022 19:30:54 UT + Sat, 25 Jun 2022 09:46:04 UT podcasts - 16k joerogan beautiful podcasting IntergalacticWasabiHour JenaFahrradies podcast rad radiopodcast postmarketOSpodcast TraditionCruelle podcasting20 tilderadio tildes podcasts tildeverse radverkehr smallisbeautiful fertilizers PineTalk radweg tilvids fahrrad tildetown qtile trillbilliespodcast LinuxOutLoud DLNXtend town oggcastplanet strongtowns magnusarchives postmarketOS lies GeeksAbroad podcaster mutualexchangeradio + 16k expeditionsasquatch joerogan beautiful podcasting IntergalacticWasabiHour JenaFahrradies podcast rad radiopodcast postmarketOSpodcast TraditionCruelle podcasting20 tilderadio tildes podcasts tildeverse radverkehr smallisbeautiful fertilizers PineTalk radweg tilvids fahrrad tildetown qtile trillbilliespodcast LinuxOutLoud DLNXtend town oggcastplanet strongtowns magnusarchives postmarketOS lies GeeksAbroad podcaster mutualexchangeradio families - Sat, 11 Jun 2022 19:30:54 UT + Sat, 25 Jun 2022 09:46:04 UT surveillance IDme Resist1984 biometrics osint Innova RB800 id2020 metrics ResponsibleInnovation - Sat, 11 Jun 2022 19:30:54 UT + Sat, 25 Jun 2022 09:46:04 UT psychology - depersonalization dream PsyGroup schadenfreude LookingOnTheBrightSide Psywar ConstructInMyMind + depersonalization dream impostersyndrome PsyGroup schadenfreude LookingOnTheBrightSide Psywar ConstructInMyMind - Sat, 11 Jun 2022 19:30:54 UT + Sat, 25 Jun 2022 09:46:04 UT questions - didyouknow checking kayaking askmastodon flockingbird biking questions king euskadi asking mask GlobalFrackingBan factchecking askfedi basketball smoking WorldAgainstFracking askafriend flask GlobalBanOnFracking TraditionalWoodworking question askmasto scrap_booking maskengate criticalthinking askfediverse fucking totallyaskingforafriend ask daretoask askfosstodon DebunkingEconomics lockin justasking FuckingCancelled fuckingblokes BreakingTheRules DevQuestions askthepunkhouse askpunkhouse askingforafriend lockpick HulkingGreatBody jailbreaking spellchecking BigQuestionsOfTheDay philosopherking PressureCooking total WhichIsBest stacking SeekingToFollow mountainbiking jailbreak notjoking speaking SeekingRecommendations ThinkingOfMyLiver UselessButCorrectAnswer mocking multitasking totally BraMaking + didyouknow checking kayaking askmastodon flockingbird biking questions king euskadi asking mask GlobalFrackingBan factchecking askfedi basketball smoking WorldAgainstFracking askafriend flask GlobalBanOnFracking TraditionalWoodworking question askmasto scrap_booking maskengate criticalthinking askfediverse fucking totallyaskingforafriend ask daretoask askfosstodon DebunkingEconomics lockin justasking FuckingCancelled fuckingblokes BreakingTheRules DevQuestions askthepunkhouse askpunkhouse askingforafriend lockpick HulkingGreatBody jailbreaking spellchecking BigQuestionsOfTheDay philosopherking PressureCooking total WhichIsBest stacking SeekingToFollow mountainbiking jailbreak notjoking speaking SeekingRecommendations ThinkingOfMyLiver UselessButCorrectAnswer mocking multitasking totally BraMaking bikingday - Sat, 11 Jun 2022 19:30:54 UT + Sat, 25 Jun 2022 09:46:04 UT phones - calyxos AlpineJS kdeplasma gefrierbrand jolla apk OTA22 volla mobileapp cellular fairphone3 téléphone nemomobile fairtec linuxfr conocimientolibre manjaro Jingos plasmaDev TourBrandenburg21 rand mobian LinuxPhoneApps lg pine Brandkopf alarmphone androidemulator fdroid plasmamobile shotonpinephone fairuse android smartphonepic nophone ubportsqanda linuxmobile sailfish phones fennecfdroid Mobian osmf AlpineConf automobile smartphone plasma5 ios selinux mobileGNU PinePhoneOrderDay exxon sms4you mob microphone linuxconnexion smart smartphones iOS14 pinemarten linuxphones openmoko mobilecoin mobilelinux freeyourandroid fair QWERTYphones exxonmobil sailfishos siskinim epic monal android10 osmocom Smartphones WakeMobile androids lineageos molly angelfish androiddev manjarolinux quasseldroid wirtschaft plasma mobilephones phosh BriarProject Fairphone librem5 ubportsinstaller linuxphone shotonlibrem5 pinephone Teracube PinePhone pinedio mobile pinephones manjaroarm sms pine64 automobiles fairphone ubuntutouch linphone Android osmirl ubports gnomeonmobile immobilienwirtschaft Bramble osmand vodafone gnomemobile linuxonmobile iphones postmarketos iOS microg brandenburg librecellular GetSession grapheneos sail recycletechjunkuselinux phone cm mobileKüfA lineage josm iphone linuxappsummit Xperia10mark2 tmobile ChineseApps headphones fairdealing WebApps dumbphones telephones Lomiri spyphone TheGrandOldDukeOfYork BertrandPoncet androidapp MinimalistPhone wiphone pineda linbits towboot SipWitchQt LineageOS Librem5 smarttv Apps boringphone Framebufferphone pinephold freepbx evergrande PinePhonePro OTA19 Sipcraft 10YearPhone SPA502G smartmeters Fairphone4 LINMOBapps emulator faircoin fairchain mobi luneos brentspiner smartdevices smarttech smarthome jacaranda deedum xenia pinephonepro pinebuds pinephoneKeyboard mobilenixos cellphones MobileDevices fairness PowerApps SHIFTphones monalim precursor PiApps grandprix sailfishx Nokia Jolla22 + calyxos AlpineJS kdeplasma gefrierbrand jolla apk OTA22 volla mobileapp cellular fairphone3 téléphone nemomobile fairtec linuxfr conocimientolibre manjaro Jingos plasmaDev TourBrandenburg21 rand mobian LinuxPhoneApps lg pine Brandkopf alarmphone androidemulator fdroid plasmamobile shotonpinephone fairuse android smartphonepic nophone ubportsqanda linuxmobile sailfish phones fennecfdroid Mobian osmf AlpineConf automobile smartphone plasma5 ios selinux mobileGNU PinePhoneOrderDay exxon sms4you mob microphone linuxconnexion smart smartphones iOS14 pinemarten linuxphones openmoko mobilecoin mobilelinux freeyourandroid fair QWERTYphones exxonmobil sailfishos siskinim epic monal android10 osmocom Smartphones WakeMobile androids lineageos molly angelfish androiddev manjarolinux quasseldroid wirtschaft plasma mobilephones phosh BriarProject Fairphone librem5 ubportsinstaller linuxphone shotonlibrem5 pinephone Teracube PinePhone pinedio mobile pinephones manjaroarm sms pine64 automobiles fairphone ubuntutouch linphone Android osmirl ubports gnomeonmobile immobilienwirtschaft Bramble osmand vodafone gnomemobile linuxonmobile iphones postmarketos iOS microg brandenburg librecellular GetSession grapheneos sail recycletechjunkuselinux phone cm mobileKüfA lineage josm iphone linuxappsummit Xperia10mark2 tmobile ChineseApps headphones fairdealing WebApps dumbphones telephones Lomiri spyphone TheGrandOldDukeOfYork BertrandPoncet androidapp MinimalistPhone wiphone pineda linbits towboot SipWitchQt LineageOS Librem5 smarttv Apps boringphone Framebufferphone pinephold freepbx evergrande PinePhonePro OTA19 Sipcraft 10YearPhone SPA502G smartmeters Fairphone4 LINMOBapps emulator faircoin fairchain mobi luneos brentspiner smartdevices smarttech smarthome jacaranda deedum xenia pinephonepro pinebuds pinephoneKeyboard mobilenixos cellphones MobileDevices fairness PowerApps SHIFTphones monalim precursor PiApps grandprix sailfishx Nokia Jolla22 smartctl warandpeas GuyonEspiner UpcyclingAndroid - Sat, 11 Jun 2022 19:30:54 UT + Sat, 25 Jun 2022 09:46:04 UT retro - thearcade atari2600 amigaos retrowave dos m68k retrocomputer kommunalwahl 90sretro A500 CreativeCommons ecommerce atarist SistersWithTransistors vax retroarch commodore retroffiting teletext Retromeme matariki floppy recommendation 8bit cassette arcade atari communicators atari800 oldschool trs80 atari8bit floppydisk retrocomputing recommended C64 nostalgia bbs ansi communicationtheory plan9 80s TransCrowdFund microcomputing kommunikation vaxvms retroarcade zdfretro cassette_tapes bonhomme omm retrogaming z80 8bitdo retro atari800xl retrocom telekommunikation VollaCommunityDays retropie commodore64 cassettetapes retrogame amiga bbcmicro retrofriday microcomputer bbsing commercial oldcomputers tic80 varvara BBS acorn retrohardware atari400 Atari800XE 6502portable nostalgianerd retrogames retroads retronetworking telecommunication vintagecomputing commercials theory ethniccleansing retrocomputers libretro tapes CodeLikeItsThe90s Community ReadingCommunity BuildTheMeansOfCommunity DriveByCommunity + thearcade atari2600 amigaos retrowave dos m68k retrocomputer kommunalwahl 90sretro A500 ecommerce atarist SistersWithTransistors vax retroarch commodore retroffiting teletext Retromeme matariki floppy recommendation 8bit cassette arcade atari communicators atari800 oldschool trs80 atari8bit floppydisk retrocomputing recommended C64 nostalgia bbs ansi communicationtheory plan9 80s TransCrowdFund microcomputing kommunikation vaxvms retroarcade zdfretro cassette_tapes bonhomme omm retrogaming z80 8bitdo retro atari800xl retrocom telekommunikation VollaCommunityDays retropie commodore64 cassettetapes retrogame amiga bbcmicro retrofriday microcomputer bbsing commercial oldcomputers tic80 varvara BBS acorn retrohardware atari400 Atari800XE 6502portable nostalgianerd retrogames retroads retronetworking telecommunication vintagecomputing commercials theory ethniccleansing retrocomputers libretro tapes CodeLikeItsThe90s Community ReadingCommunity BuildTheMeansOfCommunity DriveByCommunity - Sat, 11 Jun 2022 19:30:54 UT + Sat, 25 Jun 2022 09:46:04 UT comedy dadjoke laugh farce humour swisshumor satire irony standup funny humor pun devhumor swiss theonion laughingkookaburra surreal Krankies codinghumor surrealism comedygold comedy lolnope AppeasePoseidon idon - Sat, 11 Jun 2022 19:30:54 UT + Sat, 25 Jun 2022 09:46:04 UT legal - liability critique legalcounsel legaltech legal NoALaReformaTributaria justafewlines scanlines kurmancî rma informatik formatie2021 hfgkarlsruhe doj amro karlsruhe dmc tamron formatie SpreekJeUitBekenKleur newnormal line OfflineNavigation kurmanji OnlineHarms GameSphere squeekboard mermaid stopline3 DNSmugOfTheWeek permagold OnlineHarmsBill gdpr intros Anticritique energyflow peekier MovieGeek OnlineMeetings scan informationsfreiheit mojeek digitalservicesact line3 disinfo freiheit darmanin airline OfflineHarms dmca section230 Tuscany abortolegal linexp formatiedebat religionsfreiheit scotus NeitherPipelinesNorPoliticians linearalgebra religion citiesskylines ianal loneliness pressefreiheit frei freire Foxglovelegal fuckscotus norm form landline + liability critique legalcounsel legaltech legal NoALaReformaTributaria justafewlines scanlines kurmancî rma informatik formatie2021 hfgkarlsruhe doj amro karlsruhe dmc tamron formatie SpreekJeUitBekenKleur newnormal line OfflineNavigation kurmanji OnlineHarms GameSphere squeekboard mermaid stopline3 DNSmugOfTheWeek permagold OnlineHarmsBill gdpr intros Anticritique energyflow peekier MovieGeek OnlineMeetings scan informationsfreiheit mojeek digitalservicesact line3 disinfo freiheit darmanin airline OfflineHarms dmca section230 Tuscany abortolegal linexp formatiedebat religionsfreiheit scotus NeitherPipelinesNorPoliticians linearalgebra religion citiesskylines ianal loneliness pressefreiheit frei freire Foxglovelegal fuckscotus norm form landline legalCrime fuck titleix - Sat, 11 Jun 2022 19:30:54 UT + Sat, 25 Jun 2022 09:46:04 UT seasons - amersfoort mailspring officehours spring lupin thespinoff Dadvice autumn abolishice desummersummit licenziamenti namedropping office hooping sipping es fuckice winter EthicalLicenses ice luejenspringer hpintegrity pingpong santa summer iced LibreOffice summerschool onlyoffice pinball solstice unicef officework wintersolstice summerRolls pin mice schools winterishere school dormice schoolsluiting mers officer signsofspring happysolstice advice wintergatan officeleaks winteriscoming leaks summertime schooling highschool newcomers astronomers summercampisland alzheimersdisease summeriscoming lifeadvice + amersfoort mailspring officehours spring lupin thespinoff Dadvice autumn abolishice desummersummit licenziamenti namedropping office hooping sipping es fuckice winter EthicalLicenses ice luejenspringer hpintegrity pingpong santa summer iced LibreOffice onlyoffice pinball solstice unicef officework wintersolstice summerRolls pin mice schools winterishere school dormice schoolsluiting mers officer signsofspring happysolstice advice wintergatan officeleaks winteriscoming leaks summertime schooling highschool newcomers astronomers summercampisland alzheimersdisease summeriscoming lifeadvice officespace - Sat, 11 Jun 2022 19:30:54 UT + Sat, 25 Jun 2022 09:46:04 UT scifi - discovered startrekdiscovery startrek discover SoftwareJob LegDichNieMitSchwarzenKatzenAn starwars ds9 discovery trek SchwarzeFrauen babylon NGIForward babylon5 drwho stars TheOsirisChild scifitvshow thenextgeneration StartTrek starthubcenters cover scifi discoverability starkindustries alien hotstar star keirstarmer EnemyMine starvation disc laserdiscs aliens starwarsday startrekpicard trekkies picard stargate stark + discovered startrekdiscovery startrek discover SoftwareJob LegDichNieMitSchwarzenKatzenAn starwars ds9 discovery trek SchwarzeFrauen babylon NGIForward babylon5 drwho stars TheOsirisChild scifitvshow thenextgeneration StartTrek starthubcenters cover scifi discoverability starkindustries alien hotstar star keirstarmer EnemyMine starvation disc laserdiscs aliens starwarsday startrekpicard trekkies picard stargate stark tng - Sat, 11 Jun 2022 19:30:54 UT + Sat, 25 Jun 2022 09:46:04 UT history - fashionhistory ancientgreek holocaustmemorialday greek musichistory heirloom monarchs holocaust history arthistory makeinghistory History anarchisthistory indigenoushistorymonth CarHistory gaminghistory womenshistorymonth NetworkingHistory blackhistory otd monarch computerhistory HistoryOfArt londonHistory GamingHistory hackinghistory museum CharlesBabbage romanhistory museums monarchy Africanhistory loom todayinhistory prehistory today r4today + fashionhistory ancientgreek holocaustmemorialday greek musichistory heirloom monarchs holocaust history arthistory makeinghistory History anarchisthistory indigenoushistorymonth CarHistory gaminghistory womenshistorymonth NetworkingHistory blackhistory otd monarch computerhistory HistoryOfArt londonHistory GamingHistory hackinghistory museum CharlesBabbage romanhistory museums monarchy Africanhistory loom todayinhistory prehistory today r4today blooming TastingHistory internethistory - Sat, 11 Jun 2022 19:30:54 UT + Sat, 25 Jun 2022 09:46:04 UT pandemic p2panda againstVaccinePatents covid19nz internationalisation VaccinationData vaccinemandates lockdown vaccins PeoplesVaccine covid covid19 coronaPolicies gevaccineerd corona getvaccinated CovidImpacts psmeandmywholefamilycaughtcovidfromwork Coronavirus CoronaWarnApp facemasks vaccines wijvaccineren culturalrevolution pandemics vaccine vaccinesupply JournalistsSpeakUpForAssange Covid vaccinated coranavirus NoCovidMonopolies pandemic sayhername internationalproletarianrevolution Zbalermorna internationalcatday covidville ZeroCovid vaccini pandemia coronapps volkstheater COVID19india contacttracing VaccinePatents coronavaccinatie SùghAnEòrna tier4 coronapandemie pand SarsCoV2 volodine COVID19NL covidmask Moderna coronavirus masks viruses Moderna2 COVIDrelief coronapas virus contacttracingapps moderna coronadebat vaccin COVIDー19 Lockdown rna unvaccinated codid19 CripCOVID19 LongCovid COVID19 vaccination YesWeWork ContactTracing vol coronaviruses CoronaCrisis COVID coronamaatregelen debat international internationalsolidarity coronabeleid ZeroCOVID vaccinaties Pepijnisgevaccineerd Thierryisgevaccineerd NewVariant debate analogrevolution internationalspacestation revolutionary quarantine getvaxxed Omnicronvariant vaccineren vaccinate vaccinatie vaccineer booster theater lists family antivirus covidConverations CovidConversations CovidIsNotOver evolution revolution internationalcoffeeday lockdowns omicron MyCovidRecord antivaccination coronacop list cinema SocialistTelly JournalistsDigiSec volk unlisted familyhistory volkszählung brutalist JustCovidThings cinemasins - Sat, 11 Jun 2022 19:30:54 UT + Sat, 25 Jun 2022 09:46:04 UT conferences - cop26 COP26 FOSDEM22 OnlineConferencing mthconf aaronswartzday worldle FOSDEM2021 stackconf fossnorth debconf debconf21 FOSDEM talk fossdem FreedomBoxSummit apconf2020 schmoocon Aktionscamp realtalk persco penguicon2021 letstalkaboutyes summit confidenceTricks agm libreplanet SeaGL2021 confindustria confluence minidebconf edw2021 maintainerssummit rc3worldleaks rightscon StopStalkerAds SeaGL penguicon emacsconf MCH2021 conferencecalls flossconference LGM2021 conferences LibrePlanet defcon emfcamp flossevent askpinetalk bc conf talks defcon201 rC3 rC3World FOSDEM21 conference mozfest flossconf bootcamp apconf ccc persconferentie GeekBeaconFest rC3one GenCon camp g7 C3 config penguicon2022 confy EYE2021 drenthe debconf20 confession confirmationbias offdemleaks OFFDEM IGF2021 confucius tintentalk FIBERFestival bias DebConf22 worldcon sfcamp FutureNow2022 BoysAndGirlsClub ossummit lets rent GUADEC revision xpub scams emf LFNW2022 EDPSconf2022 argotalk EDPS BlindParent inktalk Config2022 drupalcamp drupal pubconf2022 resolvconf MCH2022 cfp repl rp22 CPDP2022 + cop26 COP26 FOSDEM22 OnlineConferencing mthconf aaronswartzday worldle FOSDEM2021 stackconf fossnorth debconf debconf21 FOSDEM talk fossdem FreedomBoxSummit apconf2020 schmoocon Aktionscamp realtalk persco penguicon2021 letstalkaboutyes summit confidenceTricks agm libreplanet SeaGL2021 confindustria confluence minidebconf edw2021 maintainerssummit rc3worldleaks rightscon StopStalkerAds SeaGL penguicon emacsconf MCH2021 conferencecalls flossconference LGM2021 conferences LibrePlanet defcon emfcamp flossevent askpinetalk bc conf talks defcon201 rC3 rC3World FOSDEM21 conference mozfest flossconf bootcamp apconf ccc persconferentie GeekBeaconFest rC3one GenCon camp g7 C3 config penguicon2022 confy EYE2021 drenthe debconf20 confession confirmationbias offdemleaks OFFDEM IGF2021 confucius tintentalk FIBERFestival bias DebConf22 worldcon sfcamp FutureNow2022 BoysAndGirlsClub ossummit lets rent GUADEC revision xpub scams emf LFNW2022 EDPSconf2022 argotalk EDPS BlindParent inktalk Config2022 drupalcamp drupal pubconf2022 resolvconf MCH2022 cfp repl rp22 CPDP2022 oggcamp wis2022 AMRO22 - Sat, 11 Jun 2022 19:30:54 UT + Sat, 25 Jun 2022 09:46:04 UT environment adapt s crisisclimatica clim climatechaos climateadaptation - Sat, 11 Jun 2022 19:30:54 UT + Sat, 25 Jun 2022 09:46:04 UT astronomy plutocracy namespaces telescope immersspace mercury guide pluto planets galaxy spaceport venus mars bloodmoon amateurastronomy uranus spacex nebula astronomy hubblespacetelescope neptune space jupiter rpc blackhole asteroid BackYardAstronomy moon thehitchhikersguidetothegalaxy observatory euspace asteroidos saturn milkyway telescopes spacelarpcafe astrophotography fullmoon myspace finalspace jupitersghost turn JWST JamesWebbSpaceTelescope UnfoldTheUniverse Webb pluton jameswebb hubble NASAWebb deskspace cafe cope exoplanets exoplanet Astronomy copernicus theturntable squarespace spaceart redmars asteroids saturninoherran spacebear spaceship latentspaces Lightmoon - Sat, 11 Jun 2022 19:30:54 UT + Sat, 25 Jun 2022 09:46:04 UT news - FediNews collaborativejournalism ProgressReport technews report news 56kNews Newsfeed krautreporter basic Wikileaks newsletter aljazeera nothingnews newsflash contemporaneous_reports newsroom EUNews Worldnews rt bbc foxnews journalismisnotacrime News bbcbasic goodnews flashcrash doubledownnews bbcnews reuters newschool theguardian fieldreport badReporting newsboat journalism SkyNews crash lobsters breaking newsmax DailyTelegraphNZ minorityreport CGTNnews nytimes newsbots GravitasPlus flashmob guardian newspaper ipccreport NoContextNews newspapers oonireport SPIflash RapsNews PigNews snowcrash journalismus + FediNews collaborativejournalism ProgressReport technews report news 56kNews Newsfeed krautreporter basic Wikileaks newsletter aljazeera nothingnews newsflash contemporaneous_reports newsroom EUNews Worldnews rt bbc foxnews journalismisnotacrime News bbcbasic goodnews flashcrash doubledownnews bbcnews reuters newschool theguardian fieldreport badReporting newsboat journalism SkyNews crash lobsters breaking newsmax DailyTelegraphNZ minorityreport CGTNnews nytimes newsbots GravitasPlus flashmob guardian newspaper ipccreport NoContextNews newspapers oonireport SPIflash RapsNews PigNews snowcrash journalismus positivenews - Sat, 11 Jun 2022 19:30:54 UT + Sat, 25 Jun 2022 09:46:04 UT indymedia - fashernist networkmanager fashernista undercurrents hs2 dotcons visionontv geek tredtionalmedia indiemedia degeek globleIMC indymediaback pga mainstreaming indymedia closed stupid foo encryptionsist hs2IMC indymediaIMC network networkmonitoring roadsIMC stupidindivialisam roadstonowhere networkeffect lifecult closedweb avgeek monitor dotconsall omn roadstonowhereIMC kiss UKIMC fluffy 4opens openmedianetwork encryptionsists stupidiindividualism individualism techchurn 44opens stupidinvidualism undercurents dorcons deathcults meshnetwork techshit 4open newbooksnetwork geeky geekproblem deathcult techmess stupidindividualism geekproblm OGB encryptionist OXFORDIMC fashernistas geeks tornetwork stupidity auntienetwork geekprobloem geekproble + fashernist networkmanager fashernista undercurrents hs2 dotcons visionontv geek tredtionalmedia indiemedia degeek globleIMC indymediaback pga mainstreaming indymedia closed stupid foo encryptionsist hs2IMC indymediaIMC network networkmonitoring roadsIMC stupidindivialisam roadstonowhere networkeffect lifecult closedweb avgeek monitor dotconsall omn roadstonowhereIMC kiss UKIMC fluffy 4opens openmedianetwork encryptionsists stupidiindividualism individualism techchurn 44opens stupidinvidualism undercurents dorcons deathcults meshnetwork techshit 4open newbooksnetwork geeky geekproblem deathcult techmess stupidindividualism geekproblm OGB encryptionist OXFORDIMC fashernistas geeks tornetwork stupidity auntienetwork geekprobloem geekproble stupidbrain cure - Sat, 11 Jun 2022 19:30:54 UT + Sat, 25 Jun 2022 09:46:04 UT automotive stanford porsche kia tesla mazda toyota honda jaguar mitsubishi volvo lexus peugeot skoda mercedes suzuki hyundai renault bmw landrover vauxhall ford dacia citreon hartford volkswagen orfordness dartford - Sat, 11 Jun 2022 19:30:54 UT + Sat, 25 Jun 2022 09:46:04 UT technology - ObsoleteTechnology TechnoSolutionism technology offthegrid humanetechnology AvatarResearch tools LowtechSolutions literatools Heatingandcooling killerrobots techstruggles slowtech smartcities RobotsAgainstBabylon ElectronicFrontierFederation satellite cdrtools toolsneverdie grid starlinked slowcomputers TechPeerNetwork + ObsoleteTechnology TechnoSolutionism technology offthegrid humanetechnology AvatarResearch tools LowtechSolutions literatools Heatingandcooling killerrobots techstruggles slowtech smartcities RobotsAgainstBabylon ElectronicFrontierFederation satellite cdrtools toolsneverdie grid starlinked slowcomputers TechPeerNetwork smartmontools - Sat, 11 Jun 2022 19:30:54 UT + Sat, 25 Jun 2022 09:46:04 UT organization standardnotes nonprofit conceptmap mindmapping mapping mindmap notetoself note - Sat, 11 Jun 2022 19:30:54 UT + Sat, 25 Jun 2022 09:46:04 UT crafts equalexchange MadeWithFreeCAD repair topic_imadethis hackerexchange exchange quilts textile upholstery hackgregator gatos gato hackspacers nrw shack 3dmodeling dust3d hackerspaces hacklab tryhackme sanding solvespace sundiy craft wirtschafthacken papercrafts maker knitting hack workspace craftsmanship wood hacked calligraphy biohacking wip spacecrafts hacktheplanet jewelry diy textiles projects hackerweekend handicrafts Handicraft lovecraftcountry upcycling Minecraft woodworking 3dcad glass origami hackerexchange -]] makers nrwe quilting crafting sparkwoodand21 hacker quilt crafts rwe weaving 3dmodel handtools tinkering project hacking woodwork ceramics handmade embroidery shacks teardown Spyglass lockdownrepair elgato basketry Hacking weekendproject diyproject makerspace level4lockdown lockdownRepairs Homemaker Soundcraft hackrf nerd childrensartproject plottertoot therepairshop bushcraft warcraft warcraftiii warcraft3 projectwelove webcraft country hackspace projectgutenberg hacktoberfest theFurnace happynerding sewing gator woodcarving biohacker hackerculture glasses westknits children investigators racknerd artistsworkspace woodward greenwoodcarving repairday UpcyclingOfSoftware refurbishment alligatoah woodcrafting hacktivism projection writingexchange knit handmadedice quilters craftyfolks yarncraft textileart lovecraft sewingclothes MendingMay hacks globalInnovationGathering spark dungeonhack wildcrafting yarn ichglaubeshackt textilearts hackaday +]] makers nrwe quilting crafting sparkwoodand21 hacker quilt crafts rwe weaving 3dmodel handtools tinkering project hacking woodwork ceramics handmade embroidery shacks teardown Spyglass lockdownrepair elgato basketry Hacking weekendproject diyproject makerspace level4lockdown lockdownRepairs Homemaker Soundcraft hackrf nerd childrensartproject plottertoot therepairshop bushcraft warcraft warcraftiii warcraft3 projectwelove webcraft country hackspace projectgutenberg hacktoberfest theFurnace happynerding sewing gator woodcarving biohacker hackerculture glasses westknits children investigators racknerd artistsworkspace woodward greenwoodcarving repairday UpcyclingOfSoftware refurbishment alligatoah woodcrafting hacktivism projection writingexchange mending knit handmadedice quilters craftyfolks yarncraft textileart lovecraft sewingclothes MendingMay hacks globalInnovationGathering spark dungeonhack wildcrafting yarn ichglaubeshackt textilearts hackaday aggregator jewelryhacker historicalsewing Hacker - Sat, 11 Jun 2022 19:30:54 UT + Sat, 25 Jun 2022 09:46:04 UT housing - squat expeditionsasquatch + squat - Sat, 11 Jun 2022 19:30:54 UT + Sat, 25 Jun 2022 09:46:04 UT fashion - 80hairbands brasil fashionistas fashionesta bras fashionista fashion punkwear earrings socks patches feditats zebras socks5 lipstick makeup + 80hairbands brasil fashionistas fashionesta bras fashionista fashion punkwear earrings socks patches feditats zebras socks5 lipstick makeup costuming swatches trenchflannel - Sat, 11 Jun 2022 19:30:54 UT + Sat, 25 Jun 2022 09:46:04 UT political VoxPolitical demandprogress copservation housekeeping ram progress slaughterhouse rog cops houseless brogue progresso theteahouse bibliogram house hydrogen straming spycops teahouse progressivehouse techhouse clubhouse yayagram PDXdefendthehouseless pdxhouseless EnergyFlowDiagrams pr progress_note deephouse linguisticProgramming gancio rittenhouseverdict progressmakeperfect tram roadhouse punkhouseprofile pavlovshouse CrowdJustice owlhouse progressives fuckcops dollhouse drummersofthepunkhouse PunkhouseRollcall - Sat, 11 Jun 2022 19:30:54 UT + Sat, 25 Jun 2022 09:46:04 UT fantasy - tolkien harrypotter narnia myst wonderland middleearth splatterpunk dieselpunk ghoststory mythpunk fairytale discworld godzilla dune mythology ImaginaryWorlds savageworlds jrrtolkien + tolkien harrypotter narnia myst wonderland middleearth splatterpunk dieselpunk ghoststory mythpunk fairytale discworld godzilla dune mythology ImaginaryWorlds savageworlds jrrtolkien ZhorKhat - Sat, 11 Jun 2022 19:30:54 UT + Sat, 25 Jun 2022 09:46:04 UT geography - photographerlife theCartographer graph cartography typography torygraph phorography graphs graphicdesigner PhotographyChallenge + photographerlife theCartographer graph cartography typography torygraph phorography graphs graphicdesigner PhotographyChallenge qpwgraph - Sat, 11 Jun 2022 19:30:54 UT + Sat, 25 Jun 2022 09:46:04 UT ethics ethicalsource licenses digitalethics ethicaltech ethics ethicallicense ethicswashing ethical ethicsintech call callout wash techethics calli edtechethics Senfcall hackerethics callforsubmissions ethicaldesign unethical - Sat, 11 Jun 2022 19:30:54 UT + Sat, 25 Jun 2022 09:46:04 UT accessibility - disability screenreaders visuallyimpaired you a11y accessibility captionyourimages hardofhearing alttext orca WhiteCane disabilitytwitter BlindTwitter blindness blind images + disability screenreaders visuallyimpaired you a11y accessibility captionyourimages hardofhearing alttext orca WhiteCane disabilitytwitter BlindTwitter blindness blind images image - Sat, 11 Jun 2022 19:30:54 UT + Sat, 25 Jun 2022 09:46:04 UT licenses - right noplacetohide rightclicker commongoods creativecommonsrocks voice violation agplv3 tootle commoning commonvoice CommunitySource place copyright commonspoly creative netcommons common gpl plugplugplug copyrightlaw commonplacebook license EthicalSource questioncopyright tragedyofthecommons cc0 creativecommons cc ccby creativestudio copyleft tvlicense placebo commoncarrier creatives voiceacting acting righttobeforgotten datarights prosperitylicense LPGL + right noplacetohide rightclicker commongoods creativecommonsrocks voice violation agplv3 tootle commoning commonvoice CommunitySource place copyright commonspoly creative netcommons common gpl plugplugplug copyrightlaw commonplacebook license EthicalSource questioncopyright tragedyofthecommons cc0 creativecommons cc CreativeCommons ccby creativestudio copyleft tvlicense placebo commoncarrier creatives voiceacting acting righttobeforgotten datarights prosperitylicense LPGL - Sat, 11 Jun 2022 19:30:54 UT + Sat, 25 Jun 2022 09:46:04 UT gardening - coindesk bitsoil Gardening seedstarting BlagueDeCodeur sporespondence blockade inde mastogarden kinder communitygardening som deno composting soil sehenswert cabbage bundeswehr opensourceseeds onions lettuce blossoms gardenersofmastodon datenschleuder florespondence garten rinder succulent mulberry weekendGardeningThoughts cherryblossoms garden thyme flower horticulture DailyFlowers Schlachthofblockade cherryblossom agriculture acu vegetable plant bricolage financialindependence plasticflowersneverdie kinderbijslag permaculture teracube hens papuamerdeka Auflagen wildflowers lag independenceday CompanionPlanting vlag gardens independence flowers seed kale seedvault plants thegardenpath devilslettuce vegetables thegarden fahrräder gardenersworld recyclage golden beekeeping toeslagenaffaire seeds Opensourcegarden toeslagenschandaal vegetablegarden implant plantuml implants BionicImplants seedsaving tomatoes weekend kirchensteuer wildGarden Naturgarten wildGardening sunflower ConnectingGardens compost compostmag regrowth kalendarz cinder succulents indexeddb theGreenhouse masto Linden houseplants potplants mastopedia forestgardens dkmastodon urbangardening nativeplants mastodo flowerpress kinderarbeid bankholidayweekend mastoadmim todo cabbages Eggplants mastobot foodplants succulentsunday pond mastoot Plants Pbindef OrganicGrowing communitygarden cherry + coindesk bitsoil Gardening seedstarting BlagueDeCodeur sporespondence blockade inde mastogarden kinder communitygardening som deno composting soil sehenswert cabbage bundeswehr opensourceseeds onions lettuce blossoms gardenersofmastodon datenschleuder florespondence garten rinder succulent mulberry weekendGardeningThoughts cherryblossoms garden thyme flower horticulture DailyFlowers Schlachthofblockade cherryblossom agriculture acu vegetable plant bricolage financialindependence plasticflowersneverdie kinderbijslag permaculture teracube hens papuamerdeka Auflagen wildflowers lag independenceday CompanionPlanting vlag gardens independence flowers seed kale seedvault plants thegardenpath devilslettuce vegetables thegarden fahrräder gardenersworld recyclage golden beekeeping toeslagenaffaire seeds Opensourcegarden toeslagenschandaal vegetablegarden implant plantuml implants BionicImplants seedsaving tomatoes weekend kirchensteuer wildGarden Naturgarten wildGardening sunflower ConnectingGardens compost compostmag regrowth kalendarz cinder succulents indexeddb theGreenhouse masto Linden houseplants potplants mastopedia forestgardens dkmastodon urbangardening nativeplants mastodo flowerpress antiLawn kinderarbeid bankholidayweekend mastoadmim todo cabbages Eggplants mastobot foodplants succulentsunday pond mastoot Plants Pbindef OrganicGrowing communitygarden cherry lazymastodon mastoquestion allotment - Sat, 11 Jun 2022 19:30:54 UT + Sat, 25 Jun 2022 09:46:04 UT birds - slaves RainbowBeeEater aves birb pigeon cawbird pigeonlover bird birdposting birdwatch birding birbposting birdwatching pigeons birbs birdbutt blackbird deadbird + slaves RainbowBeeEater aves birb pigeon cawbird pigeonlover bird birdposting birdwatch birding birbposting birdwatching pigeons birbs birdbutt blackbird deadbird dead - Sat, 11 Jun 2022 19:30:54 UT + Sat, 25 Jun 2022 09:46:04 UT photos photoediting smartphonephotography nikon 90mm photography fujifilm rewild photogrammetry wildlifephotography wild affinityphoto photocló photo photographe photogrpahy photographer tokyocameraclub nikond90 photos macrophotography photoshop photographie photovoltaik seancephoto camera crops photomanager macropod uwphoto wildbiene macronie photographers cameras fossphotography phototherapie phonephotography myphoto rewilding naturephotography microplastics fediphoto picture wildfood macro intothewild streetphotography FujinonXF90mm wildcat photoreference crop phototherapy pictures RandomPicFromThePast PicDump micropub editing aclu libcamera me macrodroid wilders videoediting mastophoto street photon filmcameras photovoltaic init - Sat, 11 Jun 2022 19:30:54 UT + Sat, 25 Jun 2022 09:46:04 UT generations kidsthesedays - Sat, 11 Jun 2022 19:30:54 UT + Sat, 25 Jun 2022 09:46:04 UT audio dtm feed audiophile liveaudio audioproduction feeds pulseaudio audi webaudio feedbackd audioprogramming mastoaudio audioengineering audience audiogames audiofeedback audio auditoriasocial audioengineer audiophiles AudioDescription plaudit audiobook SaudiArabia jackaudio - Sat, 11 Jun 2022 19:30:54 UT + Sat, 25 Jun 2022 09:46:04 UT cryptocurrency shitcoin cryptobro crytocurrency cryptominer CryptoBarons cryptocurrencies cryptocurrency cryptoart cryptolalaland cryptotokens crypto cryptobros PinkCoin Cryptocurrency Blockchain Ethereum Dogecoin DogeCoin zcash Zcash Litecoin Cardano NFT ProofOfWork ProofOfStake currency cryptofail cryptoDouchebags tokens cryptocrash Britcoin cryptononsense dLive - Sat, 11 Jun 2022 19:30:54 UT + Sat, 25 Jun 2022 09:46:04 UT ai gan machinelearning openai EthicsInAI ai smartcity DeepThought DALLE2 - Sat, 11 Jun 2022 19:30:54 UT + Sat, 25 Jun 2022 09:46:04 UT cycling - bicycle bicyles cycle bic cycling bicycleday DataRecycling arabic bike motorbike reusereducerecycle bikeing cyclingtour thingsonbikes openbikesensor bikeways Snowbike cyclist mastobikes bicycles ebike coopcycle cargobikethoughts CoffeeneuringChallenge2021 Coffeeneuring bicycling unicyclist motorcycle catacycle unicycle halle bikenurse WorldBicycleDay + bicycle bicyles cycle bic cycling bicycleday DataRecycling arabic bike motorbike reusereducerecycle bikeing cyclingtour thingsonbikes openbikesensor bikeways Snowbike cyclist mastobikes bicycles ebike coopcycle cargobikethoughts CoffeeneuringChallenge2021 Coffeeneuring bicycling unicyclist motorcycle catacycle unicycle halle bikenurse WorldBicycleDay procycling - Sat, 11 Jun 2022 19:30:54 UT + Sat, 25 Jun 2022 09:46:04 UT photography - peppercarrotmini NoShothgunParsers pea CanonSL2 landscapephotography landscapeart XSystem darktable photograph peppercarrot speakers hippeastrum landscape blackandwhite hot theObservatory birdphotography bwphotography + peppercarrotmini NoShothgunParsers pea CanonSL2 landscapephotography landscapeart XSystem darktable photograph peppercarrot speakers hippeastrum landscape blackandwhite hot theObservatory birdphotography bwphotography infraredphotography - Sat, 11 Jun 2022 19:30:54 UT + Sat, 25 Jun 2022 09:46:04 UT facts lifehacking funfact lifehack VantaFacts lifehacks trivia - Sat, 11 Jun 2022 19:30:54 UT + Sat, 25 Jun 2022 09:46:04 UT war - ru DonavynCoffey Myanmarmilitarycoup civilwar antiwar bomber coup weapon tank handforth landmine tankies military autonomousweapons army Etankstelle weaponsofmathdestruction conflict navy warplane fort guns Myanmarcoup weapons siege hbomberguy battle WMD wmd airforce cyberweapons ukraineconflict hbomberyguy rosinenbomber Stankface salvationarmy tankie fortuyn directedenergyweapons defence directed banallguns + ru DonavynCoffey Myanmarmilitarycoup civilwar antiwar bomber coup weapon tank handforth landmine tankies military autonomousweapons army Etankstelle weaponsofmathdestruction conflict navy warplane fort guns Myanmarcoup weapons siege hbomberguy battle WMD wmd airforce cyberweapons ukraineconflict hbomberyguy rosinenbomber Stankface salvationarmy tankie fortuyn directedenergyweapons defence directed banallguns battlestation - Sat, 11 Jun 2022 19:30:54 UT + Sat, 25 Jun 2022 09:46:04 UT techbros bubbles bubble color redbubble einfachredeneben redditodicittadinanza coloredpencil redhat redwood hackernews weareredhat redmi red reddit redon redis VendrediNouka redshift optreden sec thehackernews - Sat, 11 Jun 2022 19:30:54 UT + Sat, 25 Jun 2022 09:46:04 UT month - maythe4thbewithyou yt ots april juneteenth PrideMonth2021 bots 1may july VeganMay march pridemonth chapril marchofrobots2021 october november august june blackherstorymonth december september augustusinc may feburary jejune PrideMonth january marchofrobots eternalseptember blackhistorymonth march4justice month robots maythe4th blacktheirstorymonth stopkillerrobots september11 black lovedeathrobots happypridemonth + maythe4thbewithyou yt ots april juneteenth PrideMonth2021 bots 1may july VeganMay march pridemonth chapril marchofrobots2021 october november august june blackherstorymonth december september augustusinc may feburary jejune PrideMonth january marchofrobots eternalseptember blackhistorymonth march4justice month robots maythe4th blacktheirstorymonth stopkillerrobots september11 black lovedeathrobots happypridemonth blackbloc blackmail - Sat, 11 Jun 2022 19:30:54 UT + Sat, 25 Jun 2022 09:46:04 UT cats Cat dailycatpic dxp MastoCats DailyCatVid Cats katze kotorico kot ketikoti qualitätskatze CatsOfMastodon Catshuis Leopard SpaceCatsFightFascism CatBellies catbellies LapCats qualitätskatzen katzen Space SpaceTalkWednesday - Sat, 11 Jun 2022 19:30:54 UT + Sat, 25 Jun 2022 09:46:04 UT years newyearsresolutions resolutions Year2020 year 1yrago newyear 5yrsago yearoftheox newyearseve resolution happynewyear2022 newyears KDE25years 35years - Sat, 11 Jun 2022 19:30:54 UT + Sat, 25 Jun 2022 09:46:04 UT fiction ABoringDystopia interactivefiction cyberpunk VersGNRWstoppen thehobbit fiction microfiction stopCGL nonfiction DystopianCyberpunkFuture stoptmx top flashfiction cyberpunk2020 genrefiction Nantegah batman jurassicpark climatefiction DraculaDaily - Sat, 11 Jun 2022 19:30:54 UT + Sat, 25 Jun 2022 09:46:04 UT garbage - Anonymous cumbria documentation no QAnonAnonymous docu cardano documents cum u ChanCulture Anonymouse documentaire + Anonymous cumbria documentation no QAnonAnonymous docu cardano documents cum u ChanCulture Anonymouse documentaire documentaries - Sat, 11 Jun 2022 19:30:54 UT + Sat, 25 Jun 2022 09:46:04 UT disability ableism disabled ableismus - Sat, 11 Jun 2022 19:30:54 UT + Sat, 25 Jun 2022 09:46:04 UT travel tax travellers taxi airtravel - Sat, 11 Jun 2022 19:30:54 UT + Sat, 25 Jun 2022 09:46:04 UT identity genx boomer genz zoomer boomertröt - Sat, 11 Jun 2022 19:30:54 UT + Sat, 25 Jun 2022 09:46:04 UT organisations foundation scpfoundation scp greenwebfoundation - Sat, 11 Jun 2022 19:30:54 UT + Sat, 25 Jun 2022 09:46:04 UT welfare CreditReporting universalcredit welfare socialwelfare credit socialcreditscore - Sat, 11 Jun 2022 19:30:54 UT + Sat, 25 Jun 2022 09:46:04 UT scotland lan atlanta glasgow highlands edinburgh loch - Sat, 11 Jun 2022 19:30:54 UT + Sat, 25 Jun 2022 09:46:04 UT antisocial stalking cyberstalking antivaxx antivaxxers - Sat, 11 Jun 2022 19:30:54 UT + Sat, 25 Jun 2022 09:46:04 UT obituaries - ueberwachung tripadvisor rip JavaScriptSucks ratgeber obit ecmascript keyenberg raspberripi döppersberg cybergrooming Gudensberg überblick obituaries ber rubber cyber cyberessentials essen Java + ueberwachung tripadvisor rip JavaScriptSucks ratgeber obit ecmascript keyenberg raspberripi döppersberg cybergrooming Gudensberg überblick obituaries ber rubber cyber cyberessentials essen Java JavaScriptScrollbars - Sat, 11 Jun 2022 19:30:54 UT + Sat, 25 Jun 2022 09:46:04 UT introductions reintroductions newhere firsttoot recommends stt Introduction Introductions reintroduction introductons introduction intro introductions introducton introduce introvert - Sat, 11 Jun 2022 19:30:54 UT + Sat, 25 Jun 2022 09:46:04 UT microcontroller e kontrollieren microcontroller trolls troll arduinoide arduino LogicController chatkontrolle trollen - Sat, 11 Jun 2022 19:30:54 UT + Sat, 25 Jun 2022 09:46:04 UT design userfriendly friendly rf - Sat, 11 Jun 2022 19:30:54 UT + Sat, 25 Jun 2022 09:46:04 UT election Rainbowvote voted vote - Sat, 11 Jun 2022 19:30:54 UT + Sat, 25 Jun 2022 09:46:04 UT moderation fedblock - Sat, 11 Jun 2022 19:30:54 UT + Sat, 25 Jun 2022 09:46:04 UT languages lojban gaelic multilanguage - Sat, 11 Jun 2022 19:30:54 UT + Sat, 25 Jun 2022 09:46:04 UT industrial powerplants - Sat, 11 Jun 2022 19:30:54 UT + Sat, 25 Jun 2022 09:46:04 UT microcontrollers esp32c3 microcontrollers esp8266 esp32 micro microscheme scheme - Sat, 11 Jun 2022 19:30:54 UT + Sat, 25 Jun 2022 09:46:04 UT organisation InstitutionalMemory institutional - Sat, 11 Jun 2022 19:30:54 UT + Sat, 25 Jun 2022 09:46:04 UT skills gardening guerrillagardening ICanDo indoorgardening - Sat, 11 Jun 2022 19:30:54 UT + Sat, 25 Jun 2022 09:46:04 UT memes tired - Sat, 11 Jun 2022 19:30:54 UT + Sat, 25 Jun 2022 09:46:04 UT sailing theBoatyard boatingeurooe - Sat, 11 Jun 2022 19:30:54 UT + Sat, 25 Jun 2022 09:46:04 UT parenting dadposting - Sat, 11 Jun 2022 19:30:54 UT + Sat, 25 Jun 2022 09:46:04 UT jewelry - bracelet amulet necklace race + bracelet amulet necklace race strace - Sat, 11 Jun 2022 19:30:54 UT + Sat, 25 Jun 2022 09:46:04 UT architecture concrete - Sat, 11 Jun 2022 19:30:54 UT + Sat, 25 Jun 2022 09:46:04 UT licences TVRights - Sat, 11 Jun 2022 19:30:54 UT + Sat, 25 Jun 2022 09:46:04 UT exhibitions theglassroom WhatTheFutureWants - Sat, 11 Jun 2022 19:30:54 UT + Sat, 25 Jun 2022 09:46:04 UT blogs lesswrong - Sat, 11 Jun 2022 19:30:54 UT + Sat, 25 Jun 2022 09:46:04 UT military defense - Sat, 11 Jun 2022 19:30:54 UT + Sat, 25 Jun 2022 09:46:04 UT hospitality OHN OpenHospitalityNetwork Couchers couchsurfing - Sat, 11 Jun 2022 19:30:54 UT + Sat, 25 Jun 2022 09:46:04 UT corporations palantir starbucks - Sat, 11 Jun 2022 19:30:54 UT + Sat, 25 Jun 2022 09:46:04 UT decades 2000s 1908s eighties - Sat, 11 Jun 2022 19:30:54 UT + Sat, 25 Jun 2022 09:46:04 UT space nasa SolarSail SpaceTalkTuesday - Sat, 11 Jun 2022 19:30:54 UT + Sat, 25 Jun 2022 09:46:04 UT toys firstlegoleague LEGO lego - Sat, 11 Jun 2022 19:30:54 UT + Sat, 25 Jun 2022 09:46:04 UT mathematics pi - Sat, 11 Jun 2022 19:30:54 UT + Sat, 25 Jun 2022 09:46:04 UT time dst clock bst gmt utc cdt edt mdt pdt brt amt yekt msk cst awst acst aest acdt aedt clst wgst minutes seconds mins secs moomins - Sat, 11 Jun 2022 19:30:54 UT + Sat, 25 Jun 2022 09:46:04 UT academic professor academic academia professorlife academiclife fairyAcademia springer FOSSacademic academicjobs - Sat, 11 Jun 2022 19:30:54 UT + Sat, 25 Jun 2022 09:46:04 UT accommodation househunting accommodation MovingHouse - Sat, 11 Jun 2022 19:30:54 UT + Sat, 25 Jun 2022 09:46:04 UT offgrid offgrid - Sat, 11 Jun 2022 19:30:54 UT + Sat, 25 Jun 2022 09:46:04 UT movies harryhausen FilmFreedom TheManWhoFellToEarth - Sat, 11 Jun 2022 19:30:54 UT + Sat, 25 Jun 2022 09:46:04 UT sharing giveaway - Sat, 11 Jun 2022 19:30:54 UT + Sat, 25 Jun 2022 09:46:04 UT quotes quoteoftheday GeekQuotes CelebQuotes - Sat, 11 Jun 2022 19:30:54 UT + Sat, 25 Jun 2022 09:46:04 UT prizes LevchinPrize - Sat, 11 Jun 2022 19:30:54 UT + Sat, 25 Jun 2022 09:46:04 UT companies IkeaFail SimulmaticsCorporation - Sat, 11 Jun 2022 19:30:54 UT + Sat, 25 Jun 2022 09:46:04 UT festivals geekfaeries - Sat, 11 Jun 2022 19:30:54 UT + Sat, 25 Jun 2022 09:46:04 UT diff --git a/epicyon-profile.css b/epicyon-profile.css index daccec120..f2c310edf 100644 --- a/epicyon-profile.css +++ b/epicyon-profile.css @@ -21,6 +21,7 @@ --header-bg-color: #282c37; --main-bg-color: #282c37; --post-bg-color: #282c37; + --code-color: lightblue; --column-left-color: #282c37; --link-bg-color: #282c37; --dropdown-fg-color: #dddddd; @@ -127,6 +128,7 @@ --quote-font-size-mobile: 120%; --quote-font-size-tiny: 60%; --line-spacing: 180%; + --code-spacing: 100%; --line-spacing-newswire: 120%; --newswire-item-moderated-color: white; --newswire-date-moderated-color: white; @@ -248,6 +250,16 @@ body, html { image-rendering: var(--rendering); } +code { + color: var(--code-color); + white-space: pre; + line-height: var(--code-spacing); +} + +ul.md_list { + color: var(--main-fg-color); +} + audio { width: 100%; } diff --git a/markdown.py b/markdown.py index 6434962bd..f03737fce 100644 --- a/markdown.py +++ b/markdown.py @@ -8,6 +8,38 @@ __status__ = "Production" __module_group__ = "Web Interface" +def _markdown_get_sections(markdown: str) -> []: + """Returns a list of sections for markdown + """ + if '' not in markdown: + return [markdown] + lines = markdown.split('\n') + sections = [] + section_text = '' + section_active = False + ctr = 0 + for line in lines: + if ctr > 0: + section_text += '\n' + + if not section_active: + if '' in line: + section_active = True + sections.append(section_text) + section_text = '' + else: + if '' in line: + section_active = False + sections.append(section_text) + section_text = '' + + section_text += line + ctr += 1 + if section_text.strip(): + sections.append(section_text) + return sections + + def _markdown_emphasis_html(markdown: str) -> str: """Add italics and bold html markup to the given markdown """ @@ -17,39 +49,73 @@ def _markdown_emphasis_html(markdown: str) -> str: '**.': '.', '**:': ':', '**;': ';', + '?**': '?', + '\n**': '\n', '**,': ',', '**\n': '\n', + '(**': '()', + '**)': ')', + '>**': '>', + '**<': '<', + '>*': '>', + '*<': '<', ' *': ' ', '* ': ' ', + '?*': '?', + '\n*': '\n', '*.': '.', '*:': ':', '*;': ';', + '(*': '()', + '*)': ')', '*,': ',', '*\n': '\n', - ' _': ' ', - '_.': '.', - '_:': ':', - '_;': ';', - '_,': ',', - '_\n': '\n' + '(_': '(', + '_)': ')', + ' _': ' ', + '_ ': ' ', + '_.': '.', + '_:': ':', + '_;': ';', + '_,': ',', + '_\n': '\n', + ' `': ' ', + '`.': '.', + '`:': ':', + "`'": "'", + "(`": "(", + "`)": ")", + '`;': ';', + '`,': ',', + '`\n': '\n', + '` ': ' ' } - for md_str, html in replacements.items(): - markdown = markdown.replace(md_str, html) - if markdown.startswith('**'): - markdown = markdown[2:] + '' - elif markdown.startswith('*'): - markdown = markdown[1:] + '' - elif markdown.startswith('_'): - markdown = markdown[1:] + '' + if section_text.startswith('**'): + section_text = section_text[2:] + '' + elif section_text.startswith('*'): + section_text = section_text[1:] + '' + elif section_text.startswith('_'): + section_text = section_text[1:] + '' + + if section_text.endswith('**'): + section_text = section_text[:len(section_text) - 2] + '' + elif section_text.endswith('*'): + section_text = section_text[:len(section_text) - 1] + '' + elif section_text.endswith('_'): + section_text = section_text[:len(section_text) - 1] + '' + + if section_text.strip(): + markdown += section_text return markdown @@ -61,7 +127,19 @@ def _markdown_replace_quotes(markdown: str) -> str: lines = markdown.split('\n') result = '' prev_quote_line = None + code_section = False for line in lines: + # avoid code sections + if not code_section: + if '' in line: + code_section = True + else: + if '' in line: + code_section = False + if code_section: + result += line + '\n' + continue + if '> ' not in line: result += line + '\n' prev_quote_line = None @@ -90,56 +168,176 @@ def _markdown_replace_quotes(markdown: str) -> str: return result -def _markdown_replace_links(markdown: str, images: bool = False) -> str: +def _markdown_replace_links(markdown: str) -> str: """Replaces markdown links with html Optionally replace image links """ - replace_links = {} - text = markdown - start_chars = '[' - if images: - start_chars = '![' - while start_chars in text: - if ')' not in text: - break - text = text.split(start_chars, 1)[1] - markdown_link = start_chars + text.split(')')[0] + ')' - if ']' not in markdown_link or \ - '(' not in markdown_link: - text = text.split(')', 1)[1] + sections = _markdown_get_sections(markdown) + result = '' + for section_text in sections: + if '' in section_text or \ + '](' not in section_text: + result += section_text continue - if not images: - replace_links[markdown_link] = \ - '' + \ - markdown_link.split(start_chars)[1].split(']')[0] + \ - '' + sections_links = section_text.split('](') + ctr = 0 + for link_section in sections_links: + if ctr == 0: + ctr += 1 + continue + if '[' in sections_links[ctr - 1] and \ + ')' in link_section: + link_text = sections_links[ctr - 1].split('[')[-1] + link_url = link_section.split(')')[0] + replace_str = '[' + link_text + '](' + link_url + ')' + link_text = link_text.replace('`', '') + if '!' + replace_str in section_text: + html_link = \ + '' + link_text + '' + section_text = \ + section_text.replace('!' + replace_str, html_link) + if replace_str in section_text: + html_link = \ + '' + \ + link_text + '' + section_text = \ + section_text.replace(replace_str, html_link) + ctr += 1 + result += section_text + return result + + +def _markdown_replace_bullet_points(markdown: str) -> str: + """Replaces bullet points + """ + lines = markdown.split('\n') + bullet_style = ('* ', ' * ', '- ', ' - ') + bullet_matched = '' + start_line = -1 + line_ctr = 0 + changed = False + code_section = False + for line in lines: + if not line.strip(): + # skip blank lines + line_ctr += 1 + continue + + # skip over code sections + if not code_section: + if '' in line: + code_section = True else: - replace_links[markdown_link] = \ - '' + \
-                markdown_link.split(start_chars)[1].split(']')[0] + \
-                '' - text = text.split(')', 1)[1] - for md_link, html_link in replace_links.items(): - markdown = markdown.replace(md_link, html_link) + if '' in line: + code_section = False + if code_section: + line_ctr += 1 + continue + + if not bullet_matched: + for test_str in bullet_style: + if line.startswith(test_str): + bullet_matched = test_str + start_line = line_ctr + break + else: + if not line.startswith(bullet_matched): + for index in range(start_line, line_ctr): + line_text = lines[index].replace(bullet_matched, '', 1) + if index == start_line: + lines[index] = \ + '
    \n
  • ' + line_text + '
  • ' + elif index == line_ctr - 1: + lines[index] = '
  • ' + line_text + '
  • \n
' + else: + lines[index] = '
  • ' + line_text + '
  • ' + changed = True + start_line = -1 + bullet_matched = '' + line_ctr += 1 + + if not changed: + return markdown + + markdown = '' + for line in lines: + markdown += line + '\n' + return markdown + + +def _markdown_replace_code(markdown: str) -> str: + """Replaces code sections within markdown + """ + lines = markdown.split('\n') + start_line = -1 + line_ctr = 0 + changed = False + section_active = False + for line in lines: + if not line.strip(): + # skip blank lines + line_ctr += 1 + continue + if line.startswith('```'): + if not section_active: + start_line = line_ctr + section_active = True + else: + lines[start_line] = '' + lines[line_ctr] = '' + section_active = False + changed = True + line_ctr += 1 + + if not changed: + return markdown + + markdown = '' + for line in lines: + markdown += line + '\n' + return markdown + + +def markdown_example_numbers(markdown: str) -> str: + """Ensures that example numbers in the ActivityPub specification + document are sequential + """ + lines = markdown.split('\n') + example_number = 1 + line_ctr = 0 + for line in lines: + if not line.strip(): + # skip blank lines + line_ctr += 1 + continue + if line.startswith('##') and '## Example ' in line: + header_str = line.split(' Example ')[0] + lines[line_ctr] = header_str + ' Example ' + str(example_number) + example_number += 1 + line_ctr += 1 + + markdown = '' + for line in lines: + markdown += line + '\n' return markdown def markdown_to_html(markdown: str) -> str: """Converts markdown formatted text to html """ + markdown = _markdown_replace_code(markdown) + markdown = _markdown_replace_bullet_points(markdown) markdown = _markdown_replace_quotes(markdown) markdown = _markdown_emphasis_html(markdown) - markdown = _markdown_replace_links(markdown, True) markdown = _markdown_replace_links(markdown) # replace headers lines_list = markdown.split('\n') html_str = '' ctr = 0 + code_section = False titles = { "h5": '#####', "h4": '####', @@ -149,13 +347,37 @@ def markdown_to_html(markdown: str) -> str: } for line in lines_list: if ctr > 0: - html_str += '
    ' + if not code_section: + html_str += '
    \n' + else: + html_str += '\n' + + # avoid code sections + if not code_section: + if '' in line: + code_section = True + else: + if '' in line: + code_section = False + if code_section: + html_str += line + ctr += 1 + continue + for hsh, hashes in titles.items(): if line.startswith(hashes): line = line.replace(hashes, '').strip() - line = '<' + hsh + '>' + line + '' + line = '<' + hsh + '>' + line + '\n' ctr = -1 break html_str += line ctr += 1 + + html_str = html_str.replace('
    ', '') + html_str = html_str.replace('
    ', '
    ') + + html_str = html_str.replace('

      ', + '
        ') + html_str = html_str.replace('
        ', '') + return html_str diff --git a/specification/activitypub-tutorial-1.png b/specification/activitypub-tutorial-1.png new file mode 100644 index 000000000..198e24282 Binary files /dev/null and b/specification/activitypub-tutorial-1.png differ diff --git a/specification/activitypub-tutorial-2.png b/specification/activitypub-tutorial-2.png new file mode 100644 index 000000000..16d0fea1a Binary files /dev/null and b/specification/activitypub-tutorial-2.png differ diff --git a/specification/activitypub-tutorial-3.png b/specification/activitypub-tutorial-3.png new file mode 100644 index 000000000..23eee2286 Binary files /dev/null and b/specification/activitypub-tutorial-3.png differ diff --git a/specification/activitypub-tutorial-4.png b/specification/activitypub-tutorial-4.png new file mode 100644 index 000000000..3e6ed7a88 Binary files /dev/null and b/specification/activitypub-tutorial-4.png differ diff --git a/specification/activitypub-tutorial-5.png b/specification/activitypub-tutorial-5.png new file mode 100644 index 000000000..5bf5f9418 Binary files /dev/null and b/specification/activitypub-tutorial-5.png differ diff --git a/specification/activitypub.md b/specification/activitypub.md new file mode 100644 index 000000000..d758775ad --- /dev/null +++ b/specification/activitypub.md @@ -0,0 +1,1207 @@ +# ActivityPub Protocol Specification +## Abstract +The ActivityPub protocol is a decentralized social networking protocol based upon the [ActivityStreams 2.0](https://www.w3.org/TR/activitystreams-core) data format. It provides a client to server API for creating, updating and deleting content, as well as a federated server to server API for delivering notifications and content. + +## Status of This Document +*This document is based upon the 2018 version of the [W3C ActivityPub specification](https://www.w3.org/TR/activitypub). Any alterations are for the purposes of more accurately reflecting the actual use of the protocol, with the aim of creating less confusion for new implementors.* + +# 1. Overview +ActivityPub provides two layers: + + * **A server to server federation protocol** (so decentralized websites can share information) + * **A client to server protocol** (so users, including real-world users, bots, and other automated processes, can communicate with ActivityPub using their accounts on servers, from a phone or desktop or web application or whatever) + +ActivityPub implementations can implement just one of these things or both of them. However, once you've implemented one, it isn't too many steps to implement the other, and there are a lot of benefits to both (making your website part of the decentralized social web, and being able to use clients and client libraries that work across a wide variety of social websites). + +In ActivityPub, a user is represented by "actors" via the user's accounts on servers, sometimes also called "instances". User's accounts on different servers correspond to different actors. Every Actor has: + * **An `inbox`:** How they get messages from the world + * **An `outbox`:** How they send messages to others +![An Actor with inbox and outbox](activitypub-tutorial-1.png) + +These are endpoints, or really, just URLs which are listed in the ActivityPub actor's ActivityStreams description. (More on [ActivityStreams](https://www.w3.org/TR/activitystreams-core) later). + +Here's an example of the actor record of our friend Alyssa P. Hacker: + +### Example 1 +``` json +{ + "@context": [ + "https://www.w3.org/ns/activitystreams", + "https://w3id.org/security/v1", + { + "Curve25519Key": "toot:Curve25519Key", + "Device": "toot:Device", + "Ed25519Key": "toot:Ed25519Key", + "Ed25519Signature": "toot:Ed25519Signature", + "EncryptedMessage": "toot:EncryptedMessage", + "PropertyValue": "schema:PropertyValue", + "alsoKnownAs": {"@id": "as:alsoKnownAs", "@type": "@id"}, + "cipherText": "toot:cipherText", + "claim": {"@id": "toot:claim", "@type": "@id"}, + "deviceId": "toot:deviceId", + "devices": {"@id": "toot:devices", "@type": "@id"}, + "discoverable": "toot:discoverable", + "featured": {"@id": "toot:featured", "@type": "@id"}, + "featuredTags": {"@id": "toot:featuredTags", "@type": "@id"}, + "fingerprintKey": {"@id": "toot:fingerprintKey", "@type": "@id"}, + "focalPoint": {"@container": "@list", "@id": "toot:focalPoint"}, + "identityKey": {"@id": "toot:identityKey", "@type": "@id"}, + "manuallyApprovesFollowers": "as:manuallyApprovesFollowers", + "messageFranking": "toot:messageFranking", + "messageType": "toot:messageType", + "movedTo": {"@id": "as:movedTo", "@type": "@id"}, + "publicKeyBase64": "toot:publicKeyBase64", + "schema": "http://schema.org#", + "suspended": "toot:suspended", + "toot": "http://joinmastodon.org/ns#", + "value": "schema:value" + } + ], + "alsoKnownAs": ["https://activitypubhackers/users/Alyssa"], + "attachment": [{"name": "XMPP", + "type": "PropertyValue", + "value": "alyssa@chatdomain"}], + "devices": "https://instancedomain/users/Alyssa/collections/devices", + "discoverable": True, + "endpoints": {"sharedInbox": "https://instancedomain/inbox"}, + "featured": "https://instancedomain/users/Alyssa/collections/featured", + "featuredTags": "https://instancedomain/users/Alyssa/collections/tags", + "followers": "https://instancedomain/users/Alyssa/followers", + "following": "https://instancedomain/users/Alyssa/following", + "icon": {"mediaType": "image/png", + "type": "Image", + "url": "https://instancedomain/accounts/avatars/abc.png"}, + "id": "https://instancedomain/users/Alyssa", + "image": {"mediaType": "image/jpeg", + "type": "Image", + "url": "https://instancedomain/accounts/headers/def.jpeg"}, + "inbox": "https://instancedomain/users/Alyssa/inbox", + "manuallyApprovesFollowers": False, + "name": "Alyssa", + "outbox": "https://instancedomain/users/Alyssa/outbox", + "preferredUsername": "Alyssa", + "publicKey": {"id": "https://instancedomain/users/Alyssa#main-key", + "owner": "https://instancedomain/users/Alyssa", + "publicKeyPem": "-----BEGIN PUBLIC KEY-----\n" + "..." + "-----END PUBLIC KEY-----\n"}, + "published": "2016-03-16T00:00:00Z", + "summary": "

        Hacker in residence

        ", + "tag": [], + "type": "Person", + "url": "https://instancedomain/@Alyssa" +} +``` + +ActivityPub uses [ActivityStreams](https://www.w3.org/TR/activitystreams-core) for its [vocabulary](https://www.w3.org/TR/activitystreams-vocabulary). This is pretty great because ActivityStreams includes all the common terms you need to represent all the activities and content flowing around a social network. It's likely that ActivityStreams already includes all the vocabulary you need, but even if it doesn't, ActivityStreams can be extended via [JSON-LD](https://en.wikipedia.org/wiki/JSON-LD). If you know what JSON-LD is, you can take advantage of the cool linked data approaches provided by JSON-LD. If you don't, don't worry, JSON-LD documents and ActivityStreams can be understood as plain old simple JSON. (If you're going to add extensions, that's the point at which JSON-LD really helps you out). + +So, okay. Alyssa wants to talk to her friends, and her friends want to talk to her! Luckily these "inbox" and "outbox" things can help us out. They both behave differently for [GET and POST](https://www.w3schools.com/tags/ref_httpmethods.asp). Let's see how that works: + +![Actor with messages flowing from rest of world to inbox and from outbox to rest of world](activitypub-tutorial-2.png) + +Hey nice, so just as a recap: + + * You can POST to someone's inbox to send them a message (server-to-server / federation only... this *is* federation!) + * You can GET from your inbox to read your latest messages (client-to-server; this is like reading your social network stream) + * You can POST to your outbox to send messages to the world (client-to-server) + * You can GET from someone's outbox to see what messages they've posted (or at least the ones you're authorized to see). (client-to-server and/or server-to-server) + +Of course, if that last one (GET'ing from someone's outbox) was the only way to see what people have sent, this wouldn't be a very efficient federation protocol! Indeed, federation happens usually by servers posting messages sent by actors to actors on other servers' inboxes. + +Let's see an example! Let's say Alyssa wants to catch up with her friend, Ben Bitdiddle. She lent him a book recently and she wants to make sure he returns it to her. Here's the message she composes, as an [ActivityStreams](https://www.w3.org/TR/activitystreams-core) object: + +### Example 2 +``` json +{ + "@context": "https://www.w3.org/ns/activitystreams", + "type": "Note", + "to": ["https://chatty.example/users/ben"], + "attributedTo": "https://instancedomain/users/alyssa", + "published": "2039-10-15T10:30:11Z", + "rejectReplies": False, + "mediaType": "text/html", + "attachment": [], + "summary": "Book", + "content": "Say, did you finish reading that book I lent you?" +} +``` + +This is a note addressed to Ben. Since she doesn't want to distract him too much she includes a summary line, which is similar to an email subject line. She POSTs it to her outbox. + +![Actor posting message to outbox](activitypub-tutorial-3.png) + +Since this is a non-activity object, the server recognizes that this is an object being newly created, and does the courtesy of wrapping it in a Create activity. (Activities sent around in ActivityPub generally follow the pattern of some activity by some actor being taken on some object. In this case the activity is a Create of a Note object, posted by a Person). + +### Example 3 +``` json +{ + "@context": "https://www.w3.org/ns/activitystreams", + "type": "Create", + "id": "https://instancedomain/users/alyssa/statuses/a29a6843/activity", + "to": ["https://chatty.example/users/ben"], + "actor": "https://instancedomain/users/alyssa", + "object": { + "type": "Note", + "id": "https://instancedomain/users/alyssa/statuses/49e2d03d", + "attributedTo": "https://instancedomain/users/alyssa", + "to": ["https://chatty.example/users/ben"], + "published": "2039-10-15T10:30:11Z", + "rejectReplies": False, + "mediaType": "text/html", + "attachment": [], + "summary": "Book", + "content": "Say, did you finish reading that book I lent you?" + } +} +``` + +Alyssa's server looks up Ben's [ActivityStreams actor object](https://www.w3.org/TR/activitystreams-vocabulary/#actor-types), finds his inbox endpoint, and POSTs her object to his inbox. + +![Server posting to remote actor's inbox](activitypub-tutorial-4.png) + +Technically these are two separate steps... one is **client to server** communication, and one is **server to server** communication (federation). But, since we're using them both in this example, we can abstractly think of this as being a streamlined submission from outbox to inbox: + +![Note flowing from one actor's outbox to other actor's inbox](activitypub-tutorial-5.png) + +Cool! A while later, Alyssa checks what new messages she's gotten. Her phone polls her inbox via GET, and amongst a bunch of cat videos posted by friends and photos of her nephew posted by her sister, she sees the following: + +### Example 4 +``` json +{ + "@context": "https://www.w3.org/ns/activitystreams", + "type": "Create", + "id": "https://chatty.example/users/ben/statuses/51086/activity", + "to": ["https://instancedomain/users/alyssa"], + "actor": "https://chatty.example/users/ben", + "object": { + "type": "Note", + "id": "https://chatty.example/users/ben/statuses/51085", + "attributedTo": "https://chatty.example/users/ben", + "to": ["https://instancedomain/users/alyssa"], + "inReplyTo": "https://instancedomain/users/alyssa/statuses/49e2d03d", + "published": "2039-10-15T12:45:45Z", + "rejectReplies": False, + "mediaType": "text/html", + "content": "

        Argh, yeah, sorry, I'll get it back to you tomorrow.

        +

        I was reviewing the section on register machines, + since it's been a while since I wrote one.

        " + } +} +``` + +Alyssa is relieved, and likes Ben's post: + +### Example 5 +``` json +{ + "@context": "https://www.w3.org/ns/activitystreams", + "type": "Like", + "id": "https://instancedomain/users/alyssa/statuses/5312e10e", + "to": ["https://chatty.example/users/ben"], + "actor": "https://instancedomain/users/alyssa", + "object": "https://chatty.example/users/ben/statuses/51086" +} +``` + +She POSTs this message to her outbox. (Since it's an activity, her server knows it doesn't need to wrap it in a Create object). + +Feeling happy about things, she decides to post a public message to her followers. Soon the following message is blasted to all the members of her followers collection, and since it has the special Public group addressed, is generally readable by anyone. + +### Example 6 +``` json +{ + "@context": "https://www.w3.org/ns/activitystreams", + "type": "Create", + "id": "https://instancedomain/users/alyssa/statuses/9282e9cc/activity", + "to": ["https://instancedomain/users/alyssa/followers", + "https://www.w3.org/ns/activitystreams#Public"], + "actor": "https://instancedomain/users/alyssa", + "object": { + "type": "Note", + "id": "https://instancedomain/users/alyssa/statuses/d18c55d4", + "attributedTo": "https://instancedomain/users/alyssa", + "to": ["https://instancedomain/users/alyssa/followers", + "https://www.w3.org/ns/activitystreams#Public"], + "published": "2039-10-15T13:11:16Z", + "rejectReplies": False, + "mediaType": "text/html", + "content": "Lending books to friends is nice. Getting them back is even nicer! :)" + } +} +``` + +### 1.1 Social Web Working Group +ActivityPub is one of several related specifications being produced by the Social Web Working Group. Implementers interested in alternative approaches and complementary protocols should review Micropub and the overview document Social-Web-Protocols. + +## 2. Conformance +As well as sections marked as non-normative, all authoring guidelines, diagrams, examples, and notes in this specification are non-normative. Everything else in this specification is normative. + +The key words *MAY*, *MUST*, *MUST NOT*, *SHOULD*, and *SHOULD NOT* are to be interpreted as described in [RFC2119](https://datatracker.ietf.org/doc/html/rfc2119). + +### 2.1 Specification Profiles +This specification defines two closely related and interacting protocols: + +**A client to server protocol, or "Social API"** +This protocol permits a client to act *on behalf* of a user. For example, this protocol is used by a mobile phone or laptop application to interact with a social stream of the user's actor. + +**A server to server protocol, or "Federation Protocol"** +This protocol is used to distribute activities between actors on different servers/instances, tying them into the same social graph. + +The ActivityPub specification is designed so that once either of these protocols are implemented, supporting the other is of very little additional effort. However, servers may still implement one without the other. This gives three conformance classes: + +**ActivityPub conformant Client** +This designation applies to any implementation of the entirety of the client portion of the client to server protocol. + +**ActivityPub conformant Server/Instance** +This designation applies to any implementation of the entirety of the server portion of the client to server protocol. + +**ActivityPub conformant Federated Server/Instance** +This designation applies to any implementation of the entirety of the federation protocols. + +It is called out whenever a portion of the specification only applies to implementation of the federation protocol. In addition, whenever requirements are specified, it is called out whether they apply to the client or server (for the client-to-server protocol) or whether referring to a sending or receiving server in the server-to-server protocol. + +## 3. Objects +Objects are the core concept around which both [ActivityStreams](https://www.w3.org/TR/activitystreams-core) and ActivityPub are built. Objects are often wrapped in Activities and are contained in streams of Collections, which are themselves subclasses of Objects. See the Activity-Vocabulary document, particularly the [Core Classes](https://www.w3.org/TR/activitystreams-vocabulary/#types); ActivityPub follows the mapping of this vocabulary very closely. + +ActivityPub defines some terms in addition to those provided by [ActivityStreams](https://www.w3.org/TR/activitystreams-core). These terms are provided in the ActivityPub [JSON-LD context](http://www.w3.org/TR/json-ld/#the-context) at `https://www.w3.org/ns/activitystreams`. Implementers *SHOULD* include the ActivityPub context in their object definitions. Implementers *MAY* include additional context as appropriate. + +ActivityPub shares the same [URI / IRI conventions as in ActivityStreams](https://www.w3.org/TR/activitystreams-core/#urls). + +Servers *SHOULD* validate the content they receive to avoid content spoofing attacks. This *MAY* be done by checking the time that a server received a post at an `inbox` or `outbox` (converted to [UTC](https://en.wikipedia.org/wiki/Coordinated_Universal_Time)) against the `date` field within the [http header signature](https://datatracker.ietf.org/doc/html/draft-cavage-http-signatures-07), after the signature has been validated. If there is more than a few minutes difference then this could be a [replay attack](https://en.wikipedia.org/wiki/Replay_attack). See Security Considerations for details of using http signatures. + +As an example, if example.com receives the activity + +### Example 7 +``` json +{ + "@context": "https://www.w3.org/ns/activitystreams", + "type": "Like", + "actor": "https://example.net/users/mallory", + "to": ["https://hatchat.example/users/sarah", + "https://example.com/users/john"], + "object": { + "@context": {"@language": "en"}, + "id": "https://example.org/users/alice/statuses/23", + "type": "Note", + "attributedTo": "https://example.org/users/alice", + "mediaType": "text/html", + "content": "I'm a goat" + } +} +``` + +it should dereference the `id` both to ensure that it exists and is a valid object, and that it is not misrepresenting the object. (In this example, Mallory could be spoofing an object allegedly posted by Alice). + +### 3.1 Object Identifiers +All Objects in [ActivityStreams](https://www.w3.org/TR/activitystreams-core) should have unique global identifiers. ActivityPub extends this requirement; all objects distributed by the ActivityPub protocol *MUST* have unique global identifiers, unless they are intentionally transient (short lived activities that are not intended to be able to be looked up, such as some kinds of chat messages or game notifications). These identifiers must fall into one of the following groups: + + * Publicly dereferencable URIs, such as HTTPS URIs, with their authority belonging to that of their originating server. (Publicly facing content *SHOULD* use HTTPS URIs if the network being used does not have integrated transport security). + * An ID explicitly specified as the JSON `null` object, which implies an anonymous object (a part of its parent context) + +Identifiers *MUST* be provided for activities posted in server to server communication, unless the activity is intentionally transient. However, for client to server communication, a server receiving an object posted to the outbox with no specified `id` *SHOULD* allocate an object ID in the actor's namespace and attach it to the posted object. + +All objects have the following properties: + +**id** +String value for the object's unique global identifier (unless the object is transient, in which case the `id` *MAY* be omitted. + +**type** +String value for the type of the [object](https://www.w3.org/TR/activitystreams-core/#object). + +### 3.2 Retrieving objects +The HTTP GET method may be dereferenced against an object's `id` property to retrieve the activity. Servers *MAY* use HTTP content negotiation as defined in [RFC7231](https://datatracker.ietf.org/doc/html/rfc7231) to select the type of data to return in response to a request, but *MUST* present the [ActivityStreams](https://www.w3.org/TR/activitystreams-core) object representation in response to `application/ld+json; profile="https://www.w3.org/ns/activitystreams"`, and *SHOULD* also present the [ActivityStreams](https://www.w3.org/TR/activitystreams-core) representation in response to `application/activity+json` as well. The client *MUST* specify an `Accept` header with the `application/ld+json; profile="https://www.w3.org/ns/activitystreams"` media type in order to retrieve the activity. + +Servers *MAY* implement other behavior for requests which do not comply with the above requirement. (For example, servers may implement additional legacy protocols, or may use the same URI for both HTML and [ActivityStreams](https://www.w3.org/TR/activitystreams-core) representations of a resource). + +Servers *MAY* require authorization as specified in section B.1 Authentication and Authorization, and may additionally implement their own authorization rules, such as **authorized fetch**. Servers *SHOULD* fail requests which do not pass their authorization checks with the appropriate [HTTP error code](https://en.wikipedia.org/wiki/List_of_HTTP_status_codes), or the **403 Forbidden** error code where the existence of the object is considered private. An origin server which does not wish to disclose the existence of a private target *MAY* instead respond with a status code of **404 Not Found**. + +### 3.3 The source property +In addition to all the properties defined by the [Activity Vocabulary](https://www.w3.org/TR/activitystreams-vocabulary), ActivityPub extends the `Object` by supplying the `source` property. The `source` property is intended to convey some sort of source from which the `content` markup was derived, as a form of provenance, or to support future editing by clients. In general, clients do the conversion from `source` to `content`, not the other way around. + +The value of `source` is itself an object which uses its own `content` and `mediaType` fields to supply source information. + +### Example 8 +``` json +{ + "@context": ["https://www.w3.org/ns/activitystreams", + {"@language": "en"}], + "type": "Note", + "id": "http://postparty.example/users/username/statuses/2415", + "mediaType": "text/html" + "content": "

        I really like strawberries!

        ", + "source": { + "content": "

        I *really* like strawberries!

        ", + "mediaType": "text/html" + } +} +``` + +**Note: What to do when clients can't meaningfully handle a mediaType?** + +In general, it's best to let a user edit their original post in the same source format they originally composed it in. But not all clients can reliably provide a nice interface for all source types, and since clients are expected to do the conversion from `source` to `content`, some clients may work with a media type that another client does not know how to work with. While a client could feasibly provide the `content` markup to be edited and ignore the source, this means that the user will lose the more desirable form of the original `source` in any future revisions. A client doing so should thus provide a minimally obtrusive warning cautioning that the original source format is not understood and is thus being ignored. + +For example, Alyssa P. Hacker likes to post to her ActivityPub powered blog via an Emacs client she has written, leveraging [Org mode](http://orgmode.org). Later she switches to editing on her phone's client, which has no idea what `text/x-org` is or how to render it to HTML, so it provides a text box to edit the original `content` instead. A helpful warning displays above the edit area saying, "This was originally written in another markup language we don't know how to handle. If you edit, you'll lose your original source!" Alyssa decides the small typo fix isn't worth losing her nice org-mode markup and decides to make the update when she gets home. + +## 4. Actors +ActivityPub actors are generally one of the [ActivityStreams Actor Types](https://www.w3.org/TR/activitystreams-vocabulary/#actor-types), but they don't have to be. For example, a [Profile](https://www.w3.org/TR/activitystreams-vocabulary/#dfn-profile) object might be used as an actor, or a type from an [ActivityStreams](https://www.w3.org/TR/activitystreams-core) extension. Actors are retrieved like any other Object in ActivityPub. Like other [ActivityStreams objects](https://www.w3.org/TR/activitystreams-vocabulary/#object-types), actors have an `id`, which is a URI. When entered directly into a user interface (for example on a login form), it is desirable to support simplified naming. For this purpose, ID normalization *SHOULD* be performed as follows: + + * If the entered ID is a valid URI, then it is to be used directly. + * If it appears that the user neglected to add a scheme for a URI that would otherwise be considered valid, such as `example.org/alice/`, clients *MAY* attempt to provide a default scheme, preferably `https`. + * Otherwise, the entered value should be considered invalid. + +Once the actor's URI has been identified, it should be dereferenced. + +**Note** + +ActivityPub does not dictate a specific relationship between "users" and Actors; many configurations are possible. There may be multiple human users or organizations controlling an Actor, or likewise one human or organization may control multiple Actors. Similarly, an Actor may represent a piece of software, like a bot, or an automated process. More detailed "user" modelling, for example linking together of Actors which are controlled by the same entity, or allowing one Actor to be presented through multiple alternate profiles or aspects, are at the discretion of the implementation. + +### 4.1 Actor objects +Actor objects *MUST* have, in addition to the properties mandated by section 3.1 Object Identifiers, the following properties: + +#### 4.1.1 inbox +A reference to an ActivityStreams [OrderedCollection](https://www.w3.org/TR/activitystreams-vocabulary/#dfn-orderedcollection) comprised of all the messages received by the actor; see section 5.2 Inbox. + +#### 4.1.2 outbox +An ActivityStreams [OrderedCollection](https://www.w3.org/TR/activitystreams-vocabulary/#dfn-orderedcollection) comprised of all the messages produced by the actor; see section 5.1 Outbox. + +Implementations *SHOULD*, in addition, provide the following properties: + +#### 4.1.3 following +A link to an [ActivityStreams collection](https://www.w3.org/TR/activitystreams-core/#collections) of the actors that this actor is following; see section 5.4 Following Collection + +#### 4.1.4 followers +A link to an [ActivityStreams collection](https://www.w3.org/TR/activitystreams-core/#collections) of the actors that follow this actor; see section 5.3 Followers Collection. + +#### 4.1.5 discoverable +Indicates whether the person wishes to be discoverable via recommendations or listings of active accounts. + +Implementations *MAY* provide the following properties: + +#### 4.1.6 liked +A link to an [ActivityStreams collection](https://www.w3.org/TR/activitystreams-core/#collections) of objects this actor has liked; see section 5.5 Liked Collection. + +#### 4.1.7 manuallyApprovesFollowers +If true then followers for this account require permission to be granted. This can be an effective anti-spam or anti-harassment feature. + +#### 4.1.8 publicKey +Describes the [http header signature](https://datatracker.ietf.org/doc/html/draft-cavage-http-signatures-07) public key for this account. This can be used by other accounts on the same or other federated servers to validate the authenticity of received posts. + +#### 4.1.9 published +This is a timestamp for when the account was first created, and is used to show a joined date on profile screens. + +#### 4.1.10 updated +A timestamp for when this actor was last changed. This can be used by followers to update their actor caches. + +### Example 9 +``` json +{ + "@context": [ + "https://www.w3.org/ns/activitystreams", + "https://w3id.org/security/v1", + {"@language": "ja"}, + { + "Curve25519Key": "toot:Curve25519Key", + "Device": "toot:Device", + "Ed25519Key": "toot:Ed25519Key", + "Ed25519Signature": "toot:Ed25519Signature", + "EncryptedMessage": "toot:EncryptedMessage", + "PropertyValue": "schema:PropertyValue", + "alsoKnownAs": {"@id": "as:alsoKnownAs", "@type": "@id"}, + "cipherText": "toot:cipherText", + "claim": {"@id": "toot:claim", "@type": "@id"}, + "deviceId": "toot:deviceId", + "devices": {"@id": "toot:devices", "@type": "@id"}, + "discoverable": "toot:discoverable", + "featured": {"@id": "toot:featured", "@type": "@id"}, + "featuredTags": {"@id": "toot:featuredTags", "@type": "@id"}, + "fingerprintKey": {"@id": "toot:fingerprintKey", "@type": "@id"}, + "focalPoint": {"@container": "@list", "@id": "toot:focalPoint"}, + "identityKey": {"@id": "toot:identityKey", "@type": "@id"}, + "manuallyApprovesFollowers": "as:manuallyApprovesFollowers", + "messageFranking": "toot:messageFranking", + "messageType": "toot:messageType", + "movedTo": {"@id": "as:movedTo", "@type": "@id"}, + "publicKeyBase64": "toot:publicKeyBase64", + "schema": "http://schema.org#", + "suspended": "toot:suspended", + "toot": "http://joinmastodon.org/ns#", + "value": "schema:value" + } + ], + "id": "https://kenzoishii.example.com/users/kenzoishii", + "url": "https://kenzoishii.example.com/@kenzoishii" + "following": "https://kenzoishii.example.com/users/kenzoishii/following", + "followers": "https://kenzoishii.example.com/users/kenzoishii/followers", + "featured": "https://kenzoishii.example.com/users/kenzoishii/featured", + "featuredTags": "https://kenzoishii.example.com/users/kenzoishii/collections/tags", + "liked": "https://kenzoishii.example.com/users/kenzoishii/liked", + "inbox": "https://kenzoishii.example.com/users/kenzoishii/inbox", + "outbox": "https://kenzoishii.example.com/users/kenzoishii/outbox", + "endpoints": {"sharedInbox": "https://kenzoishii.example.com/inbox"}, + "preferredUsername": "kenzoishii", + "name": "石井健蔵", + "summary": "この方はただの例です", + "published": "2017-08-23T00:00:00Z", + "updated": "2022-02-09T00:00:00Z", + "discoverable": True, + "manuallyApprovesFollowers": False, + "icon": { + "mediaType": "image/png", + "type": "Image", + "url": "https://kenzoishii.example.com/accounts/avatars/730.png" + }, + "image": { + "mediaType": "image/jpeg", + "type": "Image", + "url": "https://kenzoishii.example.com/accounts/headers/zhw.jpg" + }, + "publicKey": {"id": "https://kenzoishii.example.com/users/kenzoishii#main-key", + "owner": "https://kenzoishii.example.com/users/kenzoishii", + "publicKeyPem": "-----BEGIN PUBLIC KEY-----\n" + "..." + "-----END PUBLIC KEY-----\n"}, + "type": "Person" +} +``` + +Implementations *MAY*, in addition, provide the following properties: + +#### 4.1.11 streams +A list of supplementary Collections which may be of interest. + +#### 4.1.12 preferredUsername +A short username which may be used to refer to the actor, with no uniqueness guarantees. + +#### 4.1.13 endpoints +A json object which maps additional (typically server/domain-wide) endpoints which may be useful either for this actor or someone referencing this actor. This mapping may be nested inside the actor document as the value or may be a link to a JSON-LD document with these properties. + +The `endpoints` mapping *MAY* include the following properties: + +**proxyUrl** +Endpoint URI so this actor's clients may access remote ActivityStreams objects which require authentication to access. To use this endpoint, the client posts an `x-www-form-urlencoded` `id` parameter with the value being the `id` of the requested ActivityStreams object. + +**oauthAuthorizationEndpoint** +If OAuth 2.0 bearer tokens [RFC6749](https://datatracker.ietf.org/doc/html/rfc6749) [RFC6750](https://datatracker.ietf.org/doc/html/rfc6750) are being used for authenticating client to server interactions, this endpoint specifies a URI at which a browser-authenticated user may obtain a new authorization grant. + +**oauthTokenEndpoint** +If OAuth 2.0 bearer tokens [RFC6749](https://datatracker.ietf.org/doc/html/rfc6749) [RFC6750](https://datatracker.ietf.org/doc/html/rfc6750) are being used for authenticating client to server interactions, this endpoint specifies a URI at which a client may acquire an access token. + +**provideClientKey** +If Linked Data Signatures and HTTP Signatures are being used for authentication and authorization, this endpoint specifies a URI at which browser-authenticated users may authorize a client's public key for client to server interactions. + +**signClientKey** +If Linked Data Signatures and HTTP Signatures are being used for authentication and authorization, this endpoint specifies a URI at which a client key may be signed by the actor's key for a time window to act on behalf of the actor in interacting with foreign servers. + +**sharedInbox** +An optional endpoint used for wide delivery of publicly addressed activities and activities sent to followers. `sharedInbox` endpoints *SHOULD* also be publicly readable `OrderedCollection` objects containing objects addressed to the Public special collection. Reading from the `sharedInbox` endpoint *MUST NOT* present objects which are not addressed to the `Public` endpoint. + +**Note** + +As the upstream vocabulary for ActivityPub, any applicable [ActivityStreams](https://www.w3.org/TR/activitystreams-core) property may be used on ActivityPub Actors. Some ActivityStreams properties are particularly worth highlighting to demonstrate how they are used in ActivityPub implementations. + +#### 4.1.14 url +A link to the actor's "profile web page", if not equal to the value of `id`. + +#### 4.1.15 name +The preferred "nickname" or "display name" of the actor. + +#### 4.1.16 summary +A quick summary or biography by the user about themselves. + +**Note** + +Properties containing natural language values, such as `name`, `preferredUsername`, or `summary`, make use of [natural language support defined in ActivityStreams](https://www.w3.org/TR/activitystreams-core/#naturalLanguageValues). + +#### 4.1.17 featured +Link to an [ActivityStreams collection](https://www.w3.org/TR/activitystreams-core/#collections) containing "pinned" posts appearing on the account profile screen. Such posts are typically used to provide more information about the account, beyond the profile summary. + +#### 4.1.18 featuredTags +Link to an [ActivityStreams collection](https://www.w3.org/TR/activitystreams-core/#collections) containing tag objects representing hashtags. This is used to improve discoverability. + +For example, Alyssa likes reading and so she pins a post containing hashtags for her favorite books to her profile. The post appears within the `featured` collection of her `actor` and the hashtags within the post appear within `featuredTags`. When searching the hashtag for a particular book, Misha discovers Alyssa's account and decides to send a follow request based upon their mutual interest. + +#### 4.1.19 icon +Describes an image which represents the user's profile picture (this may be a thumbnail). + +#### 4.1.20 image +Describes the profile page background banner for this person. + +## 5. Collections +ActivityStreams defines the collection concept; ActivityPub defines several collections with special behavior. Note that ActivityPub makes use of [ActivityStreams paging](https://www.w3.org/TR/activitystreams-core/#paging) to traverse large sets of objects. + +Note that some of these collections are specified to be of type [`OrderedCollection`](https://www.w3.org/TR/activitystreams-vocabulary/#dfn-orderedcollection) specifically, while others are permitted to be either a [`Collection`](https://www.w3.org/TR/activitystreams-vocabulary/#dfn-collection) or an [`OrderedCollection`](https://www.w3.org/TR/activitystreams-vocabulary/#dfn-orderedcollection). + +An [`OrderedCollection`](https://www.w3.org/TR/activitystreams-vocabulary/#dfn-orderedcollection) *MUST* be presented consistently in reverse chronological order. + +**Note** + +What property is used to determine the reverse chronological order is intentionally left as an implementation detail. For example, many SQL-style databases use an incrementing integer as an identifier, which can be reasonably used for handling insertion order in most cases. In other databases, an insertion time timestamp may be preferred. What is used isn't important, but the ordering of elements must remain intact, with newer items first. A property which changes regularly, such a "last updated" timestamp, should not be used. + +### 5.1 Outbox +The outbox is discovered through the `outbox` property of an actor's profile. The `outbox` *MUST* be an [`OrderedCollection`](https://www.w3.org/TR/activitystreams-vocabulary/#dfn-orderedcollection). + +The outbox stream contains activities the user has published, subject to the ability of the requestor to retrieve the activity (that is, the contents of the outbox are filtered by the permissions of the person reading it). If a user submits a request without Authorization the server should respond with all of the Public posts. This could potentially be all relevant objects published by the user, though the number of available items is left to the discretion of those implementing and deploying the server. + +The outbox accepts HTTP POST requests, with behaviour described in Client to Server Interactions. + +### 5.2 Inbox +The inbox is discovered through the `inbox` property of an actor's profile. The `inbox` *MUST* be an [`OrderedCollection`](https://www.w3.org/TR/activitystreams-vocabulary/#dfn-orderedcollection). + +The inbox stream contains all activities received by the actor. The server *SHOULD* filter content according to the requester's permission. In general, the owner of an inbox is likely to be able to access all of their inbox contents. Depending on access control, some other content may be public, whereas other content may require authentication for non-owner users, if they can access the inbox at all. + +The server *MUST* perform de-duplication of activities returned by the inbox. Duplication can occur if an activity is addressed both to an actor's followers, and a specific actor who also follows the recipient actor, and the server has failed to de-duplicate the recipients list. Such deduplication *MUST* be performed by comparing the `id` of the activities and dropping any activities already seen. + +The inboxes of actors on federated servers accepts HTTP POST requests, with behaviour described in Delivery. Non-federated servers *SHOULD* return a 405 Method Not Allowed upon receipt of a POST request. + +### 5.3 Followers Collection +Every actor *SHOULD* have a `followers` collection. This is a list of everyone who has sent a [Follow](https://www.w3.org/TR/activitystreams-vocabulary/#dfn-follow) activity for the actor, added as a side effect. This is where one would find a list of all the actors that are following the actor. The `followers` collection *MUST* be either an [`OrderedCollection`](https://www.w3.org/TR/activitystreams-vocabulary/#dfn-orderedcollection) or a [`Collection`](https://www.w3.org/TR/activitystreams-vocabulary/#dfn-collection) and *MAY* be filtered on privileges of an authenticated user or as appropriate when no authentication is given. + +**Note: Default for notification targeting** + +The follow activity generally is a request to see the objects an actor creates. This makes the Followers collection an appropriate default target for delivery of notifications. + +### 5.4 Following Collection +Every actor *SHOULD* have a `following` collection. This is a list of everybody that the actor has followed, added as a side effect. The `following` collection *MUST* be either an [`OrderedCollection`](https://www.w3.org/TR/activitystreams-vocabulary/#dfn-orderedcollection) or a [`Collection`](https://www.w3.org/TR/activitystreams-vocabulary/#dfn-collection) and *MAY* be filtered on privileges of an authenticated user or as appropriate when no authentication is given. + +### 5.5 Liked Collection +Every actor *MAY* have a `liked` collection. This is a list of every object from all of the actor's `Like` activities, added as a side effect. The `liked` collection *MUST* be either an [`OrderedCollection`](https://www.w3.org/TR/activitystreams-vocabulary/#dfn-orderedcollection) or a [`Collection`](https://www.w3.org/TR/activitystreams-vocabulary/#dfn-collection) and *MAY* be filtered on privileges of an authenticated user or as appropriate when no authentication is given. + +### 5.6 Public Addressing +In addition to ActivityStreams collections and objects, Activities may additionally be addressed to the special "public" collection, with the identifier `https://www.w3.org/ns/activitystreams#Public`. For example: + +### Example 10 +``` json +{ + "@context": "https://www.w3.org/ns/activitystreams", + "id": "https://www.w3.org/ns/activitystreams#Public", + "type": "Collection" +} +``` + +Activities addressed to this special URI shall be accessible to all users, without authentication. Implementations *MUST NOT* deliver to the "public" special collection; it is not capable of receiving actual activities. However, actors *MAY* have a sharedInbox endpoint which is available for efficient shared delivery of public posts (as well as posts to followers-only; see section 7.1.3 Shared Inbox Delivery. + +**Note** + +Compacting an ActivityStreams object using the ActivityStreams JSON-LD context might result in `https://www.w3.org/ns/activitystreams#Public` being represented as simply `Public` or `as:Public` which are valid representations of the Public collection. Implementations which treat ActivityStreams objects as simply JSON rather than converting an incoming activity over to a local context using JSON-LD tooling should be aware of this and should be prepared to accept all three representations. + +### 5.7 Likes Collection +Every object *MAY* have a `likes` collection. This is a list of all `Like` activities with this object as the `object` property, added as a side effect. The `likes` collection *MUST* be either an [`OrderedCollection`](https://www.w3.org/TR/activitystreams-vocabulary/#dfn-orderedcollection) or a [`Collection`](https://www.w3.org/TR/activitystreams-vocabulary/#dfn-collection) and *MAY* be filtered on privileges of an authenticated user or as appropriate when no authentication is given. + +**Note** + +Care should be taken to not confuse the the `likes` collection with the similarly named but different `liked` collection. In sum: + + * **liked:** Specifically a property of actors. This is a collection of `Like` activities performed *by the actor*, added to the collection as a side effect of delivery to the outbox. + * **likes:** May be a property of any object. This is a collection of `Like` activities referencing this object, added to the collection as a side effect of delivery to the inbox. + +### 5.8 Shares/Boosts Collection +Every object *MAY* have a `shares` collection, otherwise known as `boosts` or `repeats`. This is a list of all `Announce` activities with this object as the `object` property, added as a side effect. The `shares` collection *MUST* be either an [`OrderedCollection`](https://www.w3.org/TR/activitystreams-vocabulary/#dfn-orderedcollection) or a [`Collection`](https://www.w3.org/TR/activitystreams-vocabulary/#dfn-collection) and *MAY* be filtered on privileges of an authenticated user or as appropriate when no authentication is given. + +### 5.9 Featured Collection +Every `actor` MAY have a `featured` collection, which contains "pinned" posts used to supply more information about the person or organization. + +### 5.10 FeaturedTags Collection +Every `actor` MAY have a `featuredTags` collection to enhance discoverability, containing tag objects. + +## 6. Client to Server Interactions +Activities as defined by ActivityStreams are the core mechanism for creating, modifying and sharing content within the social graph. + +Client to server interaction takes place through clients posting Activities to an actor's outbox. To do this, clients *MUST* discover the URL of the actor's outbox from their profile and then *MUST* make an HTTP POST request to this URL with the Content-Type of `application/ld+json; profile="https://www.w3.org/ns/activitystreams"`. Servers *MAY* interpret a Content-Type or Accept header of `application/activity+json` as equivalent to `application/ld+json; profile="https://www.w3.org/ns/activitystreams"` for client-to-server interactions. The request *MUST* be authenticated with the credentials of the user to whom the outbox belongs. The body of the `POST` request *MUST* contain a single Activity (which *MAY* contain embedded objects), or a single non-Activity object which will be wrapped in a Create activity by the server. + +### Example 11: Submitting an Activity to the Outbox +``` json +POST /outbox/ HTTP/1.1 +Host: dustycloud.org +Authorization: Bearer XXXXXXXXXXX +Content-Type: application/ld+json; profile="https://www.w3.org/ns/activitystreams" + +{ + "@context": ["https://www.w3.org/ns/activitystreams", + {"@language": "en"}], + "type": "Like", + "actor": "https://dustycloud.org/users/chris", + "name": "Chris liked 'Minimal ActivityPub update client'", + "object": "https://rhiaro.co.uk/2016/05/minimal-activitypub", + "to": ["https://rhiaro.co.uk/@amy", + "https://dustycloud.org/users/chris/followers"], + "cc": ["https://e14n.com/@evan"] +} +``` +If an Activity is submitted with a value in the `id` property, servers *MUST* ignore this and generate a new `id` for the Activity. Servers *MUST* return a `201 Created` HTTP code, and unless the activity is transient, *MUST* include the new `id` in the `Location` header. + +### Example 12: Outbox response to submitted Activity +``` http +HTTP/1.1 201 Created +Location: https://dustycloud.org/likes/345 +``` + +The server *MUST* remove the `bto` and/or `bcc` properties, if they exist, from the ActivityStreams object before delivery, but *MUST* utilize the addressing originally stored on the `bto` / `bcc` properties for determining recipients in delivery. + +The server *MUST* then add this new Activity to the outbox collection. Depending on the type of Activity, servers may then be required to carry out further side effects. (However, there is no guarantee that time the Activity may appear in the outbox. The Activity might appear after a delay or disappear at any period). These are described per individual Activity below. + +Attempts to submit objects to servers not implementing client to server support *SHOULD* result in a `405 Method Not Allowed` response. + +HTTP caching mechanisms [RFC7234](https://datatracker.ietf.org/doc/html/rfc7234) *SHOULD* be respected when appropriate, both in clients receiving responses from servers as well as servers sending responses to clients. + +### 6.1 Client Addressing +**Clients** are responsible for addressing new Activities appropriately. To some extent, this is dependent upon the particular client implementation, but clients must be aware that the server will only forward new Activities to addressees in the `to`, `bto`, `cc`, `bcc`, and `audience` fields. + +The Followers Collection and/or the Public Collection are good choices for the default addressing of new Activities. + +Clients *SHOULD* look at any objects attached to the new Activity via the `object`, `target`, `inReplyTo` and/or `tag` fields, retrieve *their* `actor` or `attributedTo` properties, and *MAY* also retrieve their addressing properties, and add these to the `to` or `cc` fields of the new Activity being created. Clients *MAY* recurse through attached objects, but if doing so, *SHOULD* set a limit for this recursion. (Note that this does not suggest that the client should "unpack" collections of actors being addressed as individual recipients). + +Clients *MAY* give the user the chance to amend this addressing in the UI. + +For example, when Chris likes the following article by Amy: + +### Example 13: An Article +``` json +{ + "@context": ["https://www.w3.org/ns/activitystreams", + {"@language": "en-GB"}], + "id": "https://rhiaro.co.uk/2016/05/minimal-activitypub", + "type": "Article", + "name": "Minimal ActivityPub update client", + "content": "Today I finished morph, a client for posting ActivityStreams2...", + "attributedTo": "https://rhiaro.co.uk/@amy", + "to": ["https://rhiaro.co.uk/followers"], + "cc": ["https://e14n.com/@evan"] +} +``` + +the like is generated by the client as: + +### Example 14: A Like of the Article +``` json +{ + "@context": ["https://www.w3.org/ns/activitystreams", + {"@language": "en"}], + "type": "Like", + "actor": "https://dustycloud.org/users/chris", + "summary": "Chris liked 'Minimal ActivityPub update client'", + "object": "https://rhiaro.co.uk/2016/05/minimal-activitypub", + "to": ["https://rhiaro.co.uk/@amy", + "https://dustycloud.org/users/chris/followers"], + "cc": ["https://e14n.com/@evan"] +} +``` + +The receiving outbox can then perform delivery to not only the followers of Chris (the liker), but also to Amy, and Amy's followers and Evan, both of whom received the original article. + +Clients submitting the following activities to an `outbox` *MUST* provide the `object` property in the activity: `Create`, `Update`, `Delete`, `Follow`, `Add`, `Remove`, `Like`, `Block`, `Undo`. Additionally, clients submitting the following activities to an outbox *MUST* also provide the `target` property: `Add`, `Remove`. + +### 6.2 Create Activity +The `Create` activity is used when posting a new object. This has the side effect that the object embedded within the Activity (in the `object` property) is created. + +When a `Create` activity is posted, the `actor` of the activity *SHOULD* be copied onto the `object`'s `attributedTo` field. + +A mismatch between addressing of the Create activity and its `object` is likely to lead to confusion. As such, a server *SHOULD* copy any recipients of the Create activity to its `object` upon initial distribution, and likewise with copying recipients from the `object` to the wrapping Create activity. Note that it is acceptable for the `object`'s addressing to be changed later without changing the `Create`'s addressing (for example via an `Update` activity). + +#### 6.2.1 Object creation without a Create Activity +For client to server posting, it is possible to submit an object for creation without a surrounding activity. The server *MUST* accept a valid ActivityStreams object that isn't a subtype of `Activity` in the POST request to the outbox. The server then *MUST* attach this object as the `object` of a Create Activity. For non-transient objects, the server *MUST* attach an `id` to both the wrapping `Create` and its wrapped `Object`. + +**Note** + +The `Location` value returned by the server should be the URL of the new Create activity (rather than the object). + +Any `to`, `bto`, `cc`, `bcc`, and `audience` properties specified on the object *MUST* be copied over to the new Create activity by the server. + +### Example 15: Object with audience targeting +``` json +{ + "@context": "https://www.w3.org/ns/activitystreams", + "type": "Note", + "content": "This is a note", + "published": "2015-02-10T15:04:55Z", + "to": ["https://example.org/@john/"], + "cc": ["https://example.com/@erik/followers", + "https://www.w3.org/ns/activitystreams#Public"] +} +``` + +The above example could be converted to this: + +### Example 16: Create Activity wrapper generated by the server +``` json +{ + "@context": "https://www.w3.org/ns/activitystreams", + "type": "Create", + "id": "https://example.net/users/mallory/87374", + "actor": "https://example.net/users/mallory", + "object": { + "id": "https://example.com/@mallory/statuses/72", + "type": "Note", + "attributedTo": "https://example.net/users/mallory", + "content": "This is a note", + "published": "2015-02-10T15:04:55Z", + "to": ["https://example.org/@john/"], + "cc": ["https://example.com/@erik/followers", + "https://www.w3.org/ns/activitystreams#Public"] + }, + "published": "2015-02-10T15:04:55Z", + "to": ["https://example.org/@john/"], + "cc": ["https://example.com/@erik/followers", + "https://www.w3.org/ns/activitystreams#Public"] +} +``` + +### 6.3 Update Activity +The `Update` activity is used when updating an already existing object. The side effect of this is that the `object` *MUST* be modified to reflect the new structure as defined in the update activity, assuming the actor has permission to update this object. + +### Example X +When Alan makes a change to his profile, his `actor` is sent out as an `update` activity POST to the `inbox` or `sharedInbox` of his followers. +``` json +{ + "@context": [ + "https://www.w3.org/ns/activitystreams", + "https://enigmatic.social/schemas/litepub-0.1.jsonld", + {"@language": "en"} + ], + "actor": "https://enigmatic.social/users/alan", + "cc": [], + "id": "https://enigmatic.social/activities/hiefuhfuoejwdwyscho", + "object": { + "alsoKnownAs": [], + "attachment": [ + { + "name": "Languages", + "type": "PropertyValue", + "value": "DE, EN" + }, + { + "name": "Website", + "type": "PropertyValue", + "value": "https://totally.enigmatic/" + } + ], + "capabilities": {"acceptsChatMessages": true}, + "discoverable": false, + "endpoints": { + "oauthAuthorizationEndpoint": "https://enigmatic.social/oauth/authorize", + "oauthRegistrationEndpoint": "https://enigmatic.social/api/v1/apps", + "oauthTokenEndpoint": "https://enigmatic.social/oauth/token", + "sharedInbox": "https://enigmatic.social/inbox", + "uploadMedia": "https://enigmatic.social/api/ap/upload_media" + }, + "featured": "https://enigmatic.social/users/alan/collections/featured", + "followers": "https://enigmatic.social/users/alan/followers", + "following": "https://enigmatic.social/users/alan/following", + "icon": { + "type": "Image", + "url": "https://enigmatic.social/media/niefiwmwfyw.png" + }, + "id": "https://enigmatic.social/users/alan", + "image": { + "type": "Image", + "url": "https://enigmatic.social/media/jejfh4h38cmw.jpg" + }, + "inbox": "https://enigmatic.social/users/alan/inbox", + "manuallyApprovesFollowers": true, + "name": "alan :alan_chess:", + "outbox": "https://enigmatic.social/users/alan/outbox", + "preferredUsername": "alan", + "publicKey": { + "id": "https://enigmatic.social/users/alan#main-key", + "owner": "https://enigmatic.social/users/alan", + "publicKeyPem": "-----BEGIN PUBLIC KEY-----\n + ... + -----END PUBLIC KEY-----\n\n" + }, + "summary": "Chess player", + "tag": [ + { + "icon": { + "type": "Image", + "url": "https://enigmatic.social/emoji/custom/chess/alan_chess.png" + }, + "id": "https://enigmatic.social/emoji/custom/chess/alan_chess.png", + "name": ":alan_chess:", + "type": "Emoji", + "updated": "2022-05-11T00:00:00Z" + } + ], + "type": "Person", + "url": "https://enigmatic.social/users/alan" + }, + "to": [ + "https://enigmatic.social/users/alan/followers", + "https://www.w3.org/ns/activitystreams#Public" + ], + "type": "Update" +} +``` + +#### 6.3.1 Partial Updates +For client to server interactions, updates are partial; rather than updating the document all at once, any key value pair supplied is used to replace the existing value with the new value. This only applies to the top-level fields of the updated object. A special exception is for when the value is the json `null` type; this means that this field should be removed from the server's representation of the object. + +Note that this behavior is for client to server interaction where the client is posting to the server only. Server to server interaction and updates from the server to the client should contain the entire new representation of the object, after the partial update application has been applied. See the description of the Update activity for server to server interactions for more details. + +### 6.4 Delete Activity +The `Delete` activity is used to delete an already existing object. The side effect of this is that the server *MAY* replace the `object` with a `Tombstone` of the object that will be displayed in activities which reference the deleted object. If the deleted object is requested the server *SHOULD* respond with either the HTTP 410 Gone status code if a `Tombstone` object is presented as the response body, otherwise respond with a HTTP 404 Not Found. + +The delete request, sent out by POST. +### Example X +``` json +{ + "@context": "https://www.w3.org/ns/activitystreams", + "actor"': "https://example.com/users/alice", + "object": "https://example.com/users/alice/statuses/72", + "to": [ + "https://example.com/users/alice/followers", + "https://www.w3.org/ns/activitystreams#Public" + ], + "cc"': [], + "type": "Delete" +} +``` + +A deleted object: +### Example 17 +``` json +{ + "@context": "https://www.w3.org/ns/activitystreams", + "id": "https://example.com/@alice/statuses/72", + "type": "Tombstone", + "published": "2015-02-10T15:04:55Z", + "updated": "2015-02-10T15:04:55Z", + "deleted": "2015-02-10T15:04:55Z" +} +``` + +### 6.5 Follow Activity +The `Follow` activity is used to subscribe to the activities of another actor. + +The side effect of receiving this in an **outbox** is that the server *SHOULD* add the `object` to the `actor`'s `following` Collection when and only if an `Accept` activity is subsequently received with this `Follow` activity as its object. + +### Example X +Follow request sent by Misha to Alice. +``` json +{ + "@context": "https://www.w3.org/ns/activitystreams", + "id": "https://anotherinstance/users/misha/statuses/67839359385539", + "type": "Follow", + "actor": "https://anotherinstance/users/misha", + "object": "https://example.com/users/alice" +} +``` + +### 6.6 Add Activity +Upon receipt of an `Add` activity into the **outbox**, the server *SHOULD* add the `object` to the collection specified in the `target` property, unless: + + * the `target` is not owned by the receiving server, and thus they are not authorized to update it. + * the `object` is not allowed to be added to the `target` collection for some other reason, at the receiving server's discretion. + +### 6.7 Remove Activity +Upon receipt of a `Remove` activity into the **outbox**, the server *SHOULD* remove the `object` from the collection specified in the `target` property, unless: + + * the `target` is not owned by the receiving server, and thus they are not authorized to update it. + * the `object` is not allowed to be removed from the `target` collection for some other reason, at the receiving server's discretion. + +### 6.8 Like Activity +The `Like` activity indicates the `actor` likes the `object`. + +The side effect of receiving this in an **outbox** is that the server *SHOULD* add the `object` to the `actor`'s `liked` Collection. + +### 6.9 Block Activity +The `Block` activity is used to indicate that the posting actor does not want another actor (defined in the `object` property) to be able to interact with objects posted by the actor posting the `Block` activity. The server *SHOULD* prevent the blocked user from interacting with any object posted by the actor. + +Servers *SHOULD NOT* deliver Block Activities to their `object`. + +### 6.10 Undo Activity +The `Undo` activity is used to undo a previous activity. See the Activity Vocabulary documentation on [Inverse Activities and "Undo"](https://www.w3.org/TR/activitystreams-vocabulary/#inverse). For example, `Undo` may be used to undo a previous `Like`, `Follow`, or `Block`. The undo activity and the activity being undone *MUST* both have the same actor. Side effects should be undone, to the extent possible. For example, if undoing a `Like`, any counter that had been incremented previously should be decremented appropriately. + +There are some exceptions where there is an existing and explicit "inverse activity" which should be used instead. `Create` based activities should instead use `Delete`, and `Add` activities should use `Remove`. + +### 6.11 Delivery +Federated servers *MUST* perform delivery on all Activities posted to the **outbox** according to outbox delivery. + +### 6.12 Uploading Media +*This section is non-normative.* + +Servers *MAY* support uploading document types to be referenced in activites, such as images, video or other binary data, but the precise mechanism is out of scope for this version of ActivityPub. The Social Web Community Group is refining the protocol in the [ActivityPub Media Upload report](https://www.w3.org/wiki/SocialCG/ActivityPub/MediaUpload). + +## 7. Server to Server Interactions +Servers communicate with other servers and propagate information across the social graph by posting activities to actors' inbox endpoints. An Activity sent over the network *SHOULD* have an `id`, unless it is intended to be transient (in which case it *MAY* omit the `id`). + +**POST** requests (eg. to the inbox) *MUST* be made with a Content-Type of **application/ld+json; profile="https://www.w3.org/ns/activitystreams"** and `GET` requests (see also section 3.2 Retrieving objects) with an Accept header of **application/ld+json; profile="https://www.w3.org/ns/activitystreams"**. Servers *SHOULD* interpret a Content-Type or Accept header of **application/activity+json** as equivalent to **application/ld+json; profile="https://www.w3.org/ns/activitystreams"** for server-to-server interactions. + +In order to propagate updates throughout the social graph, Activities are sent to the appropriate recipients. First, these recipients are determined through following the appropriate links between objects until you reach an actor, and then the Activity is inserted into the actor's *inbox* (delivery). This allows recipient servers to: + + * conduct any side effects related to the Activity (for example, notification that an actor has liked an object is used to update the object's like count); + * deliver the Activity to recipients of the original object, to ensure updates are propagated to the whole social graph (see inbox delivery). + +Delivery is usually triggered by, for example: + + * an Activity being created in an actor's outbox with their Followers Collection as the recipient. + * an Activity being created in an actor's outbox with directly addressed recipients. + * an Activity being created in an actor's outbox with user-curated collections as recipients. + * an Activity being created in an actor's outbox or inbox which references another object. + +Servers performing delivery to the `inbox` or `sharedInbox` properties of actors on other servers *MUST* provide the `object` property in the activity: `Create`, `Update`, `Delete`, `Follow`, `Add`, `Remove`, `Like`, `Block`, `Undo`. Additionally, servers performing server to server delivery of the following activities *MUST* also provide the `target` property: `Add`, `Remove`. + +HTTP caching mechanisms [RFC7234](https://datatracker.ietf.org/doc/html/rfc7234) *SHOULD* be respected when appropriate, both when receiving responses from other servers as well as sending responses to other servers. + +### 7.1 Delivery +*The following is required by federated servers communicating with other federated servers only.* + +An activity is delivered to its targets (which are actors) by first looking up the targets' inboxes and then posting the activity to those inboxes. Targets for delivery are determined by checking the [ActivityStreams audience targeting](https://www.w3.org/TR/activitystreams-vocabulary/#audienceTargeting); namely, the `to`, `bto`, `cc`, `bcc`, and `audience` fields of the activity. + +The inbox is determined by first retrieving the target actor's JSON-LD representation and then looking up the `inbox` property. If a recipient is a `Collection` or `OrderedCollection`, then the server *MUST* dereference the collection (with the user's credentials) and discover inboxes for each item in the collection. Servers *MUST* limit the number of layers of indirections through collections which will be performed, which *MAY* be one. + +Servers *MUST* de-duplicate the final recipient list. Servers *MUST* also exclude actors from the list which are the same as the `actor` of the Activity being notified about. That is, actors shouldn't have their own activities delivered to themselves. + +**Note: Silent and private activities** + +What to do when there are no recipients specified is not defined, however it's recommended that if no recipients are specified the object remains completely private and access controls restrict the access to object. If the object is just sent to the "public" collection the object is not delivered to any actors but is publicly viewable in the actor's outbox. + +An HTTP POST request (with authorization of the submitting user) is then made to the inbox, with the Activity as the body of the request. This Activity is added by the receiver as an `item` in the inbox OrderedCollection. Attempts to deliver to an inbox on a non-federated server *SHOULD* result in a `405 Method Not Allowed` response. + +For federated servers performing delivery to a third party server, delivery *SHOULD* be performed asynchronously, and *SHOULD* additionally retry delivery to recipients if it fails due to network error. + +**Note:** Activities being distributed between actors on the same origin may use any internal mechanism, and are not required to use HTTP. + +**Note**: Relationship to Linked Data Notifications + +While it is not required reading to understand this specification, it is worth noting that ActivityPub's targeting and delivery mechanism overlaps with the [Linked Data Notifications](https://www.w3.org/TR/ldn/) specification, and the two specifications may interoperably combined. In particular, the `inbox` property is the same between ActivityPub and Linked Data Notifications, and the targeting and delivery systems described in this document are supported by Linked Data Notifications. In addition to JSON-LD compacted ActivityStreams documents, Linked Data Notifications also supports a number of RDF serializations which are not required for ActivityPub implementations. However, ActivityPub implementations which wish to be more broadly compatible with Linked Data Notifications implementations may wish to support other RDF representations. + +#### 7.1.1 Outbox Delivery Requirements for Server to Server +When objects are received in the outbox (for servers which support both Client to Server interactions and Server to Server Interactions), the server *MUST* target and deliver to: + + * The `to`, `bto`, `cc`, `bcc` or `audience` fields if their values are individuals or Collections owned by the actor. + +These fields will have been populated appropriately by the client which posted the Activity to the outbox. + +#### 7.1.2 Forwarding from Inbox +**Note**: Forwarding to avoid the ghost replies problem + +The following section is to mitigate the "ghost replies" problem which occasionally causes problems on federated networks. This problem is best demonstrated with an example. + +Alyssa makes a post about her having successfully presented a paper at a conference and sends it to her followers collection, which includes her friend Ben. Ben replies to Alyssa's message congratulating her and includes her followers collection on the recipients. However, Ben has no access to see the members of Alyssa's followers collection, so his server does not forward his messages to their inbox. Without the following mechanism, if Alyssa were then to reply to Ben, her followers would see Alyssa replying to Ben without having ever seen Ben interacting. This would be very confusing! + +When Activities are received in the inbox, the server needs to forward these to recipients that the origin was unable to deliver them to. To do this, the server *MUST* target and deliver to the values of `to`, `cc`, and/or `audience` if and only if all of the following are true: + + * This is the first time the server has seen this Activity. + * The values of `to`, `cc`, and/or `audience` contain a Collection owned by the server. + * The values of `inReplyTo`, `object`, `target` and/or `tag` are objects owned by the server. The server *SHOULD* recurse through these values to look for linked objects owned by the server, and *SHOULD* set a maximum limit for recursion (ie. the point at which the thread is so deep the recipients followers may not mind if they are no longer getting updates that don't directly involve the recipient). The server *MUST* only target the values of `to`, `cc`, and/or `audience` on the original object being forwarded, and not pick up any new addressees whilst recursing through the linked objects (in case these addressees were purposefully amended by or via the client). + +The server *MAY* filter its delivery targets according to implementation-specific rules (for example, spam filtering). + +#### 7.1.3 Shared Inbox Delivery +For servers hosting many actors, delivery to all followers can result in an overwhelming number of messages sent. Some servers would also like to display a list of all messages posted publicly to the "known network". Thus ActivityPub provides an optional mechanism for serving these two use cases. + +When an object is being delivered to the originating actor's followers, a server *MAY* reduce the number of receiving actors delivered to by identifying all followers which share the same sharedInbox who would otherwise be individual recipients and instead deliver objects to said `sharedInbox`. Thus in this scenario, the remote/receiving server participates in determining targeting and performing delivery to specific inboxes. + +Additionally, if an object is addressed to the Public special collection, a server *MAY* deliver that object to all known `sharedInbox` endpoints on the network. + +Origin servers sending publicly addressed activities to `sharedInbox` endpoints *MUST* still deliver to actors and collections otherwise addressed (through `to`, `bto`, `cc`, `bcc`, and `audience`) which do not have a `sharedInbox` and would not otherwise receive the activity through the `sharedInbox` mechanism. + +### 7.2 Create Activity +Receiving a `Create` activity in an `inbox` has surprisingly few side effects; the activity should appear in the actor's `inbox` and it is likely that the server will want to locally store a representation of this activity and its accompanying object. However, this mostly happens in general with processing activities delivered to an `inbox` anyway. + +### 7.3 Update Activity +For server to server interactions, an `Update` activity means that the receiving server *SHOULD* update its copy of the `object` of the same `id` to the copy supplied in the `Update` activity. Unlike the client to server handling of the Update activity, this is not a partial update but a complete replacement of the object. + +The receiving server *MUST* take care to be sure that the `Update` is authorized to modify its `object`. At minimum, this may be done by ensuring that the `Update` and its `object` are of same origin. + +### 7.4 Delete Activity +The side effect of receiving this is that (assuming the `object` is owned by the sending actor / server) the server receiving the delete activity *SHOULD* remove its representation of the `object` with the same `id`, and *MAY* replace that representation with a `Tombstone` object. + +(Note that after an activity has been transmitted from an origin server to a remote server, there is nothing in the ActivityPub protocol that can *enforce* remote deletion of an object's representation). + +### 7.5 Follow Activity +The side effect of receiving this in an **inbox** is that the server *SHOULD* generate either an `Accept` or `Reject` activity with the Follow as the `object` and deliver it to the `actor` of the Follow. The `Accept` or `Reject` *MAY* be generated automatically, or *MAY* be the result of user input (possibly after some delay in which the user reviews). Servers *MAY* choose to not explicitly send a `Reject` in response to a `Follow`, though implementors ought to be aware that the server sending the request could be left in an intermediate state. For example, a server might not send a `Reject` to protect a user's privacy. + +In the case of receiving an `Accept` referencing this `Follow` as the object, the server *SHOULD* add the `actor` to the object actor's Followers Collection. In the case of a `Reject`, the server *MUST NOT* add the actor to the object actor's Followers Collection. + +**Note** + +Sometimes a successful `Follow` subscription may occur but at some future point delivery to the follower fails for an extended period of time. Implementations should be aware that there is no guarantee that actors on the network will remain reachable and should implement accordingly. For instance, if attempting to deliver to an actor for perhaps six months while the follower remains unreachable, it is reasonable that the delivering server remove the subscriber from the `followers` list. Timeframes and behavior for dealing with unreachable actors are left to the discretion of the delivering server. + +### 7.6 Accept Activity +The side effect of receiving this in an **inbox** is determined by the type of the `object` received, and it is possible to accept types not described in this document (for example, an `Offer`). + +If the `object` of an `Accept` received to an **inbox** is a `Follow` activity previously sent by the receiver, the server *SHOULD* add the `actor` to the receiver's Following Collection. + +### Example X +Alice reviews Misha's follow request. Her account looks genuine, and not like a spammer. She accepts the follow, and it travels by POST back to Misha's `inbox`. +``` json +{ + "@context": "https://www.w3.org/ns/activitystreams", + "type": "Accept", + "actor": "https://example.com/users/alice", + "to": ["https://anotherinstance/users/misha"], + "cc": [], + "object": { + "@context": "https://www.w3.org/ns/activitystreams", + "id": "https://anotherinstance/users/misha/statuses/67839359385539", + "type": "Follow", + "actor": "https://anotherinstance/users/misha", + "object": "https://example.com/users/alice" + } +} +``` + +### 7.7 Reject Activity +The side effect of receiving this in an **inbox** is determined by the type of the `object` received, and it is possible to reject types not described in this document (for example, an `Offer`). + +If the `object` of a `Reject` received to an **inbox** is a `Follow` activity previously sent by the receiver, this means the recipient did not approve the `Follow` request. The server *MUST NOT* add the `actor` to the receiver's Following Collection. + +### Example X +Alice reviews Mallory's follow request. It's from an unfamiliar instance, and the posts there look like spam. She rejects the request, which is then sent via POST to Mallory's `inbox`. +``` json +{ + "@context": "https://www.w3.org/ns/activitystreams", + "type": "Reject", + "actor": "https://example.com/users/alice", + "to": ["https://unfamiliarinstance/users/mallory"], + "cc": [], + "object": { + "@context": "https://www.w3.org/ns/activitystreams", + "id": "https://unfamiliarinstance/users/mallory/statuses/7589238923642", + "type": "Follow", + "actor": "https://unfamiliarinstance/users/mallory", + "object": "https://example.com/users/alice" + } +} +``` + +### 7.8 Add Activity +Upon receipt of an `Add` activity into the **inbox**, the server *SHOULD* add the `object` to the collection specified in the `target` property, unless: + + * the `target` is not owned by the receiving server, and thus they can't update it. + * the `object` is not allowed to be added to the `target` collection for some other reason, at the receiver's discretion. + +### 7.9 Remove Activity +Upon receipt of a `Remove` activity into the **inbox**, the server *SHOULD* remove the `object` from the collection specified in the `target` property, unless: + + * the `target` is not owned by the receiving server, and thus they can't update it. + * the `object` is not allowed to be removed to the `target` collection for some other reason, at the receiver's discretion. + +### 7.10 Like Activity +The side effect of receiving this in an **inbox** is that the server *SHOULD* increment the object's count of likes by adding the received activity to the likes collection if this collection is present. + +### 7.11 Announce Activity (sharing/boosting) +Upon receipt of an `Announce` activity in an **inbox**, a server *SHOULD* increment the object's count of shares by adding the received activity to the `shares` collection if this collection is present. + +**Note** + +The `Announce` activity is effectively what is known as "sharing", "reposting", or "boosting" in other social networks. + +### Example X +Alice enjoys Misha's book review post. She boosts it so that her followers can also read it. The `object` field contains the `id` of Misha's post. +``` json +{ + "@context": "https://www.w3.org/ns/activitystreams", + "actor": "https://example.com/users/alice", + "cc": ["https://example.com/users/alice/followers"], + "id": "https://example.com/users/alice/statuses/24389572539/activity", + "object": "https://anotherinstance/users/misha/statuses/9254264627254", + "published": "2022-10-07T11:04:48Z", + "to": ["https://www.w3.org/ns/activitystreams#Public"], + "type": "Announce" +} +``` + +### 7.12 Undo Activity +The `Undo` activity is used to undo the side effects of previous activities. See the ActivityStreams documentation on [Inverse Activities and "Undo"](https://www.w3.org/TR/activitystreams-vocabulary/#inverse). The scope and restrictions of the `Undo` activity are the same as for the Undo activity in the context of client to server interactions, but applied to a federated context. + +## A. Internationalization +*This section is non-normative.* + +Building an international base of users is important in a federated network. [ActivityStreams provides tooling for internationalization of content](https://www.w3.org/TR/activitystreams-core/#naturalLanguageValues), which should be used whenever possible. However, it can be difficult for implementations to determine which [`@language` property](https://www.w3.org/TR/activitystreams-core/#defaultlangcontext) to provide for user-submitted content. The [W3C Internationalization group](https://www.w3.org/International/) provides some [guidance on language detection](https://www.w3.org/International/wiki/LanguageDetection). + +To support multiple languages, `Note` and `Article` objects can include `contentMap`, in addition to the `content` field. For Public notes this can help clients to display only posts which contain languages understood by the reader. + +### Example X +``` json +{ + "@context": "https://www.w3.org/ns/activitystreams", + "type": "Create", + "id": "https://instancedomain/users/alyssa/statuses/63783815/activity", + "to": ["https://instancedomain/users/alyssa/followers", + "https://www.w3.org/ns/activitystreams#Public"], + "actor": "https://instancedomain/users/alyssa", + "object": { + "type": "Note", + "id": "https://instancedomain/users/alyssa/statuses/63783815", + "attributedTo": "https://instancedomain/users/alyssa", + "to": ["https://instancedomain/users/alyssa/followers", + "https://www.w3.org/ns/activitystreams#Public"], + "published": "2035-08-02T09:27:41Z", + "rejectReplies": False, + "mediaType": "text/html", + "attachment": [], + "summary": "", + "content": "Nous construisons un web social décentralisé", + "contentMap": { + "fr": "Nous construisons un web social décentralisé" + } + } +} +``` + +## B. Security Considerations +*This section is non-normative.* + +### B.1 Authentication and Authorization +ActivityPub uses authentication for two purposes; first, to authenticate clients to servers, and secondly in federated implementations to authenticate servers to each other. + +The authentication method is not determined by this specification, but in most client to server implementations it happens via [OAuth 2.0](https://datatracker.ietf.org/doc/html/rfc6749). Other methods may be used. + +Also see the [Social Web Community Group Authentication and Authorization best practices report](https://www.w3.org/wiki/SocialCG/ActivityPub/Authentication_Authorization). + +### B.2 Verification +Servers should not trust client submitted content, and federated servers also should not trust content received from a server other than the content's origin without some form of verification. + +Servers should be careful to verify that new content is really posted by the actor that claims to be posting it, and that the actor has permission to update the resources it claims to. See also section 3. Objects Authentication and Authorization. + +Verification of incoming posts SHOULD occur via a `http header signature` check. Currently, [draft 07 of the http signatures RFC](https://datatracker.ietf.org/doc/html/draft-cavage-http-signatures-07) has become the *de facto* standard, although later versions MAY be implemented provided that sufficient support exists between federated servers. + +In addition, to allow for relaying of posts [linked data signatures](https://w3c-ccg.github.io/data-integrity-spec) MAY be used. This can allow posts to be verified as authentic even if they have passed through intermediate servers. An incoming post SHOULD be considered valid if its `http header signature` fails but an attached `linked data signature` passes. + +### B.3 Accessing localhost URIs +It is often convenient while developing to test against a process running on localhost. However, permitting requests to localhost in a production client or server instance can be dangerous. Making requests to URIs on localhost which do not require authorization may unintentionally access or modify resources assumed to be protected to be usable by localhost-only. + +If your ActivityPub server or client does permit making requests to localhost URIs for development purposes, consider making it a configuration option which defaults to off. + +### B.4 URI Schemes +There are many types of URIs aside from just `http` and `https`. Some libraries which handle fetching requests at various URI schemes may try to be smart and reference schemes which may be undesirable, such as `file`. Client and server authors should carefully check how their libraries handle requests, and potentially whitelist only certain safe URI types, such as `http` and `https`. + +### B.5 Recursive Objects +Servers should set a limit on how deep to recurse while resolving objects, or otherwise specially handle ActivityStreams objects with recursive references. Failure to properly do so may result in denial-of-service security vulnerabilities. + +### B.6 Spam +Spam is a problem in any network, perhaps especially so in federated networks. While no specific mechanism for combating spam is provided in ActivityPub, it is recommended that servers filter incoming content both by local untrusted users and any remote users through some sort of spam filter. + +### B.7 Federation denial-of-service +Servers should implement protections against denial-of-service attacks from other, federated servers. This can be done using, for example, some kind of ratelimiting mechanism. Servers should be especially careful to implement this protection around activities that involve side effects. Servers *SHOULD* also take care not to overload servers with submissions, for example by using an exponential backoff strategy. + +### B.8 Client-to-server ratelimiting +Servers should ratelimit API client submissions. This serves two purposes: + + * It prevents malicious clients from conducting denial-of-service attacks on the server. + * It ensures that the server will not distribute so many activities that it triggers another server's denial-of-service protections. + +### B.9 Client-to-server response denial-of-service +In order to prevent a client from being overloaded by oversized Collections, servers should take care to limit the size of Collection pages they return to clients. Clients should still be prepared to limit the size of responses they are willing to handle in case they connect to malicious or compromised servers, for example by timing out and generating an error. + +### B.10 Sanitizing Content +Any activity field being rendered for browsers (or other rich text enabled applications) should take care to sanitize fields containing markup to prevent cross site scripting attacks. + +### B.11 Not displaying bto and bcc properties +`bto` and `bcc` already must be removed for delivery, but servers are free to decide how to represent the object in their own storage systems. However, since `bto` and `bcc` are only intended to be known/seen by the original author of the object/activity, servers should omit these properties during display as well. + +## C. Acknowledgements +*This section is non-normative.* + +This specification comes from years of hard work and experience by a number of communities exploring the space of federation on the web. In particular, much of this specification is informed by [OStatus](https://www.w3.org/community/ostatus/wiki/Main_Page) and the [Pump API](https://github.com/pump-io/pump.io/blob/master/API.md), as pioneered by StatusNet (now GNU Social) and Pump.io. Both of those initiatives were the product of many developers' hard work, but more than anyone, Evan Prodromou has been a constant leader in this space, and it is unlikely that ActivityPub would exist in something resembling its current state without his hard work. + +Erin Shepherd built the initial version of this specification, borrowed from the ideas in the [Pump API](https://github.com/pump-io/pump.io/blob/master/API.md) document, mostly as a complete rewrite of text, but sharing most of the primary ideas while switching from ActivityStreams 1 to ActivityStreams 2. + +Jessica Tallon and Christine Lemmer-Webber took over as editors when the standard moved to the W3C Social Working Group and did the majority of transition from Erin Shepherd's document to its current state as ActivityPub. Much of the document was rewritten and reorganized under the long feedback process of the Social Working Group. + +ActivityPub has been shaped by the careful input of many members in the W3C Social Working Group. ActivityPub especially owes a great debt to Amy Guy, who has done more than anyone to map the ideas across the different Social Working Group documents through her work on Social-Web-Protocols. Amy also laid out the foundations for a significant refactoring of the ActivityPub spec while sprinting for four days with Christopher Allan Webber. These revisions lead to cleaner separation between the client to server and server components, along with clarity about ActivityPub's relationship to LDN, among many other improvements. Special thanks also goes to Benjamin Goering for putting together the implementation report template. We also thank mray for producing the spectacular tutorial illustrations (which are licensed under the same license as the rest of this document). + +Many people also helped ActivityPub along through careful review. In particular, thanks to: Aaron Parecki, AJ Jordan, Benjamin Goering, Caleb Langeslag, Elsa Balderrama, elf Pavlik, Eugen Rochko, Erik Wilde, Jason Robinson, Manu Sporny, Michael Vogel, Mike Macgirvin, nightpool, Puck Meerburg, Sandro Hawke, Sarven Capadisli, Tantek Çelik, and Yuri Volkov. + +This document is dedicated to all citizens of planet Earth. You deserve freedom of communication; we hope we have contributed in some part, however small, towards that goal and right. diff --git a/tests.py b/tests.py index 31f7b0746..e6ed196a1 100644 --- a/tests.py +++ b/tests.py @@ -5715,16 +5715,68 @@ def _test_markdown_to_html(): markdown = 'This is a quotation:\n' + \ '> Some quote or other' - assert markdown_to_html(markdown) == 'This is a quotation:
        ' + \ + expected = \ + 'This is a quotation:
        \n' + \ '
        Some quote or other
        ' + result = markdown_to_html(markdown) + if result != expected: + print(result) + assert result == expected markdown = 'This is a multi-line quotation:\n' + \ '> The first line\n' + \ '> The second line' assert markdown_to_html(markdown) == \ - 'This is a multi-line quotation:
        ' + \ + 'This is a multi-line quotation:
        \n' + \ '
        The first line The second line
        ' + markdown = 'This is a list of points:\n' + \ + ' * Point 1\n' + \ + ' * Point 2\n\n' + \ + 'And some other text.' + result = markdown_to_html(markdown) + expected = \ + 'This is a list of points:
        \n
          ' + \ + '\n
        • Point 1
        • \n' + \ + '
        • Point 2
        • \n
        • \n

        \n' + \ + 'And some other text.
        \n' + if result != expected: + print(result) + assert result == expected + + markdown = 'This is a list of points:\n' + \ + ' * **Point 1**\n' + \ + ' * *Point 2*\n\n' + \ + 'And some other text.' + result = markdown_to_html(markdown) + expected = \ + 'This is a list of points:
        \n
          \n' + \ + '
        • Point 1
        • \n' + \ + '
        • Point 2
        • \n
        • \n

        \n' + \ + 'And some other text.
        \n' + if result != expected: + print(result) + assert result == expected + + markdown = 'This is a code section:\n' + \ + '``` json\n' + \ + '10 PRINT "YOLO"\n' + \ + '20 GOTO 10\n' + \ + '```\n\n' + \ + 'And some other text.' + result = markdown_to_html(markdown) + expected = \ + 'This is a code section:
        \n' + \ + '\n' + \ + '10 PRINT "YOLO"\n' + \ + '20 GOTO 10\n' + \ + '\n' + \ + '
        \n' + \ + 'And some other text.
        \n' + if result != expected: + print(result) + assert result == expected + markdown = 'This is **bold**' assert markdown_to_html(markdown) == 'This is bold' @@ -5732,27 +5784,34 @@ def _test_markdown_to_html(): assert markdown_to_html(markdown) == 'This is italic' markdown = 'This is _underlined_' - assert markdown_to_html(markdown) == 'This is
          underlined
        ' + assert markdown_to_html(markdown) == 'This is underlined' markdown = 'This is **just** plain text' assert markdown_to_html(markdown) == 'This is just plain text' markdown = '# Title1\n### Title3\n## Title2\n' - assert markdown_to_html(markdown) == \ - '

        Title1

        Title3

        Title2

        ' + expected = '

        Title1

        \n

        Title3

        \n

        Title2

        \n' + result = markdown_to_html(markdown) + if result != expected: + print(result) + assert result == expected markdown = \ 'This is [a link](https://something.somewhere) to something.\n' + \ 'And [something else](https://cat.pic).\n' + \ 'Or ![pounce](/cat.jpg).' - assert markdown_to_html(markdown) == \ + expected = \ 'This is ' + \ - 'a link to something.
        ' + \ + 'a link to something.
        \n' + \ 'And ' + \ - 'something else.
        ' + \ + 'something else.
        \n' + \ 'Or pounce.' + result = markdown_to_html(markdown) + if result != expected: + print(result) + assert result == expected def _test_extract_text_fields_from_post(): diff --git a/theme/blue/theme.json b/theme/blue/theme.json index 411b27ccd..2eed2745a 100644 --- a/theme/blue/theme.json +++ b/theme/blue/theme.json @@ -1,4 +1,5 @@ { + "code-color": "white", "pwa-theme-color": "apple-mobile-web-app-status-bar-style", "pwa-theme-background-color": "black-translucent", "newswire-publish-icon": "True", diff --git a/theme/debian/theme.json b/theme/debian/theme.json index f9c07d159..405ffdc91 100644 --- a/theme/debian/theme.json +++ b/theme/debian/theme.json @@ -1,4 +1,5 @@ { + "code-color": "blue", "diff-add": "#111", "diff-remove": "#333", "pwa-theme-color": "apple-mobile-web-app-status-bar-style", diff --git a/theme/default/theme.json b/theme/default/theme.json index d7ff4ea04..0556f4e98 100644 --- a/theme/default/theme.json +++ b/theme/default/theme.json @@ -12,6 +12,7 @@ "liker-names-margin": "2%", "liker-names-vertical-spacing1": "50px", "liker-names-vertical-spacing2": "100px", + "code-color": "lightblue", "pwa-theme-color": "apple-mobile-web-app-status-bar-style", "pwa-theme-background-color": "black-translucent", "avatar-rounding": "10%", diff --git a/theme/hacker/theme.json b/theme/hacker/theme.json index cf569f784..482187cd3 100644 --- a/theme/hacker/theme.json +++ b/theme/hacker/theme.json @@ -1,4 +1,5 @@ { + "code-color": "lightblue", "pwa-theme-color": "apple-mobile-web-app-status-bar-style", "pwa-theme-background-color": "black-translucent", "dropdown-fg-color": "#9ad791", diff --git a/theme/henge/theme.json b/theme/henge/theme.json index e306adfd4..ffb940fb1 100644 --- a/theme/henge/theme.json +++ b/theme/henge/theme.json @@ -1,4 +1,5 @@ { + "code-color": "blue", "pwa-theme-color": "apple-mobile-web-app-status-bar-style", "pwa-theme-background-color": "black-translucent", "dropdown-fg-color": "white", diff --git a/theme/indymediaclassic/theme.json b/theme/indymediaclassic/theme.json index 17a6599e5..a815e6696 100644 --- a/theme/indymediaclassic/theme.json +++ b/theme/indymediaclassic/theme.json @@ -1,4 +1,5 @@ { + "code-color": "lightblue", "pwa-theme-color": "apple-mobile-web-app-status-bar-style", "pwa-theme-background-color": "black-translucent", "dropdown-fg-color": "white", diff --git a/theme/indymediamodern/theme.json b/theme/indymediamodern/theme.json index 3c7c55732..00f76e0e5 100644 --- a/theme/indymediamodern/theme.json +++ b/theme/indymediamodern/theme.json @@ -1,4 +1,5 @@ { + "code-color": "blue", "diff-add": "#111", "diff-remove": "#333", "pwa-theme-color": "apple-mobile-web-app-status-bar-style", diff --git a/theme/lcd/theme.json b/theme/lcd/theme.json index addd123a7..129b72b8f 100644 --- a/theme/lcd/theme.json +++ b/theme/lcd/theme.json @@ -1,4 +1,5 @@ { + "code-color": "blue", "pwa-theme-color": "apple-mobile-web-app-status-bar-style", "pwa-theme-background-color": "black-translucent", "dropdown-fg-color": "#33390d", diff --git a/theme/light/theme.json b/theme/light/theme.json index 2f2993d84..4e8a68662 100644 --- a/theme/light/theme.json +++ b/theme/light/theme.json @@ -1,6 +1,7 @@ { "diff-add": "#111", "diff-remove": "#333", + "code-color": "blue", "pwa-theme-color": "apple-mobile-web-app-status-bar-style", "pwa-theme-background-color": "black-translucent", "dropdown-fg-color": "#2d2c37", diff --git a/theme/night/theme.json b/theme/night/theme.json index da679cdc7..04282f669 100644 --- a/theme/night/theme.json +++ b/theme/night/theme.json @@ -1,4 +1,5 @@ { + "code-color": "lightblue", "pwa-theme-color": "apple-mobile-web-app-status-bar-style", "pwa-theme-background-color": "black-translucent", "dropdown-fg-color": "#0481f5", diff --git a/theme/pixel/theme.json b/theme/pixel/theme.json index 883e9ac91..57383a3e2 100644 --- a/theme/pixel/theme.json +++ b/theme/pixel/theme.json @@ -1,4 +1,5 @@ { + "code-color": "blue", "diff-add": "#111", "diff-remove": "#333", "pwa-theme-color": "apple-mobile-web-app-status-bar-style", diff --git a/theme/purple/theme.json b/theme/purple/theme.json index c85bb9b58..98d74071d 100644 --- a/theme/purple/theme.json +++ b/theme/purple/theme.json @@ -1,4 +1,5 @@ { + "code-color": "lightblue", "pwa-theme-color": "apple-mobile-web-app-status-bar-style", "pwa-theme-background-color": "black-translucent", "dropdown-fg-color": "#f98bb0", diff --git a/theme/rc3/theme.json b/theme/rc3/theme.json index 87ff129f6..35d52d7bb 100644 --- a/theme/rc3/theme.json +++ b/theme/rc3/theme.json @@ -1,4 +1,5 @@ { + "code-color": "lightblue", "pwa-theme-color": "apple-mobile-web-app-status-bar-style", "pwa-theme-background-color": "black-translucent", "dropdown-fg-color": "white", diff --git a/theme/solidaric/theme.json b/theme/solidaric/theme.json index 4598b5e78..5d4a96dde 100644 --- a/theme/solidaric/theme.json +++ b/theme/solidaric/theme.json @@ -1,4 +1,5 @@ { + "code-color": "blue", "pwa-theme-color": "apple-mobile-web-app-status-bar-style", "pwa-theme-background-color": "black-translucent", "dropdown-fg-color": "#2d2c37", diff --git a/theme/starlight/theme.json b/theme/starlight/theme.json index df5d57992..5e0ef7c10 100644 --- a/theme/starlight/theme.json +++ b/theme/starlight/theme.json @@ -1,4 +1,5 @@ { + "code-color": "lightblue", "pwa-theme-color": "apple-mobile-web-app-status-bar-style", "pwa-theme-background-color": "black-translucent", "dropdown-fg-color": "#ffc4bc", diff --git a/theme/zen/theme.json b/theme/zen/theme.json index 24769fd42..2a3472a02 100644 --- a/theme/zen/theme.json +++ b/theme/zen/theme.json @@ -1,4 +1,5 @@ { + "code-color": "blue", "font-size-likes-mobile": "64px", "likes-margin-left-mobile": "20px", "likes-margin-right-mobile": "0px", diff --git a/translations/ar.json b/translations/ar.json index 2627fa355..5340cc17b 100644 --- a/translations/ar.json +++ b/translations/ar.json @@ -564,5 +564,6 @@ "Save": "يحفظ", "Switch to moderation view": "قم بالتبديل إلى عرض الاعتدال", "Minimize attached images": "تصغير الصور المرفقة", - "SHOW MEDIA": "عرض الوسائط" + "SHOW MEDIA": "عرض الوسائط", + "ActivityPub Specification": "مواصفات ActivityPub" } diff --git a/translations/bn.json b/translations/bn.json index f572a1d96..553d29482 100644 --- a/translations/bn.json +++ b/translations/bn.json @@ -564,5 +564,6 @@ "Save": "সংরক্ষণ", "Switch to moderation view": "সংযম দৃশ্যে স্যুইচ করুন", "Minimize attached images": "সংযুক্ত ছবি ছোট করুন", - "SHOW MEDIA": "মিডিয়া দেখান" + "SHOW MEDIA": "মিডিয়া দেখান", + "ActivityPub Specification": "ActivityPub স্পেসিফিকেশন" } diff --git a/translations/ca.json b/translations/ca.json index eddad3773..67933223f 100644 --- a/translations/ca.json +++ b/translations/ca.json @@ -564,5 +564,6 @@ "Save": "Desa", "Switch to moderation view": "Canvia a la visualització de moderació", "Minimize attached images": "Minimitzar les imatges adjuntes", - "SHOW MEDIA": "MOSTRA ELS MITJANS" + "SHOW MEDIA": "MOSTRA ELS MITJANS", + "ActivityPub Specification": "Especificació d'ActivityPub" } diff --git a/translations/cy.json b/translations/cy.json index d35db8933..7247eee33 100644 --- a/translations/cy.json +++ b/translations/cy.json @@ -564,5 +564,6 @@ "Save": "Arbed", "Switch to moderation view": "Newid i wedd safoni", "Minimize attached images": "Lleihau delweddau sydd ynghlwm", - "SHOW MEDIA": "DANGOS CYFRYNGAU" + "SHOW MEDIA": "DANGOS CYFRYNGAU", + "ActivityPub Specification": "Manyleb GweithgareddPub" } diff --git a/translations/de.json b/translations/de.json index 2e92b79fd..f19a7411d 100644 --- a/translations/de.json +++ b/translations/de.json @@ -564,5 +564,6 @@ "Save": "Speichern", "Switch to moderation view": "Wechseln Sie zur Moderationsansicht", "Minimize attached images": "Angehängte Bilder minimieren", - "SHOW MEDIA": "MEDIEN ZEIGEN" + "SHOW MEDIA": "MEDIEN ZEIGEN", + "ActivityPub Specification": "ActivityPub-Spezifikation" } diff --git a/translations/el.json b/translations/el.json index fc46705aa..ea496a1fc 100644 --- a/translations/el.json +++ b/translations/el.json @@ -564,5 +564,6 @@ "Save": "Αποθηκεύσετε", "Switch to moderation view": "Μετάβαση σε προβολή εποπτείας", "Minimize attached images": "Ελαχιστοποιήστε τις συνημμένες εικόνες", - "SHOW MEDIA": "ΔΕΙΤΕ ΜΕΣΑ" + "SHOW MEDIA": "ΔΕΙΤΕ ΜΕΣΑ", + "ActivityPub Specification": "Προδιαγραφές ActivityPub" } diff --git a/translations/en.json b/translations/en.json index a8be883de..d283394d6 100644 --- a/translations/en.json +++ b/translations/en.json @@ -564,5 +564,6 @@ "Save": "Save", "Switch to moderation view": "Switch to moderation view", "Minimize attached images": "Minimize attached images", - "SHOW MEDIA": "SHOW MEDIA" + "SHOW MEDIA": "SHOW MEDIA", + "ActivityPub Specification": "ActivityPub Specification" } diff --git a/translations/es.json b/translations/es.json index e494d714a..c021c76a8 100644 --- a/translations/es.json +++ b/translations/es.json @@ -564,5 +564,6 @@ "Save": "Ahorrar", "Switch to moderation view": "Cambiar a la vista de moderación", "Minimize attached images": "Minimizar imágenes adjuntas", - "SHOW MEDIA": "MOSTRAR MEDIOS" + "SHOW MEDIA": "MOSTRAR MEDIOS", + "ActivityPub Specification": "Especificación de ActivityPub" } diff --git a/translations/fr.json b/translations/fr.json index c4aa74344..02adc075e 100644 --- a/translations/fr.json +++ b/translations/fr.json @@ -564,5 +564,6 @@ "Save": "Sauvegarder", "Switch to moderation view": "Passer en mode modération", "Minimize attached images": "Réduire les images jointes", - "SHOW MEDIA": "AFFICHER LES MÉDIAS" + "SHOW MEDIA": "AFFICHER LES MÉDIAS", + "ActivityPub Specification": "Spécification ActivityPub" } diff --git a/translations/ga.json b/translations/ga.json index f56c56c60..89e4839e1 100644 --- a/translations/ga.json +++ b/translations/ga.json @@ -564,5 +564,6 @@ "Save": "Sábháil", "Switch to moderation view": "Athraigh go dtí an t-amharc modhnóireachta", "Minimize attached images": "Íoslaghdaigh íomhánna ceangailte", - "SHOW MEDIA": "Taispeáin MEÁIN" + "SHOW MEDIA": "Taispeáin MEÁIN", + "ActivityPub Specification": "Sonraíocht ActivityPub" } diff --git a/translations/hi.json b/translations/hi.json index c7766c1f4..25da4a044 100644 --- a/translations/hi.json +++ b/translations/hi.json @@ -564,5 +564,6 @@ "Save": "बचाना", "Switch to moderation view": "मॉडरेशन दृश्य पर स्विच करें", "Minimize attached images": "संलग्न छवियों को छोटा करें", - "SHOW MEDIA": "मीडिया दिखाएं" + "SHOW MEDIA": "मीडिया दिखाएं", + "ActivityPub Specification": "गतिविधिपब विशिष्टता" } diff --git a/translations/it.json b/translations/it.json index 52f0c0e1b..b120d93ea 100644 --- a/translations/it.json +++ b/translations/it.json @@ -564,5 +564,6 @@ "Save": "Salva", "Switch to moderation view": "Passa alla visualizzazione moderazione", "Minimize attached images": "Riduci al minimo le immagini allegate", - "SHOW MEDIA": "MOSTRA MEDIA" + "SHOW MEDIA": "MOSTRA MEDIA", + "ActivityPub Specification": "Specifica ActivityPub" } diff --git a/translations/ja.json b/translations/ja.json index f751136be..2ecea1bcb 100644 --- a/translations/ja.json +++ b/translations/ja.json @@ -564,5 +564,6 @@ "Save": "保存", "Switch to moderation view": "モデレートビューに切り替えます", "Minimize attached images": "添付画像を最小限に抑える", - "SHOW MEDIA": "メディアを表示" + "SHOW MEDIA": "メディアを表示", + "ActivityPub Specification": "ActivityPubの仕様" } diff --git a/translations/ko.json b/translations/ko.json index 503175277..8dbfbb256 100644 --- a/translations/ko.json +++ b/translations/ko.json @@ -564,5 +564,6 @@ "Save": "구하다", "Switch to moderation view": "검토 보기로 전환", "Minimize attached images": "첨부된 이미지 최소화", - "SHOW MEDIA": "미디어 표시" + "SHOW MEDIA": "미디어 표시", + "ActivityPub Specification": "ActivityPub 사양" } diff --git a/translations/ku.json b/translations/ku.json index 9e5b086e6..fbbe26b22 100644 --- a/translations/ku.json +++ b/translations/ku.json @@ -564,5 +564,6 @@ "Save": "Rizgarkirin", "Switch to moderation view": "Biguherîne bo dîtina moderatoriyê", "Minimize attached images": "Wêneyên pêvekirî kêm bikin", - "SHOW MEDIA": "MEDYA NÎŞAN DE" + "SHOW MEDIA": "MEDYA NÎŞAN DE", + "ActivityPub Specification": "Specification ActivityPub" } diff --git a/translations/nl.json b/translations/nl.json index 3cd5a13e2..775c8d284 100644 --- a/translations/nl.json +++ b/translations/nl.json @@ -564,5 +564,6 @@ "Save": "Opslaan", "Switch to moderation view": "Overschakelen naar moderatieweergave", "Minimize attached images": "Bijgevoegde afbeeldingen minimaliseren", - "SHOW MEDIA": "TOON MEDIA" + "SHOW MEDIA": "TOON MEDIA", + "ActivityPub Specification": "ActivityPub-specificatie" } diff --git a/translations/oc.json b/translations/oc.json index 46cdd9ae2..98d73eedc 100644 --- a/translations/oc.json +++ b/translations/oc.json @@ -560,5 +560,6 @@ "Save": "Save", "Switch to moderation view": "Switch to moderation view", "Minimize attached images": "Minimize attached images", - "SHOW MEDIA": "SHOW MEDIA" + "SHOW MEDIA": "SHOW MEDIA", + "ActivityPub Specification": "ActivityPub Specification" } diff --git a/translations/pl.json b/translations/pl.json index e8b6f4a9e..feb0e953e 100644 --- a/translations/pl.json +++ b/translations/pl.json @@ -564,5 +564,6 @@ "Save": "Ratować", "Switch to moderation view": "Przełącz na widok moderacji", "Minimize attached images": "Zminimalizuj załączone obrazy", - "SHOW MEDIA": "POKAŻ MEDIA" + "SHOW MEDIA": "POKAŻ MEDIA", + "ActivityPub Specification": "Specyfikacja ActivityPub" } diff --git a/translations/pt.json b/translations/pt.json index 69c0d159c..b2725ce50 100644 --- a/translations/pt.json +++ b/translations/pt.json @@ -564,5 +564,6 @@ "Save": "Salvar", "Switch to moderation view": "Mudar para a visualização de moderação", "Minimize attached images": "Minimizar imagens anexadas", - "SHOW MEDIA": "MOSTRAR MÍDIA" + "SHOW MEDIA": "MOSTRAR MÍDIA", + "ActivityPub Specification": "Especificação do ActivityPub" } diff --git a/translations/ru.json b/translations/ru.json index 127ce94b9..bf21f25f3 100644 --- a/translations/ru.json +++ b/translations/ru.json @@ -564,5 +564,6 @@ "Save": "Сохранять", "Switch to moderation view": "Перейти в режим модерации", "Minimize attached images": "Свернуть прикрепленные изображения", - "SHOW MEDIA": "ПОКАЗАТЬ МЕДИА" + "SHOW MEDIA": "ПОКАЗАТЬ МЕДИА", + "ActivityPub Specification": "Спецификация ActivityPub" } diff --git a/translations/sw.json b/translations/sw.json index 9cde2161a..21d05b2b8 100644 --- a/translations/sw.json +++ b/translations/sw.json @@ -564,5 +564,6 @@ "Save": "Hifadhi", "Switch to moderation view": "Badili hadi mwonekano wa udhibiti", "Minimize attached images": "Punguza picha zilizoambatishwa", - "SHOW MEDIA": "ONESHA VYOMBO VYA HABARI" + "SHOW MEDIA": "ONESHA VYOMBO VYA HABARI", + "ActivityPub Specification": "Vipimo vya ActivityPub" } diff --git a/translations/tr.json b/translations/tr.json index ffcabb55e..95b1bba51 100644 --- a/translations/tr.json +++ b/translations/tr.json @@ -564,5 +564,6 @@ "Save": "Kaydetmek", "Switch to moderation view": "Denetleme görünümüne geç", "Minimize attached images": "Ekli resimleri simge durumuna küçült", - "SHOW MEDIA": "MEDYA GÖSTER" + "SHOW MEDIA": "MEDYA GÖSTER", + "ActivityPub Specification": "ActivityPub Spesifikasyonu" } diff --git a/translations/uk.json b/translations/uk.json index 9501a4193..86e92abaa 100644 --- a/translations/uk.json +++ b/translations/uk.json @@ -564,5 +564,6 @@ "Save": "Зберегти", "Switch to moderation view": "Перейти до режиму модерації", "Minimize attached images": "Мінімізуйте вкладені зображення", - "SHOW MEDIA": "ПОКАЗАТИ ЗМІ" + "SHOW MEDIA": "ПОКАЗАТИ ЗМІ", + "ActivityPub Specification": "Специфікація ActivityPub" } diff --git a/translations/yi.json b/translations/yi.json index 6d6b2d627..1ab354557 100644 --- a/translations/yi.json +++ b/translations/yi.json @@ -564,5 +564,6 @@ "Save": "היט", "Switch to moderation view": "באַשטימען צו מאַדעריישאַן מיינונג", "Minimize attached images": "מינאַמייז אַטאַטשט בילדער", - "SHOW MEDIA": "ווייַז מעדיע" + "SHOW MEDIA": "ווייַז מעדיע", + "ActivityPub Specification": "ActivityPub באַשרייַבונג" } diff --git a/translations/zh.json b/translations/zh.json index dc037c3fb..0f1f7d9ae 100644 --- a/translations/zh.json +++ b/translations/zh.json @@ -564,5 +564,6 @@ "Save": "节省", "Switch to moderation view": "切换到审核视图", "Minimize attached images": "最小化附加图像", - "SHOW MEDIA": "展示媒体" + "SHOW MEDIA": "展示媒体", + "ActivityPub Specification": "ActivityPub 规范" } diff --git a/webapp_column_left.py b/webapp_column_left.py index 40897ce63..20a0ff9d6 100644 --- a/webapp_column_left.py +++ b/webapp_column_left.py @@ -346,6 +346,9 @@ def get_left_column_content(base_dir: str, nickname: str, domain_full: str, html_str += \ '' + html_str += \ + '' html_str += \ '' @@ -505,7 +508,7 @@ def html_edit_links(css_cache: {}, translate: {}, base_dir: str, path: str, edit_links_form += \ '' - # the admin can edit terms of service and about text + # the admin can edit terms of service, about and specification text admin_nickname = get_config_param(base_dir, 'admin') if admin_nickname: if nickname == admin_nickname: @@ -547,5 +550,25 @@ def html_edit_links(css_cache: {}, translate: {}, base_dir: str, path: str, edit_links_form += \ '' + specification_filename = base_dir + '/accounts/activitypub.md' + specification_str = '' + if os.path.isfile(specification_filename): + with open(specification_filename, 'r', + encoding='utf-8') as fp_specification: + specification_str = fp_specification.read() + + edit_links_form += \ + '
        ' + edit_links_form += \ + ' ' + \ + translate['ActivityPub Specification'] + \ + '
        ' + edit_links_form += \ + ' ' + edit_links_form += \ + '
        ' + edit_links_form += html_footer() return edit_links_form diff --git a/webapp_podcast.py b/webapp_podcast.py index 64118cbdc..57ffbd1a1 100644 --- a/webapp_podcast.py +++ b/webapp_podcast.py @@ -102,7 +102,7 @@ def _html_podcast_chapters(link_url: str, if chapters_html: html_str = \ '
        \n' + \ - '
          \n' + chapters_html + '
        \n
        \n' + ' \n' + chapters_html + ' \n\n' return html_str diff --git a/webapp_post.py b/webapp_post.py index 0aeb895b5..f42207fb6 100644 --- a/webapp_post.py +++ b/webapp_post.py @@ -1008,7 +1008,7 @@ def _get_blog_citations_html(box_name: str, if translate.get(translated_citations_str): translated_citations_str = translate[translated_citations_str] citations_str = '

        ' + translated_citations_str + ':

        ' + \ - '
          \n' + citations_str + '
        \n' + '\n' + citations_str + '\n' return citations_str diff --git a/webapp_specification.py b/webapp_specification.py new file mode 100644 index 000000000..c686790e1 --- /dev/null +++ b/webapp_specification.py @@ -0,0 +1,69 @@ +__filename__ = "webapp_about.py" +__author__ = "Bob Mottram" +__license__ = "AGPL3+" +__version__ = "1.3.0" +__maintainer__ = "Bob Mottram" +__email__ = "bob@libreserver.org" +__status__ = "Production" +__module_group__ = "Web Interface" + +import os +from shutil import copyfile +from utils import get_config_param +from webapp_utils import html_header_with_website_markup +from webapp_utils import html_footer +from markdown import markdown_example_numbers +from markdown import markdown_to_html + + +def html_specification(css_cache: {}, base_dir: str, http_prefix: str, + domain_full: str, onion_domain: str, translate: {}, + system_language: str) -> str: + """Show the specification screen + """ + specification_filename = base_dir + '/specification/activitypub.md' + admin_nickname = get_config_param(base_dir, 'admin') + if os.path.isfile(base_dir + '/accounts/activitypub.md'): + specification_filename = base_dir + '/accounts/activitypub.md' + + if os.path.isfile(base_dir + '/accounts/login-background-custom.jpg'): + if not os.path.isfile(base_dir + '/accounts/login-background.jpg'): + copyfile(base_dir + '/accounts/login-background-custom.jpg', + base_dir + '/accounts/login-background.jpg') + + specification_text = 'ActivityPub Protocol Specification.' + if os.path.isfile(specification_filename): + with open(specification_filename, 'r', + encoding='utf-8') as fp_specification: + md_text = markdown_example_numbers(fp_specification.read()) + specification_text = markdown_to_html(md_text) + + specification_form = '' + css_filename = base_dir + '/epicyon-profile.css' + if os.path.isfile(base_dir + '/epicyon.css'): + css_filename = base_dir + '/epicyon.css' + + instance_title = \ + get_config_param(base_dir, 'instanceTitle') + specification_form = \ + html_header_with_website_markup(css_filename, instance_title, + http_prefix, domain_full, + system_language) + specification_form += \ + '
        ' + specification_text + '
        ' + if onion_domain: + specification_form += \ + '
        \n' + \ + '

        ' + \ + 'http://' + onion_domain + '

        \n
        \n' + if admin_nickname: + admin_actor = '/users/' + admin_nickname + specification_form += \ + '
        \n' + \ + '

        ' + \ + translate['Administered by'] + ' ' + admin_nickname + '. ' + \ + translate['Version'] + ' ' + __version__ + \ + '

        \n
        \n' + specification_form += html_footer() + return specification_form