May articles

The Trinity of Software

There are three essential elements of software:TypesOperationsConstructsEverything else in software can be reduced to these three. We use types to construct models, operations to act on and between models and constructs to organise execution. Types may be provided by the language though these tend to be …

Peer-Reviewed Data Archives

Popular scientific data archives eventually run out of resources to curate their data. It is much more practical to shift to a peer review mode for data curation. This will require high quality tools which enable the scientific community to assess data quality and validate the data. It may also …

Does Object Oriented Programming Boost Productivity?

When done right, object oriented programming (OOP) converts the imperative nature of procedural programming into a set of declarative entities with imperative calls within and between them. The advantages of better reasonability, reusability and all the others depend on this. However, I am yet to meet someone who is able …

Exponential Gains Require Exponential Effort

Update: I've a new perspective on this...Simplification i.e. the process of reducing complexity, exacts a non-linear cost because the process of identifying complexity-reducting factors is complex. If it were not so then the substrate would not be complex. Simple substrates require linear effort in order to reduce them. My …

Adobe Failing to Read the Writing on the Wall

Adobe has been the darling of the creative industry for decades but it's insistence on it's cloud-only package model may soon result in its demise. The fact that people literally beg and cry to get it at a more affordable price is a sign that it has managed to establish …