J. R. Haigh
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?
• 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
• 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.
• 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.
1.4. Copyright and patent law is morally bankrupt
• 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.
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.
• 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.1. Declarative programming
2.2.1. Android applications
3. Help sought
3.1. Email software adapted to my needs written in Haskell
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 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 (or working in a Debian chroot on Android on ARMv7A).
3.2. Debian chroot on Android
Debian is superior to Android in many ways, especially for software development. However, I'm often without mains electricity, so my Android smartphone lasts for many hours longer than my laptop, days longer with a portable USB battery pack, or indefinitely in the presence of readily-available low-voltage renewable energy supplies. Having a proper GNU+Linux operating system on my phone would be very useful.
it must not require root access (à la GNURoot);
it must be worthy of inclusion to the F-Droid repository;
- graphical desktop which can be displayed directly on the phone and over USB tethering, either as USB Video Class or VNC over USB Ethernet;
- full read/write storage access of user storage;
- optional start on boot;
- access to other API features such as notifications, USB host mode, USB device emulation, Android USB accessory support, sensors, camera, microphone, etc..
3.3. 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 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.
3.4. Haskell applications in F-Droid
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?
3.5. Haskell on RISC-Ⅴ
Note: The ‘Ⅴ’ is Roman numeral 5.
In order of preference:
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.
JRHaigh registered on Freenode and OFTC. Currently I need help with my IRC software.