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 incentive to work would 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 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. Specifically, what is meant by ‘moderate’ is that people's surplus wealth should tend towards proportionality with their ‘basic net contribution’ (i.e. their production minus their excessive consumption) 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 (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!!
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.1. 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 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.
3.1.2. 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.
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?
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.