2022 articles

Think Integration, Not Implementation

"Features are always and everywhere aspects of integration, not implementation."---Righting Software, Juval LöwyMy love for architecture has grown even more refined following the above description. The idea that designing against a feature spec is just ludicrous is one of the most counterintuitive ideas I've come across lately. It …

What's Not Special About 'Special Offers'

Special offers are not simple. While their intention is to make the proposition attractive to new clients, I find them very confusing especially if the intention is to establish a long-term business relationship. I believe that there are very particular cases where a special offer makes sense e.g. if it …

Software is Problem Solving Media

Media is designed to deliver some experience. Software is a special form of media with the goal of delivering a solution experience. In other words, unlike traditional passive media, software is active media for solving specific problems. That’s all there is to it!

The Achilles Heel of Formal Education

Universities are in the business of canonicalisation: they want to turn the exoticness of a career into a recipe for training thousands of young minds and in the process pocket the proceeds. There’s just one major problem with that: most illustrious careers are actually a hack resulting from a …

The Essence of Business Success

Success in business is predominantly the result of two tasks: outbidding and undercutting rivals for the same resources. Outbidding determines its capacity to consume resources and undercutting its capacity to conclude successful sales. While customer service and quality are very important, these are lagging measures. That is, it is far …

Test Coverage Should Be About State Space Not LOC

I've stated previously that test coverage by measuring lines of code (LOC) is not a reliable measure of code quality. The gold standard should be coverage of the state space. Most applications can completely be defined by a finite state machine: given a range of input parameters, the application can …

A4risms

“Digging for gold is easy. Finding where to dig for gold is blindingly hard.” [2022-10-21]"Good architecture makes construction easy." [2022-10-06]“The best time to start something is when it is finished.” (Jim Rohn)“What would fiction look like if it was funded by grants?” [2022-09-24]"Thinking is a very …

The Coupling of Information Technology Breakthroughs

It would be wonderful if hard drives could store hundreds of petabytes of data without a change in the size of disks. However, such changes would means corresponding exponential improvements in processors to clock data in and out, memory bandwidths and networks. It seems to me that the limitations we …

The Impartiality of Scientific Research

The scientific method's strength is its ability to lead to conclusions objectively. However, the immediate consequence of this is that by avoiding subjectivity it unwittingly assigns equal significance to every result. This is not to say that all results have the same value; rather, by not advocating any particular …

Simplicity is the Highest Form of Quality

I've been thinking about which measure of quality excels above all the rest and I can't help leaning towards simplicity. Of course, if a system is error-prone yet simple, it's not quite as simple as we expect it to be. Therefore, simplicity only counts when we are dealing with clean …

Design, Development and Testing Decoupled

The job title 'software tester' suggests the economic benefit of deferring software testing:after development is concluded, to a third party, not the person who wrote the code, andat the interface level.I've noticed that this job has grown in popularity and that it often does not require …

Great Quotes

“If you don’t at least occasionally contradict yourself, your position is not nearly complex enough.” - Terence McKenna

Paid to Think

Are you paid to think? Does your employer have you on the payroll, not just for your manual participation in some process, but for creative and original ideas? Then you are a knowledge worker in the pure sense. Knowledge work is nonlinear by design. It is impossible to guarantee a …

Django and Application State

Ever since I started writing applications in Django, one of the things that has perennially troubled me is the lack of awareness that Django apps have for application state. There is no interface by which a developer can express application state. While the framework does a remarkable job of capturing …

The Principle of Interfaces

Interfaces are predicated on the following idea: the number of items that may be interacted with to effect some effect is a tiny fraction of the number and manner of ways in which that effect may be produced. Interfaces serve as a way to drastically reduce complexity thereby hiding …

Entrepreneurship Is A Bid for Scarce Resources

The Garden of Eden was a system for the production and distribution of goods and services, but it was not an economy, because everything was available in unlimited abundance. Without scarcity, there is no need to economize– and therefore no economics.Thomas SowellEvery new business implicitly makes the claim …

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 …

Exponential Gains Require Exponential Effort

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 suspicion is that this non-linearity is typically …

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 …

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 …

The Social Effects of Quality

When you take the time to deliver high quality your users respond with open hearts. They cheer you on. They are more than willing to give back to you considering the convenience you have afforded them. The world is awash with base attempts that promise heaven and fail to even …

HPC: Excessive Inventory

The trend for most scientific computations to be run on clusters or grids hides the need for improvements in computational design. Using high performance computing (HPC) resources typically involves providing prodigious amounts of compute and memory (and by extension networking). It is inevitable that the demand for storage should increase …

Unmanageable

Some tasks are unmanageable. Their inherent complexity renders external accountability impossible because the level of understanding required is just as complex as carrying out the task as to make it too expensive to manage. Such a relationship requires trust from the manager and honesty from the executor. For example, scientific …

The Five Sources of Wealth

As far as I can tell, there are only five sources of wealth:InheritanceLuckCreativity (not mere imagination)Talent (at a world class standard)Theft (like most politicians in poor countries)Only one is within most peoples control and not subject to sudden loss: creativity.

A Startup Is A Promise

Every startup is a promise that the new product or service on offer will be here to stay at a quality level that meet expectations. The novelty of the startup allows its potential clients to give it a chance to fulfil this promise. This only last for so long after …

Capital Threshold

I've tried searching on Google for this but apparently it's not a thing. The idea of a capital threshold is the minimum required capital required for an investment to be profitable. It applies to different economic jurisdictions implying that different economies incurr different capital costs to establish enterprises. Ideally, an …

Advantages of A Mature System

A systems can be said to be mature when its quality output is optimised under the given inputs. This means that one would very rarely observe special causes as these have been driven out of the system due to a systematic attempt to address all such causes. In addition, because …

Using Database Views with Django

Here is an excellent article which shows just how to do that: https://rescale.com/using-database-views-in-django-orm/The objective is to have read-only, analysis database views for derivative data that is based on aggregation of the actual data tables. I think this should be best practice and probably be natively supported from Django.