Design Pattern: Entity-Attribute-Value

icon for code development
2-D directed graph, Sparse Matrix. from Pajek network: Graph Drawing contest 1996

The entity-attribute-value pattern[PPR, en.WP] is one of those programming tools which is a hammer: once you know it, everything looks like a nail. And maybe, if you squint hard, you really can hammer just about any data problem with it. Which does not make it the right tool. Actually, it is almost never the right tool.

Which of course is why I am seriously considering using it. But let me write about the pattern to see if I know it well enough to explain it. Continue reading “Design Pattern: Entity-Attribute-Value”

Dipping toes back into a pool – architecting

icon for code development
code()
Desktop image found somewhere

Once upon a time I ate, breathed, and slept a certain codebase, and I almost got good with it. But what with one thing and another I let the skills rust for a long while, got off the jogging machine.

Now I am tentatively trying the water, different pools and different area – although still a CRUD for all that (or not). In my case all I wanted was a robust api to a set of relatively simple data store objects which are inter-related – the one is a library of the other which are containers for the third.

Every part of that ‘simple’ description is now in flux.

The slim framework logo
from SlimFramework.Com

Except the robust api framework – Slim. As far as I am aware there are very few (actually, zero) http apis which are as stable, fast, and extensible. The onion model is brilliant. And, importantly, there is a large base of code in the wild to draw on for inspiration.

Beyond Slim, though… my data models have become increasingly weird and complex. I may be storing the rendered objects, rather than data. Some of the data objects which should be relative are now potentially independent. And depending on the point of view, the containers may also be libraries. And there are binary blobs. Somehow I need to consider the binary blobs.

Feeping creature
by Sandy87

The big issue to begin with, though, is authentication. And the attendant issues of security. Which has me trawling back through some old code I wrote.

I should likely trim back, and by that I mean take a machete to, the feeping creaturism and set a minimal spec and achieve it.