<body><script type="text/javascript"> function setAttributeOnload(object, attribute, val) { if(window.addEventListener) { window.addEventListener('load', function(){ object[attribute] = val; }, false); } else { window.attachEvent('onload', function(){ object[attribute] = val; }); } } </script> <div id="navbar-iframe-container"></div> <script type="text/javascript" src="https://apis.google.com/js/platform.js"></script> <script type="text/javascript"> gapi.load("gapi.iframes:gapi.iframes.style.bubble", function() { if (gapi.iframes && gapi.iframes.getContext) { gapi.iframes.getContext().openChild({ url: 'https://www.blogger.com/navbar.g?targetBlogID\x3d21234633\x26blogName\x3dfor+all+that+is+remembered\x26publishMode\x3dPUBLISH_MODE_BLOGSPOT\x26navbarType\x3dBLACK\x26layoutType\x3dCLASSIC\x26searchRoot\x3dhttps://forallthatisremembered.blogspot.com/search\x26blogLocale\x3den_GB\x26v\x3d2\x26homepageUrl\x3dhttp://forallthatisremembered.blogspot.com/\x26vt\x3d5009702301960097963', where: document.getElementById("navbar-iframe-container"), id: "navbar-iframe", messageHandlersFilter: gapi.iframes.CROSS_ORIGIN_IFRAMES_FILTER, messageHandlers: { 'blogger-ping': function() {} } }); } }); </script>

 Monday, January 23

Imperfection

Design invariably involves compromise. Just how trade-offs and compromises are made remains a matter of skilled judgement. There are thus no optimal solutions and the best test of most design is still to wait, to subject it to the test of time. Design solutions can never be perfect, and they are often more criticised than created. Designers must accept that they will almost invariably appear wrong in some ways to some people.

Labels:


posted by Graciana@Home at 3:25 am