Our world and everything we know consists at first sight of complexity. From the universe, processes on our planet and ourselves: everything we look at seems to be complex when we really start thinking about it.
What I am thinking about is if we can define metrics on on the one hand to calculate complexity and on the other hand patterns that arise when complexity becomes more complex. We could use this to more effectively use the right tools and processes on the right level.
If you have no clue of what I am talking about … I have the problem that probably you will not have a clue even when I explain it…. but I will try (briefly):
If you have 10 stamps you would care less about a system to manage stamps and even less about a process of ordening stamps but you are interested in their names e.g. “10 cent christmas stamp”, it’s what children do: they slowly begin to recognize names with objects: by doing so they start managing the complexity around them.
If you get to 10.000 stamps you slowly begin to feel that you: 1. want to orden them, e.g. by country or by value or by “pretty and not pretty” this is more or less what science does : this is of the family of apes and this is of the family of trees, these are called taxonomies. 2. you would like to have e.g. spreadsheet to make a list of them so you can go to a stamp collectors market and trade based on this list. In this list you would define properties of the stamp alongside with the name, this is what database does: being a structured collection of data with the emphasis on structured and what that means. You don’t need a process you just print out your list and go to these collector markets.
If you get to 1.000.000 stamps in your collection you definitely feel the need for more taxonomies (e.g. “tags”, “categories”), a complexer database and many more ways to handle this complexity. You also find the urge to slowly introduce some processes and stamp rules: stamps of high value will go in the high value album so you not mistakenly trade them etc… etc… You also will have the need of albums which give indications of default ordenings of stamps and catalogues which give the average values and so on. A finite list of possbilities to manage complexity. (I would like to make such a list when I have time, it would be needed for the solution of all of this)
Now… suppose you have developed a system or a novice process (catalogue, description, templates for entering stamp information or sell stamp forms, people) to manage large collections of stamps. Would you try to sell these to persons with only 10 stamps? Probably not.
Now… suppose you own a stamp company that has 99.000 departments in 200 countries. Managing this is uber-complex. You feel the need for standaard tools, databases, processes and so on. But for a specific department in one specific country there could be just 1 person managing 10 stamps. This person could care less about a system managing stamps and he or she is probably right because it would take more time to work with this system or process than simply handle the 10 stamps.
Now… IF that stamp company would pre-scribe 1 system to manage stamps the smaller departments would not benefit from it since their compleity level is not high enough. But… IF a stamp collection system would exist that would “scale” tools and processes depending on the complexity of that department … that would work.
So that is what I am thinking about: a scalable system that, depending on complexity, introduces or scales complexity reduction tools and processs automatically. That “automatically” means no human intervention would be needed since the system would know that with a metric of 5 stamps no database is needed and with 10.000 stamps it would automatically introuduce new “help” since the break even point between “going crazy of too many stamps” and “learning and registering them in a new tool” would be ideal.
Another example is development:
If you are a single person out there creating your own website with WordPress … you could care less about version management. You don’t even have a clue what it is.
If you have 25 websites that you work on in parallel you read about version management and e.g. install subversion or git or mercurial to at least have components of often used chunks of code that you can name e.g. “jquery gallery version 0.1″ and “jquery gallery verison 0.2″ that you use in different sites at the same time (version management tools give you the benefit that you can name each iteration of your code). At that stage you could care less about complexer management using e.g. configuration management tools and processes. you probably will work with “todo lists” in a shared spreadsheet or something alike. Just because the complexity level does not yet drive you crazy enough. “you can handle it”.
If you have 100 large websites and you work on them with 100 people in bursts of improvement… you slowly go crazy because people are doing the same stuff on the same code and you feel the need to more componentize stuff, you might even feel the need to somehow handle the environment you develop it on and the environment you deploy to, so you slowly move to configuration management and configuration management tooling e.g. ClearCase: being able to “play” with bigger chunks of versions that you combine e.g. “on production server 23″ and also under development on development server 2″. You start using some kind of system that can handle “what everyone is doing”: a change managment system. It’s just because the complexity is there … so you are forced to use “something” that helps you reduce or at least manage that complexity.
At a certain stage e.g. working with 500 people on many different parts of code you even would hire “people who manage that complexity” e.g. configuration managers or change managers or requirement managers whose job it basically is to think about ways to reduce complexity or at least make it manageable. A good configuration manager has experience on how to reduce complexity. A really hard job (and ofcourse not understandable why it would needed if you work in a less complexer environment or are just 1 node in that group of 500 people versus being the manager of those 500 people).
So… what I am thinking about is … if some kind of system could be made that calculates complexity and based on that automatically “surrounds” people with the appropriate level of tools to manage complexity that would be … nice.
The example above are just specific examples of tools or processes around stamps or “IT” what Im thinking of is a bigger approach, start here: http://en.wikipedia.org/wiki/Ontology. And read: http://en.wikipedia.org/wiki/Upper_ontology and maybe the chapter “Arguments for the infeasibility of an upper ontology” and “Arguments for the feasibility of an upper ontology“. Because in the end, it would be needed to create something like this on a foundational layer as one of the chunks “in there”.
In the IT world some ready made ontologies are available so that the persons responsible for thinking of things to manage complexity do not have to start off from scratch. You can think of all kinds of frameworks ranging from ITIL to RUP that encompass assets and processes and handy ready made templates to “measurement of maturity” as CMMI, a gazillion amount of tools that integrate or integrate not with these processes and so on. And then on a meta level methods and tools to combine these frameworks and produce new ones. Actually … too much to descibe in a quick blog post.
So… I think… there is a little puzzle piece missing here. It’s the “component” that scales the meta solution more or less automagically based on complexity level.
And I do realize that metrics for complexity are dependent on many factors including the specific domain.
Noone will ever read this so I´m safe So… let me copy and paste something to combine in this to combine later with upper ontologies and meta modeling and “the scale on when what is needed for the people in the specific case based on the complexity surrounding them” :
Process philosophy (or ontology of becoming) identifies metaphysical reality with change and development. Since the time of Plato and Aristotle, philosophers have posited true reality as “timeless”, based on permanent substances, whilst processes are denied or subordinated to timeless substances. If Socrates changes, becoming sick, Socrates is still the same (the substance of Socrates being the same), and change (his sickness) only glides over his substance: change is accidental, whereas the substance is essential. Therefore, classic ontology denies any full reality to change, which is conceived as only accidental and not essential. This classical ontology is what made knowledge and a theory of knowledge possible, as it was thought that a science of something in becoming was an impossible feat to achieve.
In opposition to the classical model of change as purely accidental and illusory (as by Aristotle), process philosophy regards change as the cornerstone of reality–the cornerstone of the Being thought as Becoming. Modern philosophers who appeal to process rather than substance include Heidegger, Charles Peirce, Alfred North Whitehead, Robert M. Pirsig, Charles Hartshorne, Arran Gare and Nicholas Rescher. In physics Ilya Prigogine distinguishes between the “physics of being” and the “physics of becoming”. Process philosophy covers not just scientific intuitions and experiences, but can be used as a conceptual bridge to facilitate discussions among religion, philosophy, and science
Will I go crazy thinking about this?
A single developer who starts using a version management system is doing this to manage complexity. His concern is “his code” and he started doing this because he started thinking about the complexity of his parallel used codebases. a project manager who starts to chunk up work in a breakdown structure is doing exactly the same. We can scale this larger and larger and larger and larger and at the end we end up with branches of philosophy. whose concern it is to manage complexity of “everything” via a structured approach. On this highest level the reason to do this is to “explain the world” and practically it gave us all sciences and probably everything you around you. So if all this can be made scalable it has to work on the top level and the lowest level and all the levels in between and depending on the level the complexity management and reduction meta level would scale along. Basically everyone human is doing this stuff. In your household you manage “budget” by making a taxonomy of companies and organizations you have a financial relation with and quantify this by adding “fields” such as amount of money that transferred between you and the company. (You manage “likes” on facebook by giving this same taxonomy of companies and organization a “like” or “no like”). If you run a smaller project you will use simpler tools and processes to manage the complexity. If you are responsible of multiple smaller projects that use these simpler tools and processes you will use tools and processes that are available to manage even greater complexity etc… but the “meta model” behind ALL of these tools, processes scaling up would be needed to make such a component.
Maybe a key lies in the philosophy of science, but I have only started reading books about it.
“Goede versus foute muziek”, dat was de gedachte die door mijn hoofd schoot toen ik deze avond Pinkpop keek.
De “christian rock” band genaamd “Mastedon” werd door Eric Corton en geinterviewden aangehaald als “goede muziek” (niet alleen vanwege hun jezus liedjes maar ook omdat het progressieve rock is). Toen daarna een optreden van Keane te zien was las ik de omschrijving op TV en schoot “foute muziek” door me heen (ik zie de zwijmelende tieners al voor me).
Een collega van mij houdt van schlagers en heeft de complete collectie van Modern Talking, de italo disco band. Van de week was er op de TV de film “ABBA de movie” en regelmatig luister ik op Q-music naar het foute uur. Ik heb zelf aardig wat cd’s van Barbra Streisand… en ik mensen die helemaal los gaan bij Frans Bauer. Allemaal fout.
Maar … welke muziek is nou fout en welke niet?
Foute muziek heeft niet zoveel te maken met muziek die je leuk moet vinden of niet. Tenslotte houdt iedereen van muziek en verkoopt elke artiest wel plaatjes aan zijn eigen publiek. Iedereen mag natuurlijk houden van welke artiesten dan ook. Maar… wat is het nou? Is er een definitie van te geven? Volgens de Nederlandse wikipedia is dat niet zo. (Then again, als de Nederlandstalige wikipedia dat voorschrijft is waarschijnlijk het tegendeel waar).
Hier een paar observaties:
- Nederlandstalige muziek die in de “TROS” hoek zit, is al snel “fout”. Zo is Frans Bauer #1 op de foute lijst, #4 Paul de Leeuw, #7 de George Baker Selection, #8 Boney M en #13 Jan Smit.
- Muziek uit de jaren 80 (en vooral disco muziek) is grotendeels fout: Abba (#2), John Travolta & Olivia Newton John (#9) en Kylie Minogue en Jason Donovan (#12) als voorbeeld (let alone Sabrina met “Boys” of Europe met “The final countdown”) (of Army of Lovers met Crucified)
- Progressieve rock zoals Pink Floyd ontbreekt grotendeels op de lijst maar symphonische rock, als onderdeel, komt dan wel vaker terug met name de grote hits uit de jaren 80.
- Motown is vrijwel volledig fout, de Supremes zijn 5 keer aanwezig op de lijst
- Vrijwel alle muziek die mensen op feesten de dansvloer op drijft is fout (dat betekent dat “goede muziek” in ieder geval niet “dansbaar” is)
Ik heb nog niet volledig in beeld wat fout is en wat niet. Wellicht is het een idee om de foute lijst op q-music eens te sorteren op genre, jaartal, taal e.d. om er wat dichter bij te landen: welke genres staan er niet tussen en welke jaartallen staan er niet tussen? Dat zou het begin van een verkenning kunnen zijn.
Heel erg fout en een beetje fout
Instinctief zou ik ook denken dat er muziek is die “heel erg fout is” en muziek die “een beetje fout is”. Dus een zekere gradatie daarin zou ook een idee zijn. Dat zou kunnen door interviews maar ook door te kijken naar de “foute playlists” op Spotify (duizenden) en dan beginnen met vinken.
Modern Talking zou “heel erg fout” zijn. Je vindt die band vrijwel altijd genoemd als je het Internet afspeurt over discussies met betrekking tot foute muziek.
Eigen gevoel versus lijsten
UB40 staat 7 keer (!) in de foute lijst en is dus blijkbaar heel erg fout maar mijn gevoel zegt me dat het helemaal niet zo’n foute muziek is. Ik moet dus mijn eigen gevoel loslaten en objectief gaan vinken. Of, in andere woorden: juist omdat mijn gevoel zou aangeven dat UB40 niet fout is, zou een definitie handig zijn.
De definitie zou niet moeten voorschrijven welke muziek fout is en welke niet (dan zou de definitie niet kloppen…). Je zou het kunnen gebruiken om de gradatie van fout tegen je eigen collectie aan te houden. Dat wil zeggen: er zou geen enkel nummer, door niemand, aan te halen moeten zijn, die in je “goede” lijst staat maar door wie dan ook ter wereld fout gevonden wordt (then again T-toets might work also).
Mijn vermoeden is dat het grootste deel van de muziek die dansbaar is (op welke wijze dan ook) (of waar grotere groepen mensen emotioneel op staan mee te bewegen) alsmede het grootste deel van de muziek waar mensen luidkeels mee brullen, fout is (nu of over 10 jaar). Je hebt dan ook gelijk muziek die dansbaar is maar waarop mensen niet meezingen, je hebt dan muziek waarop mensen dansen EN meezingen, je hebt muziek waarop mensen meezingen maar die niet dansbaar is, EN je hebt muziek die niet dansbaar is EN je hebt muziek waarop niet meegezongen kan worden EN je hebt muziek waarvoor beide geldt. (begint u maar met het tekenen van uw Venn diagrammen). Mijn gevoel zegt me dat de “overlap”, dus muziek waarop mensen gelijk gaan dansen EN brullen, vrij fout is, met name degene waar mensen op een bruiloft op uit dak gaan (dus bij de oudere jaren 80 hits).
Daarnaast heb je muziek die ooit “populair” was, dat wil zeggen in de top 100 heeft gestaan. En je hebt muziek die er niet in heeft gestaan. Ook een sterke aanwijzing.
Moeilijk zal waarschijnlijk zijn artiesten die volledig fout zijn (ook hun onbekend werk) en artiesten die sommige nummers hebben die fout zijn en sommige nummers die niet fout zijn.
Enfin, klinkt al als een aardige uitdaging
I’m thinking on how I’m going to implement "projects" in my private weblog. Obviously it would be very different from "projects in companies".
I’ve now implemented a minimal scenario. Whenever there is something that needs be in my mind, I just add a tag "issue" and it ends up in the right-hand column. Obviously the internal system is bigger. Whenever something is done I change the tag to "issue-resolved" and it is gone but kept for history purposes. I did not call it todo because I was thinking on splitting it up further and maybe make more status than just "open" and "closed".
This is not handy because when I have multiple blog posts all related to the same thing actually not the single issue should be there but the project name instead.
So hmmmm…… let’s see….
I think in a private households something never is started as "a project". I think mostly various things happen and suddenly those various things turn into something that we can label as a project meaning: it has a certain lifespan.
I think the following happens:
a) there are several "blog_posts" about something e.g. "mycat" with label "mycat" (if luckily labeled that way)
b) then my cat is ill and I need to arrange all kinds of stuff where I want to blog about so I first do one blog post and add a tag "todo"
c) now I have read some papers from SHCN on cremation of Cats and how to decide what is the best and I want to blog about it but I somehow want to keep these things together.
In the ideal world there would be a project "cat" with a lifecycle behind it and several issues, questions, etc.. in the blogging world these things also include informational posts which is maybe something along the lines of a documentation department or a communication department.
d) so at that moment I define a new custom post-type (new in WordPress 3.0) (I’ve now done quite some code with custom post types, custom fields and custom taxonomies and you can quite some nice stuff with it).
So I now do something "active" and create a new [project] that I name "cat".
The problem now is that I have to back-trace all postings about "cat" and see how they fit in my project because I have convert some of them from build-in post type [blog_post] to e.g. [issue] or [question] etc…
So can I convert a build-in post type to a custom-post type? Yes, pretty easily actually. I just change the type. Now to make that work the handiest is if I make a plugin that lets me front-end change the post-type of "postings" to another type. That’s quite some work.
But in the end I have somewhere under edward.de.leau.net/projects an overview of everything I defined as a project and then a list of "items". These items though have a taxonomy behind them. Not THE wordpress taxonomy but a taxonomy of custom post-types. (and after thinking about it I think every post_type needs to have equal entry in the taxonomy as well). I think they are different than things you would run into in e.g. an IT project where you have RFC’s, Defects etc… it will probably be different kinds of types.
This taxonomy is something that I have to think about because this is obviously related to the taxonomy of a household’s processes.
These custom post types then have relations that I also want to represent e.g. one question could have several answers or "add on posts". defining these relations is handy because in the "GUI" they can be used for all kinds of stuff.
The sidebar is handy for a linkage per type or supertype, as a sort of "also see" but then auto generated based on the relations I have defined.
So we have like a chaos state where all kinds of blogposts come in, hundreds, of all kinds of stuff.
Then during an "active stage" some are ordered into "projects" (and more types, I have to think on that more types e.g. "budget")
Because of that "active stage" we empower ourselves to use extra fields, workflows and relations between other custom post types.
The nice thing about this is this is how humans naturally operate: first we collect stamps and whenever we have a lot of stamps we begin to order them. We like to work in that way and that is how the system will support it.
Because every household is roughly the same this taxonomy and its relations should be defined so that not every user has to go through this him or herself.
I hope its not too complex but furthermore a project never stands on itself. A project in a household is I think always related to a contact, a service, etc… and is always tied to a set of requirements. And in a household these are tied to the set of goals the household sets. But by working from the bottom-up it might do the trick to slowly bottom-up via a hierarchical system come to defining the household goals which can then link to household budget posts which then link to the expenses and revenue system of the household.
The interesting thing about blog posts is that they function as the same kind of thing as a "request" in ALM: it can be all kinds of stuff but we tie it later to "an RFC". But it is also broader: blog posts can be added without being part of a project (or … they are always part of a project but the blogger has really no idea that he is actually doing this as in 99.99% of all weblogs around the web).
I’ve been thinking a bit more about the household application. Just some small points:
- while there are now life hackers i think the time for hacking is over and we need life architects
- the household architecture should really be the job of experienced architects i think i will convert http://householdframework.org/ to a buddypress site to make it a community, i dont have the money to pay $100 for another server though so if people want to join in to share the costs that would be really cool – mail me
- some basic principles / contexts are:
– owner of own date so disconnected social networks etc..
– scalable from household to company
– it contains 2 parts: one public part and one internal private part which "sync"
– uses best practices and patterns from companies / larger IT frameworks scaled down to household level
The growth from an immature household to a mature household to a company should be encouraged by the system.
To give a layman description:
1) A man blogs hundreds of things but also a piece about Star Wars because he saw the movie and tags it "star-wars"
2) The man discovers he likes Star Wars and blogs some more about it and tags all of them as "star-wars"
3) The man decides he blogs so much about Star Wars that he sets up a separate section on it (e.g comparable to http://edward.de.leau.net/about/synology or any mini site) with more specific related content like links to forums, own layout, links, whatever
4) The man decides to set up a special blog about it on an own site e.g. starwars.mydown.com
5) The site turns in a community
6) The man adds a shop and starts to earn money
7) The shop begins to grow and integration is needed with his back-office household internal finance system , which means the household finance system should be scalable as well and "grow along with it" so first only for "budget for a household" but be able to grow to a more mature financial system automatically
8) The man decides to start a company around Star Wars and starts making special products e.g. posters for Star Wars, he now has suppliers, customer database etc… So also his previously household addressbook has to be scalable enough to grow to a CRM system, Buyer system, etc…
9) Thing go great and the man has to hire additional resources and he runs multiple projects with multiple issue systems and change management systems and requirements management systems etc… alongside it.
Another use case would be:
1) A man buys the Star Wars movie for $10
2) He writes a blog piece about it with some ads around it
3) The long-tail income from the blogpost generates him $20
4) The back-end financial system should be table to correlate the "buy X" to "earned money with X" where we need a strong taxonomy system that is able to lay relations over multiple systems.
I think the basic thought is that the system will grow any household in a company and guide them along the way. Contrary to focus first hand on "making money" it will just let people do what they like. Just write blog posts / content on any subject and slowly grow along with it. So when a household just needs a simple address book online, it is in there, but when a more complex "addressbook" is needed heading to a mini crm system, that will be scalable. And when a larger CRM system is needed it will also scale to that. It will help a household to generate revenue alongside the goals they choose to be their main goals. It will not focus on "generate the most money" but "generate money if you want up to the point you want and only with things you find fun anyway".
Another principle is that anything is connected with anything. In the example above "Star Wars" starts out as a "tag" in a simple non hierarchical taxonomy system. That taxonomy system however will become more complex. the man sets up /starwars/shop, /starwars/blog, /starwars/shop/product1, /starwars/supplier/supplier1 etc… It is nice to keep the URL hacking approach and try to stick with this. because in the physical shop we will see /starwars/shop/product1 while internal in his household we will see in the budget and revenue system also /starwars/shop/product1. So will have a complex set of relations between items in the taxonomy, several flat representations but also in some cases an object or a static record/tuple or even later on a complete system around it. It "grows".
Just as IT methodologies have accepted that change and new thoughts happen every minute and form methods around it, the household framework or set of applications are able to adopt to change in relations to each other. They are pretty dynamic. They are no "fixed" household contact / addressbook but are something that can be an addressbook on day 1 but grows to be a CRM system integrated with all other items on day two, sitting in the taxonomy of the household and to the requirements incl. use cases of the more mature household on day 2.
Which means that maybe every "term" in the life of a household is not really a "tag" but it is more complex because it needs to scale. The problem is of course that we have no overall taxonomy system yet. See: http://en.wikipedia.org/wiki/Taxonomy and besides that we will have to merge the concepts with object oriented thinking. Each item will have an object attached which will probably live in different oo hierarchies and must be flexible enough to be created on the fly.
A lot has already been written about URL/URI design, the new WordPress 3.0 enhance support for Custom Posts and Custom Taxonomies so I leave it to the reader to "Google-Upon" it to find out out more about it.
The new WordPress additions bring WordPress a step closer to a real CMS system. A step closer since it will bring many new WordPress applications enabled by these new options but it also makes it apparent that it is really in the core a system for building weblogs.
In CMS systems very roughly spoken we have something called nodes which is a very generic "thing" often tied to a unique URL. So /animal/goat is the node about a goat.
To be honest I’m currently totally LOST with regards to the architecture behind WordPress with these new custom posts and taxonomies enhancements.
I just take a little outtake on what’s now present:
So… the core thing I don’t understand:
- why is there the difference made in all these types of content while they could have just become the same thing.
In the example above you can decide to make a custom taxonomy for movies e.g. if you write 100 posts about startrek1 an 100 posts about startrek 2 you could make a term "movie" and a taxonomy "startrek1" and "startrek2" to label your posts with. When you then type /movie/startrek1 you get all posts about startrek1. Sadly when you type /movie you do not get all posts where you used a taxonomy related to that term.
In the example above you can also decide to make a custom post type "movie" you can then write a custom post of type movie called "startrek 1" and the benefit is that with /movie/startrek1 you have unique url to your startrek1 postingS(!) and with /movie you get all your movie posts. Nice for url hacking.
In the example above you can also decide to make a custom field "movie" to tie to your e.g. blogpostings. So you write a post about startrek1 and then fill you custom field "movie" with "startrek1". In this case you do not get any url support…
Is there any difference here what you try to achieve from the point of the social graph/urls? Nope.
Reading through the forums you can now e.g. also see questions about comments. When you tie in buddypress you even could say that /movie/startrek1 could involve your forum or group you wanted on that page.
In short: both in the database storage and is the url representation of "objects" and/or "taxonomies" and/or "whatever" I don’t understand which way all of this is heading.
Because in my viewpoint all of this is much simpler when I look at it from the viewpoint of a url (and url hacking). An endpoint of a url is simply a node, whatever on that node is. It "represents" something that could just as well be the "term".
I think that (custom) fields, (custom) posts, (custom) taxonomies are all of the same. If I would be a facebook person I would say that /movie/startrek1 is an endpoint for everything around that movie. What I would want is say /contact/edward.de.leau is the node for "me". and /contact/edward.de.leau/addresses shows then all my addresses. While /address/mystreet_63_amsterdam shows my address and /address/mystreet_63_amsterdam/contacts shows all persons living on that address.
I would expect not only url handling doing this (so everything is clickable) but also the database structure underneath e.g.:
And If I would become even more madder I could even go as far as to say:
Taxonomies versus Custom Post Types example 1
Suppose you have –whatever- relational database (just pick one) and you want to represent the records as custom-post-types of type <table_name>. No problem. Just loop through the list of tables and add them as custom post types (register_post_type(‘<table name>’,$args);). The fields of the records then become custom fields which you attach to this custom post type via e.g. a nice meta box on the right hand side.
So /wp_term_relationships/record_1 would display the contents of that first record another one would be /wp_posts/recorcd_23
The problem is now how you are going to represent the relations between the tables (hence relational database). What you want to indicate is e.g. that with 1 record within a table there are 3 related records in another table e.g. wp_term_relationship –> wp_posts. A nice thing is that /wp_term_relationships shows all records of that table.
Laying the relation now is more difficult since you can not lay relations out of the box. You have two choices here. Since we have two relations outgoing out of the custom posts types either via custom fields or via a custom taxonomy.
1. via custom fields you would have to code a custom field that does a query on all custom post types of a certain record and then pick the ones that are related. In the gui you then would have to make them links to the correct custom post type object of the related item.
2. via a custom taxonomy you could create a custom taxonomy per record e.g. wp_term_relationship_record_1 and then "tag" the records that are related with this custom taxonomy.
In terms of work it is the same: you have to go to the specific record and then click either the custom field relations or click the custom taxonomy entries.
The advantage of the taxonomy direction is that it becomes a hyperlink and brings you to a record 1 page where it shows all related records. Unfortunately this is not the custom post record 1 page, so you have to code something for every entry to show to custom post on top (or something likewise).
The advantage of the custom fields is that the items will be more or less more easier to select via your own written selection system. The disadvantage is that they will not be clickable in the gui. So you will have to write that link to the custom post type object yourself AND you will have to add a loop on there yourself showing all related records.
So in this example:
/wp_posts/ : shows all records out of the box IF using custom fields otherwise shows nothing if using taxonomy
/wp_posts/record23 : shows the record23 posting but the related records you will have to add yourself (when using custom fields) or visa versa: shows all related records but not the custom post object of record 23 itself (when using custom taxonomy).
I don’t know yet which is the easiest way.
One in-the-middle-solution could be to also "tag" the initial record with the custom taxonomy of the relation and then define that one to be "sticky" so that it appears on top and when coding against it so you know which one is the "from" and which ones are the "to".
I don´t know about you but my life consists of a lot of tasks I have to perform, and a lot has to do with computing.
The general problem is that with each task you run into irritations or issues, so that the initial task e.g. writing a document, which would take you half an hour suddenly costs you a full day because of strange things happening in the word processor, OS issues, laptop weird things, connectivity issues, people issues, mail issues and so on. Its not even so much computer oriented but just in general ´things´ come up that needs to be solved first before you can continue. And the higher the pressure the more irritating it is that things come up which have nothing to do with the main task.
Before some nerd calls ´buy a Mac´, this basically is not the direction I want to take this. I worked some time with Macs, within various Linux versions, Unix, various Windows versions and believe me, this pattern is just universal. Its independent of computers. When you have to write a letter, you cant find a pen, when you have a pen, you discover the last stamp was gone, when you want to write the letter you discover that you wrote the address on a paper which you left at a friend and so on and on.
There are so many of these little things each day that I’m almost thinking on starting a side blog especially around these little irritations.
The current mini issue right now is that my language bar is disappearing behind my start bar (see above), which means I cannot switch my laptop to the laptop keyboard. Even when I go to control panel and check the key combination which should do the trick it well…. does not.
So here I am trying to figure out where the key is for ±“;: ah! this one ":", and of course when you then try to Google you find the gazillion noobs who wonder what a language bar is at all and how to enable or disable it, but pretty much no conclusive hits on especially this problem: it works but it does not react, even to the key combinations.
So…then you have the choice between spending investigation time in this problem or losing about the same amount of time finding the correct keys. The first option would solve this permanently so I have to do this else I go crazy, the second option is the way to go because I don’t want to spend time on it now but it means a constant swearing while doing it.
Do you recognize this=;:±Òp^_&!"#$%&_()”? ah… ?
some people I found with the same issue±`=:
http://www.techtalkz.com/windows-security/150672-language-bar-does-not-respond.html (unfortunately no replies)
(the amazing thing is that my post appears as #2 on Google about 5 minutes after I pressed send, which makes it a sort of meta irritating feedback loop to look for a solution and then finding myself talking to me about the problem…) (however, technically seen It stares me in the face how well Google actually works, it really shows up2date content directly, I have an instantly great respect wow in the face feeling for the architects there. It works for me like this: 5 seconds to think wow, then the thought what if a customer came to me asking for this functionality. Then a spinoff of threads which makes me branch off to different directions instead of focusing first on this issue. So hmm… what if a customer, and I mean a LARGE customer, came to me and wanted this. It would cost quite some money, but he probably would have the budget. It would require a lot of hosting-storage facilities, very fast network access, agreements with telcos, smart software, probably some innovative distributed computing things, probably some smart distributed database system, some new revenue stream ideas that are not already out there i mean there are zillions of things to do besides selling keywords and ads, a lot of marketing effort and probably a year or two to set the thing in place for a beta. I think people would also like to take a picture with their camera and then get feedback. E.g. I make a picture of my problem with the language bar and immediately get the solution, however for now back to the issue…)
At the Height of its Power, Sparta, in 400 BC, had 25.000 citizens and 500.000 slaves. I wonder if that relation (1:20) a) can also be applied to other organizations and b) if it is recursive e.g. if from the 25.000 citizens only 1190 really had the power.
E.g. that on the world ( 6.7 billion) only 6,706,993,000/21 = 319 million are really at the top of the pyramid and from that 319 million only 15 million are really influencing the decisions and only 723356 people are at the real top and from that top about 35.000 people are globally the top of the top. (affluence has about 20.000 members).
I don’t want to be a slave.
After I lost 2 months of mail of Outlook I started thinking on the root causes of the problem on why I didn’t push the button to backup and it brought me to a wider problem/gap in the household IT landscape.
Within most enterprises there is a complete large department “operations”, they operate according to process frameworks like ITIL and they use advanced software to govern the installed software base, backups, security and much much more.
Of course one household is much too small for such an overkill on tooling and processes but still what we can learn is that apparently there is a gap between total chaos and full control since a household still is faced with doing these backups and having to do a restore once in a while and in need of operational information.
The reason that most households live in chaos around backups, security and operations of their “IT environment” is that the knowledge is not out there. It’s simply for some strange reason not on the Internet. Households are left totally on their own.
If you Google or surf the Internet for software you will find a gazillion websites which will show you the FUNCTIONAL description of software and how cool it is to use it. E.g. most all sites on http://populair.eu/software. but for MANAGING your software you have to go out and try to gather stuff from forums, discussions lists, faqs, and so on.
Let’s take “firefox” for example: you will find a gazillion websites and weblogs on what kind of cool things you can do with Firefox. When you look for backups you will need to actively go and look for a product specific for Firefox (e.g. the profiles information on the wikipedia help pages) which will do “backups” (e.g. a well known extension/add-on). However when you want a backup solution for your household you do not want to install for all the dozens of pieces of software seperate backups tools. Since you do not want to run or even spend the time and energy to find backup products for all you single pieces of software. You want something simple, just 1 backup tool that finds you stuff and can also handle disaster recovery and recovery of older version of your installed base.
Furthermore knowledge on what to backup is scattered or sometimes not even out there. E.g. what do you actually need to backup from Firefox? (profiles directories, profile.ini, more?) or from Total Commander (ini files, key, extensions) or from Active Sync? or from Google Earth? or from Outlook? It will take you a long time investigating each product or even sandboxing each product and go out hunting for registry keys, configuration files, data on so on.
This does not stand on itself. Households are left on their own when it comes down to “a way to manage all those zillions of passwords”, “a way to manage licenses and keys”, “a way to govern security”, “finding out yourself how to create a how network”, “creating a central software repository”, “finding out what to backup”, “finding out how to and what to restore”. Everyone is doing the same thing for themselves over and over again and shared at the coffee machine in individual bits and pieces. For the less computer minded people: they call up their “technical friend/nephew/collegeau) to help them with operational aspects.
So I have started with some basic ideas on the governance on this. I make an “application directory” (to distinquish it from the /program files directory for practical needs) and an “data dir”, which should contain the bulk of stuff to backup. I also began giving out id’s to the things that are installed in most cases and to describe against those numbers, where the installation software is located (e.g. firefox but also each extension and theme and plugin) and how backup and recovery is handled. I also started writing a batch file which works according to these numbers so I can see what it backups (in some cases a merge/sync is needed instead of a backup). Against those same numbers I have added chapters in our wiki.
In time I will put this information under an “operational” chapter on the household framework (http://www.householdframework.org). It’s really missing out there.
I stumbled upon a posting of Luciano who quoted Einstein:
Einstein is quoted as having said that if he had one hour to save the world he would spend fifty-five minutes defining the problem and only five minutes finding the solution.
This quote does illustrate an important point: before jumping right into solving a problem, we should step back and invest time and effort to improve our understanding of it.
Where after he gives 10 tips to do precisely that.
I gave the following comment on that:
I dont agree with Einstein (love saying that). It’s basically the example on how NOT to approach a problem.
IT Projects massively failed and fail because of this way thinking: spending a lot of time defining the problem and then a short amount of time solving it. It’s a waterfall way of approaching complex problems. Which is pretty old fashioned.
RUP (wikipedia) and Agile methods (wikipedia) brought a new paradigma: iterative loops: so definitely not spending a lot of time in definition/analysis phase but going through loops of iteration with constant change because not many people can think up a complete solution in front. Normal people change their mind every day and get more insights every day.
Thus you solve the problem in parallel to defining the problem.