Diff for "Supporters/JRHaigh"

Differences between revisions 25 and 69 (spanning 44 versions)
Revision 25 as of 2017-06-02 16:34:32
Size: 10352
Editor: JRHaigh
Comment: Moved first ‘Get it on F-Droid’ badge to left.
Revision 69 as of 2020-12-31 10:01:37
Size: 10691
Editor: JRHaigh
Comment: Decreased image width from 256px to 192px, to mitigate MoinMoin formatting issues for some window dimensions.
Deletions are marked like this. Additions are marked like this.
Line 1: Line 1:
## page was renamed from Fellows/JRHaigh
Line 7: Line 8:
[[https://commons.wikimedia.org/wiki/File:Street_children.jpg|{{https://upload.wikimedia.org/wikipedia/commons/thumb/c/c0/Street_children.jpg/512px-Street_children.jpg||width="192px",align="right"}}]]
<<Anchor(PBS)>>
Line 8: Line 11:
 * ''Wealth doesn't bring happiness, '''but poverty brings sadness'''''. Therefore, any society that aims to maximise the happiness of its people MUST redistribute wealth such that there is no poverty whatsoever! ''Wealth doesn't bring happiness, '''but poverty brings sadness'''''. Therefore, any society that aims to maximise the happiness of its people MUST redistribute wealth such that there is no poverty whatsoever!
Line 10: Line 13:
 * Poverty is ''not'' required to motivate labour; people who have modest amounts of wealth typically do still contribute labour to society. Billionaires, however, have no incentive to contribute to society. Although some inequality in the ''surplus'' helps motivate labour, the inequality ''must only be in the surplus'' (i.e. noöne can be poor) and ''must be moderate'' – people's surplus wealth should tend towards proportionality with their net contribution for motivation to be optimal. It seems to me that it would be optimal because it would be fairest.
 * Note also that economics isn't the only source of motivation for many people, and if unfair economics is removed from hindering them then they'd often be quite happy to do what they're good at without economic gratification ''as long as they're never poor.'' I for one am certainly motivated by more than sustaining my own existence.
=== Negative and positive externalities are distinctly different ===
 * A negative externality is an externalised cost, such as the impact of pollution on a community. Externalised costs have unlimited potential to impose poverty and suffering, so any decent society MUST seek to internalise those costs back onto the balance sheets of the offending organisation(s)!! If full compensation is enforced then it may turn-out that the activity is not economically viable in the bigger picture, and so this would likely cause the offending organisation(s) to decide to cease doing it altogether.
 * A positive externality is an externalised benefit, such as the maintenance of a public footpath. Typically, the benefit is distributive, and so positive externalities pose opportunities to provide public services and redistribute some wealth to everyone, including the poor. Not everyone who benefits from a public service can afford to compensate it, so, unlike with negative externalities, there should be no attempt to internalise distributive positive externalities – public services should be funded only by those who can comfortably afford to, instead of by all those who benefit from it. So-called ‘free riding’ does not matter if there is sufficient wealth in the world for everyone to live a comfortable, happy life, which overwhelmingly there is!!
Some people do not agree with redistribution of wealth and this is often because they are concerned about how a lack of economic incentive to work might cause society to collapse, to which I say this:
<<BR>>• Poverty is ''not'' required to motivate labour; people who have modest amounts of wealth typically do still contribute labour to society. Billionaires, however, have no economic incentive to contribute to society. Although some [[https://en.wikipedia.org/wiki/Wealth_mobility|mobile]] inequality in the ''surplus'' helps motivate labour, the inequality ''must only be in the surplus'' (i.e. noöne can be poor) and ''must be fully-mobile.'' Particularly, the wealthiest can only have become the wealthiest by having contributed the most to society and having consumed the least. Not because they were born the wealthiest and not by walking over others. Disadvantaging others is not contributing.
<<BR>>• It makes no sense for children to start life with any wealth inequality – all children ''must'' start with quality nutrition and care, safety, a quality education, and receive an equal distribution of inheritance. To want to give one's legacy wealth to ''only'' one's own children is a rather bazaar combination of altruism and selfishness which is detrimental to our society and needs to be challenged. When you're dead, you have nothing to gain from selfishness or greed. So why not [[http://rememberacharity.org.uk/making-a-will/why-leave-a-gift-in-your-will/|be charitable in your will]]?
<<BR>>[[https://commons.wikimedia.org/wiki/File:FOSDEM_2014_volunteers_and_staff.jpg|{{https://upload.wikimedia.org/wikipedia/commons/thumb/4/42/FOSDEM_2014_volunteers_and_staff.jpg/512px-FOSDEM_2014_volunteers_and_staff.jpg||width="192px",align="left"}}]]
• Note also that economics isn't the only source of motivation for many people, and if unfair economics is removed from hindering them then they'd often be quite happy to do what they're good at without economic gratification (i.e. voluntarily) ''as long as they're never poor.'' I for one am certainly motivated by more than sustaining my own existence.
<<Anchor(externalities)>>
=== Negative and positive externalities are distinguished by the PBS observation ===
[[https://commons.wikimedia.org/wiki/File:Iraq_IDP_Crisis_refugees_in_Mosul,_Northern_Iraq,_Western_Asia._06_November,_2016.jpg|{{https://upload.wikimedia.org/wikipedia/commons/thumb/9/9c/Iraq_IDP_Crisis_refugees_in_Mosul%2C_Northern_Iraq%2C_Western_Asia._06_November%2C_2016.jpg/512px-Iraq_IDP_Crisis_refugees_in_Mosul%2C_Northern_Iraq%2C_Western_Asia._06_November%2C_2016.jpg||width="192px",align="right"}}]]
• A negative externality is an externalised cost, such as the impact of pollution on a community. Externalised costs, as per the [[#PBS|Poverty-Brings-Sadness observation]], have unlimited potential to impose suffering, [[https://en.wikipedia.org/wiki/Forced_migration|displacement]], or even death, so any decent society MUST seek to internalise those costs back onto the balance sheets of the offending organisation(s)!! If full compensation is enforced then it may turn-out that the activity is not economically viable in the bigger picture, and so this would likely cause the offending organisation(s) to decide to cease doing it altogether. This would be true of the arms trade, the fossil fuel industry, the nuclear industry, and any other corporate activity which is only viable with the externalisation of vast costs.
<<BR>>[[https://commons.wikimedia.org/wiki/File:South-Western-Ambulance.jpg|{{https://upload.wikimedia.org/wikipedia/commons/thumb/1/19/South-Western-Ambulance.jpg/512px-South-Western-Ambulance.jpg||width="192px",align="left"}}]]
• A positive externality is an externalised benefit, such as the maintenance of a public footpath. Typically, the benefit is distributive, and so positive externalities pose opportunities to provide public services and redistribute some wealth to everyone, including the poor. Not everyone who benefits from a public service can afford to compensate it, so, unlike with negative externalities, there should be no attempt to internalise distributive positive externalities – public services should be funded only by those who can comfortably afford to, instead of by all those who benefit from it. So-called ‘free riding’ does not matter if there is sufficient wealth in the world for everyone to live a comfortable, happy life, which overwhelmingly there is!!

In summary, the distinction between negative and positive externalities is that, to minimise civilisation's sadness and suffering, externalised costs ''must'' be internalised whereas externalised benefits should be considered for public funding.
<<Anchor(censorright)>>
Line 16: Line 28:
 * Sharing of information, knowledge, and technology – i.e. ''copying'' – is a natural means to redistribute some wealth and heal some sadness. Royalties and licence fees seek to ''reverse'' this natural distribution of wealth, and to such an extent that they actually contribute to ''concentration'' of wealth, creating huge media and technology corporations that have overwhelming, tyrannical power! Copyright is ''not'' a right to copy, as the name would suggest, but a right to ''censor'' publications. (Indeed, it should really be called ‘''censorright''’.) Copyright and patent law needs to be completely abolished and replaced with basically the ''opposite'' legislation – to ''forbid'', not encourage, attempts to censor knowledge and monopolise technology. • [[https://youtu.be/G-pT1CMy0EU|{{https://upload.wikimedia.org/wikipedia/commons/1/13/YouTube_blocked_EMI_country_en.png||width="256px",align="right"}}]]Sharing of information, knowledge, and technology – i.e. ''copying'' – is a natural means to redistribute some wealth and heal some sadness. Royalties and licence fees seek to ''reverse'' this natural distribution of wealth, and to such an extent that they actually contribute to ''concentration'' of wealth, creating huge media and technology corporations that have overwhelming, tyrannical power! Copyright is ''not'' a right to copy, as the name would suggest, but a right to ''[[https://youtu.be/G-pT1CMy0EU|censor publications]]''. (Indeed, it should really be called ‘''censorright''’.) Copyright and patent law needs to be completely abolished and replaced with basically the ''opposite'' legislation – to ''forbid'', not encourage, attempts to censor knowledge and monopolise technology.
<<Anchor(licences)>>
Line 19: Line 32:
 * I'm concerned that projects that are not licensed under a patent-safe licence are vulnerable to [[https://en.wikipedia.org/wiki/Submarine_patent|submarine patents]] and may not actually be libre. As such, most of [[#Review|my recommendations]] are licensed under the GNU AGPLv3, GNU GPLv3, GNU LGPLv3, or Apache 2.0.
 *
[[https://en.wikipedia.org/wiki/Copyleft|{{https://upload.wikimedia.org/wikipedia/commons/thumb/8/8b/Copyleft.svg/128px-Copyleft.svg.png||width="128px",align="right"}}]]I'm a keen supporter of ''[[https://en.wikipedia.org/wiki/Copyleft|copyleft]]'' licences, especially the GNU AGPLv3 and GNU GPLv3, as they offer the best protections against [[https://en.wikipedia.org/wiki/Vendor_lock-in|vendor lock-in]] and corporate monopolisation. I believe that opponents of copyleft have either deeply-flawed reasoning or intent that is not benevolent – if protection of freedom is a violation of freedom then we need to rephrase the definition, ''not'' remove the protection!!!
<<BR>>[[https://en.wikipedia.org/wiki/Copyleft|{{https://upload.wikimedia.org/wikipedia/commons/8/8b/Copyleft.svg||width="128px",align="left"}}]]
I'm a keen supporter of '''''[[https://en.wikipedia.org/wiki/Copyleft|copyleft]]''''' licences, especially the [[https://gnu.org/licenses/gpl-3.0|GNU General Public License version 3 (GNU GPLv3)]], the [[https://gnu.org/licenses/agpl-3.0|GNU Affero General Public License version 3 (GNU AGPLv3)]], and the [[https://creativecommons.org/licenses/by-sa/4.0/|Creative Commons Attribution-ShareAlike licence (CC BY-SA)]], as they offer the best protections against [[https://en.wikipedia.org/wiki/Vendor_lock-in|vendor lock-in]] and corporate monopolisation. I believe that opponents of copyleft have either deeply-flawed reasoning or intent that is not benevolent – if protection of freedom is a violation of freedom then we need to rephrase the definition, ''not'' remove the protection!!!
<<BR>>
• I'm concerned that projects that are not licensed under a patent-safe licence are vulnerable to [[https://en.wikipedia.org/wiki/Submarine_patent|submarine patents]] and may not actually be libre. As such, most of [[#Review|my recommendations]] are licensed under the GNU AGPLv3, GNU GPLv3, GNU LGPLv3, or Apache 2.0.
<<Anchor(SaaPS)>>
Line 22: Line 38:
 * Our civilisation has become dependent on technology, including software. That means that software has become a NEED of the people, and should be treated as such. Just as our society NEEDS education, transport, healthcare, utilities, etc., software development MUST become a public service too.
 * Software developed ''for'' public services, absolutely MUST be free software as well. [[https://FSFE.org/news/newsletter.en.html|Stay tuned]] for the [[https://FSFE.org/|Free Software Foundation Europe]]'s exciting new '''Public Money, Public Code''' [[https://FSFE.org/campaigns/campaigns.en.html|campaign]]! 😉
Our civilisation has become dependent on technology, including software. That means that software has become a NEED of the people, and should be treated as such. Just as our society NEEDS education, transport, healthcare, utilities, etc., software development MUST become a public service too.
<<BR>>
Software developed ''for'' public services, absolutely MUST be free software as well. [[https://FSFE.org/news/newsletter.en.html|Stay tuned]] for the [[https://FSFE.org/|Free Software Foundation Europe]]'s exciting new '''[[https://PublicCode.eu|Public Money, Public Code]]''' [[https://FSFE.org/campaigns/campaigns.en.html|campaign]]! 😉
Line 25: Line 42:
=== Declarative programming ===
 * https://en.wikipedia.org/wiki/Declarative_programming
[[https://tryhaskell.org/|{{https://upload.wikimedia.org/wikipedia/commons/4/43/Haskell-Logo-Variation.png||width="128px",align="right"}}]]
==== Haskell ====
 * https://tryhaskell.org/
 * https://en.wikibooks.org/wiki/Haskell
Line 32: Line 43:
[[/RFA|{{https://upload.wikimedia.org/wikipedia/commons/thumb/0/0d/Get_it_on_F-Droid.svg/128px-Get_it_on_F-Droid.svg.png||width="128px",align="left"}}]] [[/RFA|{{https://upload.wikimedia.org/wikipedia/commons/0/0d/Get_it_on_F-Droid.svg||width="128px",align="left"}}]]
Line 35: Line 46:
=== Concatenative programming ===
 * https://en.wikipedia.org/wiki/Concatenative_programming_language
==== GForth ====
 * https://GForth.org
 * https://GForth.org/manual
Line 36: Line 52:
=== Haskell ===
==== Email software adapted to my needs ====
I need my email software to compensate for some of my organisation and communication deficiency. Currently, every email client that I've tried is unreliable, inefficient, or simply can't do what I want from it. There is also no email client written in Haskell for me to adapt, so this will have to be new, though at least there are some existing [[https://wiki.haskell.org/Applications_and_libraries/Network|Haskell libraries]] that can handle some aspects of email technology, such as SMTP, IMAP, and MIME.

The main features that I want in an email client are:
 * whitelist of receive addresses, stored in the IMAP folder tree;
 * automatic filtration of the Inbox by receive address and send address into folders of the form `/<receive address>/<send address>` if they exist;
 * efficient handling of thousands of folders;
 * folder list sorted chronologically;
 * message list expandable to a conversation;
 * incremental search within a folder or selection of folders;
 * automatic dereferencing and archival of remote content;
 * ability to compose and preview HTML emails, even if only by direct editing of the HTML;
 * Android support.
==== Adaptation of Haskell development tools ====
I find REPLs prohibitively inefficient, so I need some help to adapt GHCi/Haskelline to a workflow that is viable for me to return to programming. 2 main problems with the Read–Evaluate–Print–Loop interface are that:
 * the history is awfully messy, so is hardly useful; and
 * evaluations that take a long time to compute lock-up the loop until they complete.
REPLs are not the only way to implement an interactive programming interface, but unfortunately they are the most common. A better interactive interface would be to have multiple editable inputs that are concurrent, and where the expression is [[https://en.wikipedia.org/wiki/Pure_function|pure]], they could even be evaluated incrementally as the input is typed. This could be implemented in a plain text editor, with the product of an interactive session being a Haskell source file augmented with markup that provides placeholders for the results of evaluation. (The markup could also double-up as a means to embed unit tests.) In other words, there'd be seamless integration between experimenting with Haskell expressions and actually editing Haskell source code.

Yi Editor and Haskelline source code could be used as a starting point. Although this would technically be an integrated development environment, it wouldn't be much like a conventional IDE.
==== F-Droid ====
[[https://F-Droid.org/repository/browse/?fdfilter=Haskell|{{https://upload.wikimedia.org/wikipedia/commons/thumb/0/0d/Get_it_on_F-Droid.svg/128px-Get_it_on_F-Droid.svg.png||width="128px",align="right"}}]]
There are currently no Android applications written in Haskell in the F-Droid repository to demonstrate Android programming in Haskell. Please can you write an Android application in Haskell without any proprietary build tools and submit it to F-Droid?
<<BR>>[[https://www.sifive.com/products/hifive1/|{{https://www.sifive.com/assets/images/products/hifive1/hifive1-top-view.png||width="256px",align="left"}}]]
==== RISC-Ⅴ ====
''Note: The ‘Ⅴ’ is Roman numeral 5.''

Please can you demonstrate how to programme the [[https://en.wikipedia.org/wiki/HiFive1|HiFive1]], a [[https://en.wikipedia.org/wiki/RISC-Ⅴ|RISC-Ⅴ]] computer, in Haskell?
=== Haskell problems resolved! ===
There used to be requests for help with Haskell software here in this section, but I don't use Haskell anymore. I resolved my many issues with Haskell by moving on from it! I'm now learning [[https://GForth.org|GForth]] instead, and have already gained massive performance improvements of over 100× on some of my best Haskell code that I've rewritten in GForth with novice experience and in much less time, so there's absolutely no going back to Haskell!
Line 67: Line 56:
 In-person:: {{https://upload.wikimedia.org/wikipedia/commons/thumb/f/f1/Coat_of_arms_of_Shrewsbury.png/128px-Coat_of_arms_of_Shrewsbury.png||width="128px",align="right"}}I live in '''Shrewsbury''', Shropshire, Britain; I go to various monthly meetings as far as '''Birmingham''' and '''Manchester''', mainly relating to technological freedom and sustainability; I go to '''[[FOSDEM]]''' in '''Brussels''' every January since 2014; I go to '''Haskell Exchange''' in '''London''' every October since 2015.
 Email:: '''JRHaigh+public.20170602CINHWMES@FSFE.org''' ''Currently I need help with my email software.''
 IRC:: JRHaigh registered on Freenode and OFTC. ''Currently I need help with my IRC software.''
 In-person:: [[https://en.wikipedia.org/wiki/Shropshire|{{https://upload.wikimedia.org/wikipedia/en/d/d9/ShropshireCountyMap2009.jpg||width="256px",align="right"}}]]I live in '''Shrewsbury, Shropshire''', Britain; I used to go to various monthly meetings as far as Birmingham and Manchester, mainly relating to technological freedom and sustainability; I went to '''[[FOSDEM]]''' in Brussels every January/February between 2014 and 2020 (inclusive); I went to Haskell Exchange in London every October between 2015 and 2019 (inclusive). As is the case for many of us, the COVID19 pandemic has had a severe impact on my life. I've become less interested in travelling to learn about overly-complex software and more interested in staying local and connecting with nature.
 Instant messaging:: '''JRHaigh''' ''at'' '''Jabber''' ''dot'' '''[[https://Vikings.net|Vikings.net]]'''
 Email:: '''JRHaigh+ddaa0e550ca24563@Runbox.com'''

J. R. Haigh

1. Philosophical

https://commons.wikimedia.org/wiki/File:Street_children.jpg

1.1. Poverty brings sadness

Wealth doesn't bring happiness, but poverty brings sadness. Therefore, any society that aims to maximise the happiness of its people MUST redistribute wealth such that there is no poverty whatsoever!

1.2. Optimal motivation of labour requires fairest economics

Some people do not agree with redistribution of wealth and this is often because they are concerned about how a lack of economic incentive to work might cause society to collapse, to which I say this:
• Poverty is not required to motivate labour; people who have modest amounts of wealth typically do still contribute labour to society. Billionaires, however, have no economic incentive to contribute to society. Although some mobile inequality in the surplus helps motivate labour, the inequality must only be in the surplus (i.e. noöne can be poor) and must be fully-mobile. Particularly, the wealthiest can only have become the wealthiest by having contributed the most to society and having consumed the least. Not because they were born the wealthiest and not by walking over others. Disadvantaging others is not contributing.
• It makes no sense for children to start life with any wealth inequality – all children must start with quality nutrition and care, safety, a quality education, and receive an equal distribution of inheritance. To want to give one's legacy wealth to only one's own children is a rather bazaar combination of altruism and selfishness which is detrimental to our society and needs to be challenged. When you're dead, you have nothing to gain from selfishness or greed. So why not be charitable in your will?
https://commons.wikimedia.org/wiki/File:FOSDEM_2014_volunteers_and_staff.jpg • Note also that economics isn't the only source of motivation for many people, and if unfair economics is removed from hindering them then they'd often be quite happy to do what they're good at without economic gratification (i.e. voluntarily) as long as they're never poor. I for one am certainly motivated by more than sustaining my own existence.

1.3. Negative and positive externalities are distinguished by the PBS observation

https://commons.wikimedia.org/wiki/File:Iraq_IDP_Crisis_refugees_in_Mosul,_Northern_Iraq,_Western_Asia._06_November,_2016.jpg • A negative externality is an externalised cost, such as the impact of pollution on a community. Externalised costs, as per the Poverty-Brings-Sadness observation, have unlimited potential to impose suffering, displacement, or even death, so any decent society MUST seek to internalise those costs back onto the balance sheets of the offending organisation(s)!! If full compensation is enforced then it may turn-out that the activity is not economically viable in the bigger picture, and so this would likely cause the offending organisation(s) to decide to cease doing it altogether. This would be true of the arms trade, the fossil fuel industry, the nuclear industry, and any other corporate activity which is only viable with the externalisation of vast costs.
https://commons.wikimedia.org/wiki/File:South-Western-Ambulance.jpg • A positive externality is an externalised benefit, such as the maintenance of a public footpath. Typically, the benefit is distributive, and so positive externalities pose opportunities to provide public services and redistribute some wealth to everyone, including the poor. Not everyone who benefits from a public service can afford to compensate it, so, unlike with negative externalities, there should be no attempt to internalise distributive positive externalities – public services should be funded only by those who can comfortably afford to, instead of by all those who benefit from it. So-called ‘free riding’ does not matter if there is sufficient wealth in the world for everyone to live a comfortable, happy life, which overwhelmingly there is!!

In summary, the distinction between negative and positive externalities is that, to minimise civilisation's sadness and suffering, externalised costs must be internalised whereas externalised benefits should be considered for public funding.

https://youtu.be/G-pT1CMy0EUSharing of information, knowledge, and technology – i.e. copying – is a natural means to redistribute some wealth and heal some sadness. Royalties and licence fees seek to reverse this natural distribution of wealth, and to such an extent that they actually contribute to concentration of wealth, creating huge media and technology corporations that have overwhelming, tyrannical power! Copyright is not a right to copy, as the name would suggest, but a right to censor publications. (Indeed, it should really be called ‘censorright’.) Copyright and patent law needs to be completely abolished and replaced with basically the opposite legislation – to forbid, not encourage, attempts to censor knowledge and monopolise technology.

1.4.1. Public licences

Some public licences exist that provide a legal mechanism to mitigate or even oppose the tyranny that is incentivised by copyright and patent law.
https://en.wikipedia.org/wiki/Copyleft • I'm a keen supporter of copyleft licences, especially the GNU General Public License version 3 (GNU GPLv3), the GNU Affero General Public License version 3 (GNU AGPLv3), and the Creative Commons Attribution-ShareAlike licence (CC BY-SA), as they offer the best protections against vendor lock-in and corporate monopolisation. I believe that opponents of copyleft have either deeply-flawed reasoning or intent that is not benevolent – if protection of freedom is a violation of freedom then we need to rephrase the definition, not remove the protection!!!
• I'm concerned that projects that are not licensed under a patent-safe licence are vulnerable to submarine patents and may not actually be libre. As such, most of my recommendations are licensed under the GNU AGPLv3, GNU GPLv3, GNU LGPLv3, or Apache 2.0.

1.5. Software as a Public Service

• Our civilisation has become dependent on technology, including software. That means that software has become a NEED of the people, and should be treated as such. Just as our society NEEDS education, transport, healthcare, utilities, etc., software development MUST become a public service too.
• Software developed for public services, absolutely MUST be free software as well. Stay tuned for the Free Software Foundation Europe's exciting new Public Money, Public Code campaign! 😉

2. Technical

2.1. Review

/RFA

2.1.1. Android applications

See my Recommendations For Android.

2.2. Concatenative programming

2.2.1. GForth

3. Help sought

3.1. Haskell problems resolved!

There used to be requests for help with Haskell software here in this section, but I don't use Haskell anymore. I resolved my many issues with Haskell by moving on from it! I'm now learning GForth instead, and have already gained massive performance improvements of over 100× on some of my best Haskell code that I've rewritten in GForth with novice experience and in much less time, so there's absolutely no going back to Haskell!

4. Contact

In order of preference:

In-person

https://en.wikipedia.org/wiki/ShropshireI live in Shrewsbury, Shropshire, Britain; I used to go to various monthly meetings as far as Birmingham and Manchester, mainly relating to technological freedom and sustainability; I went to FOSDEM in Brussels every January/February between 2014 and 2020 (inclusive); I went to Haskell Exchange in London every October between 2015 and 2019 (inclusive). As is the case for many of us, the COVID19 pandemic has had a severe impact on my life. I've become less interested in travelling to learn about overly-complex software and more interested in staying local and connecting with nature.

Instant messaging

JRHaigh at Jabber dot Vikings.net

Email

JRHaigh+ddaa0e550ca24563@Runbox.com


Category/Homepage Category/UnitedKingdom

Supporters/JRHaigh (last edited 2021-02-03 11:23:13 by JRHaigh)