Wednesday, September 29, 2010
Color...Colour....Couleur....No matter the language, the web is full of COLOR!
Even if you failed in Art class, you can still become a color expert. According the a great article from our friends at Opera, Linda Goin has a couple of great articles at http://dev.opera.com/articles/view/8-colour-theory and http://dev.opera.com/articles/view/10-colour-schemes-and-design-mockups/#colour. In both, you can learn a lot about what you might have missed from your old art teacher.
Remember in science we learned about the color spectrum and how light refracts, which we all learned as ROYGBIV - red, orange, yellow, green, blue, indigo, violet. In art, this is essentially the same but instead of being in a line, the colors are in a wheel where their opposite, complementary colors are located. We have primary colors - red, yellow and blue and secondary colors - colors formed when two primary colors are mixed such as red + yellow = orange, red + blue = purple, yellow + blue = green. Tertiary colors are created when secondary colors are mixed. For me, I finally understand tint, tone and shade.....tint - add white to a color; tone - add grey to a color and shade - add black to a color. Fairly simple when you think about it....red plus white = pink and red plus black = burgundy and so on.
Color Theory
Monochrome - when we first had computer monitors they were amber or green on a black background. How boring could we get? I remember having a monitor which had white text on black and thinking I was so happy that it was easy to read after having a green monitor for several years and I have no sight problems. If you are color blind or sight deficient, color takes on a whole new issue. I know someone who has trouble distinguishing reds from purples making it difficult to see colors in all areas of life. A Monochromatic website color scheme will use one color and work with the tint, tone and shade versions of the color. This is simple and esthetically pleasing but it is not going to have the pop that a contrasting shade would have instead.
Complementary - These colors are opposite on the color wheel and as surprising as it seems, these colors work well together... See Red and Green, Yellow and Blue etc. Christmas just wouldn't be the same without Red and Green together, right?
Triadic - Think triangle - these colors are equidistant apart on the color wheel. For example, the primary colors are a perfect example of triadic colors when viewed on the color wheel. However, if you rotate one to the right for each color, you also still have a set of three colors which would be considered triadic.
Tetradic - Think about a + on the color wheel. The lines will connect the best complements to each other. This type of color design will allow you to create more complicated color schemes but be careful that you don't get to 'busy' and the colors distract the web patron. People can get annoyed by this and leave your site. These color combos are best done using the more muted shades.
Once you have selected the colors that you are planning to use in the site, you can change the effect by adjusting the color tint/tone/shading. For example a site which is red and green is great for Christmas but will look a little off the rest of the year unless you own a Christmas decor shop. So, you may find yourself playing with muted greens and darker reds and still having a sufficient contrast. It is not an exact science, but with a reasonable amount of trial and error, you can learn to use colors better in sites for yourself and your clients.
More later, clh
Wednesday, September 8, 2010
The Importance of Designing with Web Standards
As a result, we can elevate the craft further. Not everyone has good style and taste although we all believe that we do. This is clear whenever you go to a golf tournament. No, plaid and argyle does not bode well with stripes and floral prints at the same time. Similarly, relying on one style in web design is not going to offer you a long career.
In the early stages of rich websites, the introduction of frames allowed for useful nuggets of information to be in part of a page while the detail was in the main body. Today when you see a page that is still relying on frames, it screams update me now before I become even more obsolete than I am. This is a direct reflection on the company. Without meaning to do so, it is possible to make a business appear behind the times and in a worse case scenario, not a company one would want to do business with in the future.
We are long past the days when using Microsoft Word, Powerpoint or Front Page and saving the file as an HTML file/web page are adequate to stimulate consumers. Software Engineer and design guru John Allsopp challenges Web Designers - professional and amateur - to continually update their skills. His recent work Developing With Web Standards encourages designers to go beyond the safe skill set, update their skills and design with things other than by using fonts and tables to convey points. This book is paired with Jeffrey Zeldman's Designing with Web Standards and together helps a designer work with the better standards of today using CSS, HTML and other web standards. The outcome is that the user will be able to produce rich websites that are able to remain relevant versus current standards. Why trust these guys? Experience and expertise in the areas which have given them remarkable 'street cred' in the development world.
To be a good designer today, you need to have a mastery of HTML, CSS and be working on your skills that will be usable in the future such as using HTML 5. But at the same time, you will have to be flexible and cognizant of the next trends - often before it happens. After all, 5 years ago, would you have expected businesses to be using Twitter and FaceBook to garner customers? It was an underground trend that has gone beyond mainstream.
What will continue to evolve as consumers is our appetite for websites and mobile applications that are eye candy and yet through a call to action, stimulate the user and engage them in a behavior. There are so many now, that we tend to have ADD jumping from one to another as simply as changing the channels on a television. Grabbing the users' attention, engaging them and creating a compelling call to action that results in an action will deliver profits and desired results for businesses. That can be a call to action that results in a sale - generating profits for a business or a call to action which results in a activist role such as supporting a cause or non profit charity.
Our ability as developers depends on our skills being continually updated and our abilities to identify key marketing trends in the web and mobile environments. The better we do this, the more successful we will be.
More later...ch
Thursday, September 2, 2010
Information Architecture
Hoping to ever expand the knowledge out there in cyberspace, I am offering some clarity on Information Architecture.
What is Information Architecture?
Well, if you watch YouTube, you can be entertained and further confused on the role of an Information Architect. See this: http://www.youtube.com/watch?v=nv59MOxrOGA.
OK, so if you watched that video you should totally understand it! Just kidding, per Glenda Sims in Interact with Web Standards, Information Architects incorporate the following:
1 - Determine the Primary Audience Goals
2 - Develop Personas
3 - Complete Current Content Inventory
4 - Conduct a Competitive Analysis
5 - Develop a Content Strategy
6 - Create a Content Outline
7 - Conduct Content Gap Analysis
8 - Create a Site Diagram
9 - Create Page Description Diagrams
10 - Develop Wireframes
Wired's Webmonkey has a straight forward tutorial posted online which allows you to review and answer specific questions. There are 5 lessons plus an introduction. See the below link:
http://www.webmonkey.com/2010/02/information_architecture_tutorial/
Lesson 1 focuses on why IA is so important with simple points and questions. It covers defining the site's goals, asking questions, filtering answers and the design document which incorporates the site goals.
Lesson 2 focuses on the user experience. It covers defining the audience, creating scenarios, doing competitive analysis and adding to the design document - these three areas.
Lesson 3 gets into content. It helps you to identify content and functional needs, group and label content and incorporating these requirements into the design document.
Lesson 4 involves metaphor exploration where you can "refine your vision of the site's structure", setting it into stone where you create the site's structure, defining navigation and incorporating these into the design document.
Lesson 5 covered the layout grids, design sketches, page mock ups and further integrated into the design document.
It takes a little time to review the lessons and it is worth the effort as a companion to the Web Standards text.
I found both the online lessons and the chapters in Web Standards to be helpful for prompting questions that at first seem obvious but are often overlooked when there is not a structure and solid planning completed. Both featured good examples, adequate charts and graphics to help the new information architect.
More later. ch
Wednesday, August 25, 2010
Beauty is in the eye of the beholder...
According to Erin Anderson, in Interact With Web Standards below are the top 10 web writing tips:
1 - Love the inverted pyramid
So what does this mean? Start with your conclusion first, then provide supporting information and finally give background and technical details.
This style is different than the way that one would approach traditional writing but remember, you are trying to get the reader interested in viewing more based on the least amount of words read.
2 - Believe less is (almost always) more
Edit, edit and edit! Don't try to be so self important that you overwhelm and intimidate the reader. Also, if you tend to be wordy, read out loud and try to see what can be eliminated until the text is in the simplest form.
3 - Avoid sounding like an infomercial
Do whatever necessary to keep from sounding preachy about a given subject. You are trying to be authoritative, but remember to use simple words and specifics. CAPITAL LETTERS and explanation points!!!!!! convey yelling, it is best not to yell at people on a website. Also, too much bold and italics can hurt the message as well. Simple works, clutter does not.
4 - Make your copy easy to scan
KISS method prevails here, Keep It Short and Sweet or to the writer - Keep It Simple, Stupid! You are not writing the great American novel or a literary tome - short paragraphs should prevail. There should be space visible on the screen - not every single inch should be used. There should not be endless lists of bullets or numbered items.
Remember that many have a short attention span, so you will need to get the reader hooked quickly.
5 - Write killer headings
Task focused readers do not read - they scan for what they need. Hook them by using keywords that clearly tell the user what they will learn by reading further.
6 - Lead with active words
Which article would you like to read - one called 'Learning to Run' versus 'Run like a Champion'? Clearly, the active title, beginning with Run should appeal more. It also conveys what will be discussed.
7 - Use simple sentences
Are you trying to impress with an infinite vocabulary? It is not necessary here to get the job done. Keep the nouns and verbs simple and limit use of modifiers. Limit punctuation to few commas and more periods.
8 - Keep your promises
Do your links take the user where they want to go? Have you given a call to action but then left the reader with nothing to do? Make sure that the links match the pages that follow and headings match the sections described.
9 - Set up a review process
Don't try to be your own editor. Have a group of client team members or other writers honestly critique your work. Make sure you take the time to review, edit and correct before going live on a site.
10 - Steal from good websites (sort of)
Keep a running log of sites which accomplish what you want to do. If they are doing things well, understand the idea and incorporate it into your designs. After a while, you can begin to see what is a good site at a glance versus a poorly executed one.
Refine your writing for the web by also taking the time to be a user yourself. Understand what you appreciate and dislike about the user experience. Make the experience a positive one for any user including those who need additional accessibility.
Create your site with an appropriate plan versus the often used: ready, fire, aim! It takes effort to perfect your writing style and build your abilities as a web designer.
Good luck and happy developing!
Sunday, April 25, 2010
All About ITIL
ITIL is an acronym that stands for Information Technology Infrastructure Library and it is a set of best practices and concepts for managing information technology services, development and operations. Using these as a guide, an organization can construct the procedure protocols, task lists and everything necessary for deployment.
ITIL was created by the United Kingdom Government’s Central Computer and Telecommunications Agency (CCTA) in the 1980s as a set of recommendations. Without a set of recommendations, government and business would create their own IT management practices and policies
The CCTA is now merged with the Office of Government Commerce, an office of the UK Treasury. OGC maintains the ITIL official website at:

Service Design focuses on the systems and processes required to support the service and processes which interact with the rest of the enterprise environment.
Service Transition covers the delivery of services as required in an operational scenario and also looks at the project side as well as business as usual within the enterprise.
Service Operation involves the area where the services are actually delivered, problem solving and maintenance of the operation and service desk in particular.
Continual Service Improvement comes straight out of Deming's teachings where the processes are refined and adjusted to change the business moving forward and getting better every time.
In researching this post, I found that there is support for ITIL using Microsoft Visio 2007. Per Microsoft, Visio is an important tool for implementing ITIL. A sampling of ITIL-related diagram types supported by Visio includes basic and cross-functional flowcharts, workflows, fault trees, input-process-output models, and network diagrams. Visio 2007 also includes a new ITIL template specifically for diagramming ITIL help desk processes. Now that Visio 2010 is coming out, I would imagine there will be more support for ITIL v3. The below image shows the components of an ITIL v3 implementation. There is a PowerPoint presentation which covers the use of ITIL using Visio 2007. Follow this link to get the presentation:http://visiotoolbox.com/downloads/Howtouse/Visio-2007-ITIL-Overview.ppt

One of the companies who actively helps companies develop their IT using ITIL is IBM. Follow the below link and view a flash presentation about what IBM can offer using ITIL.http://www-935.ibm.com/services/us/index.wss/summary/its/a1007588?cntxt=a1000074
IBM
Take the first steps today:
1. Use the IBM Service Management Self Assessment to evaluate IT processes and their importance to the efficiency and effectiveness of your service management implementation.
2. Download the no charge IBM Tivoli Unified Process tool, which can help show you how to bring together best practices, controls and standards.
3. Read the white paper IBM Service Management: Practical solutions for today based on 25 years of continuous thought leadership (PDF, 1.32MB).
4. Read the white paper ITIL v3: What it means and how IBM can help (PDF, 54KB)
5. Attend an IT workshop.
Other things IBM can do for a client with ITIL:
1 - Can help the company align their IT services with current and future business and customer needs.
2 - Can improve the quality of the IT services delivered
3 - Claims to reduce the long term cost of IT services
4 - Has over 1400 consultants who are certified in ITIL best practives
Is accredited to deliver ITIL training globally.
5 - Helps incorporate ITIL best practices with software from Tivoli and Rational, ITIL aligned solutions, Outsourced or in- house solutions.
Business need: IBM clients Belgacom and Achmea sought to implement IT Infrastructure Library (ITIL) best practices to help IT staff gain control of their IT infrastructures and manage internal processes as efficiently as possible.
ITIL Certification for Individuals
Individuals can also be certified in their abilities to use ITIL. The ITIL v3 certification levels are: Foundation, Intermediate, Expert and Master.
Pursure your own learning about ITIL as the web is full of sources to further your ITIL knowledge.
More later,
CH
Monday, April 19, 2010
Software Design Patterns & Anti-Patterns
In preparing for this post, I have spent a good deal of time trying to make sense of the history of software design patterns and how they could actually relate to the physical world. While recovering from a highly pollenated day out in Athens, I found much of the information interesting but at times like an acronym soup filled with a new language to further confuse the reader. This blog post is an attempt to bring some simplicity to this process and explain to the novice.
When discussing the development of any great project one need only to look at history to see when things are planned well and executed with flawless perfection, that it will stand the test of time. Take the ancient Egyptians with the pyramids, or the Romans with the aqueducts. Both were engineered thousands of years ago and still there today. In fact, some aqueducts are still used on a daily basis. What does this have to do with software development you may ask? Simple, when something works in the physical world such as architecture, it will get reused and refined. As structures become more stable, the design becomes more fluid - the same follows in programming. Look at the simple arch as an example. Early arches were simplistic and modern arches can now have vast spans. When an architect decides to build a home, he or she will create the formal drawings and plans. Even if they know something about building the home it is unlikely that they would be the ones installing the electrical wiring, the plumbing or doing the sheetrock. The same is true for software. First, you need to have a solid plan which acts as the blueprint for the project. As with a home, blueprints usually have to be revised numerous times before their final completion and it is also possible that changes have to be made after the project is already underway. This is often the case in software development where there are those who are working on the project, the project manager and the customer. Translating the customer’s need into the programming necessary to complete the task can be an often difficult and cumbersome undertaking.
Software creation has been in an evolution since its inception in the 1940s. Early programming languages were not focused on finding portions of code that worked that could be reused in the future. Modern programming takes the object oriented approach which uses and reuses proven code repeated times making the programs less prone to error and providing consistency for the end user. This brings us to patterns – which in carpet or wallpaper is simply an image or shape repeated over and over. Could this have a place in the computer world???? Of course! Loops repeat commands over and over until they are told to stop and in the object oriented world, we would reuse those patterns which would successfully generate the desired outcome in the software.
Enter Christopher Alexander, noted Architecture expert, Professor, Author and Mathematician. What could he contribute to the software design world? Plenty! In the 1977 book, A Pattern Language (by: Alexander et al), he explains that “a pattern language is about patterns being like words. They stay the same but can be combined in different ways like words in a sentence. They can be used as in a network where one will call upon another. When you build something you can put patterns together to form a language.” (Source: patternlanguage.com) Sounds simple enough. It is a close parallel to how we would want to construct well organized programs.
There are several main works which use Alexander’s ideas and apply them to programming. Beginning first with works by Kent Beck and Ward Cunningham at the OOPSLA Conference in 1984, Coplein & Schmidt’s Pattern Languages of Program Design Gamma, Helm, Johnson & Vlissides (the so-called Gang of Four) Design Patterns: Elements of Reusable Object Oriented Software and Gabriel’s Patterns of Software.
Design patterns can help speed the process along in programming by using proven templates to solve problems. Typically the programming design pattern falls into one of the following categories: Creational Patterns, Structural Patterns, Behavioral Patterns or Concurrency Patterns. Additionally, there are Anti-Patterns – that go against the ‘pattern’ – there are many anti-patterns which can affect software development.
From a software design perspective, a design pattern is a reusable solution to a recurring problem. It is not the finished programming code but instead a template which will guide you to the proper solution for the problem at hand. This is reminiscent of Alexander’s work. If you are building a house or building a city, there are specific templates which offer a proper solution for the best use. As a guide, it is best for light to enter a room from two directions by simultaneously maintaining as much of a complete wall as possible. That way, the builder or architect has the flexibility to decide where the windows are best suited but is not specifically told exactly where to place the windows on the blueprints. It is much the same in programming, if you know that you need to put a particular component into the program, there is some flexibility to how it is done which is where the design pattern comes in to play.
One example of a Concurrency Pattern is using the idea of a Lock. It prevents more than one person or process having access to the data at one time.
In the above example, using a personal bank account, accessing online would lock out the ATM access and vice versa so that only one would have access to the bank account data at one time. This is often used in a database to prevent multiple people accessing and potentially causing errors.
Anti-Patterns can be just as helpful to ensure that you are following good design principles. It can help you find ways to remedy poor coding and provide a better alternative. When an anti-pattern is detected, it is generally because the code created is ineffective or wrong. Anti-Patterns differ from a bad idea or poor coding in that the action initially seems to be beneficial but instead produces more bad results and a refactored alternative to the anti-pattern exists and is proven effective. Refactoring is a process where code is altered but the functional parts are still the same, the non-functional parts are adjusted to make a better solution. The names for many anti-patterns are similar to familiar terms that come from the boardrooms across the world.
Anti-Patterns are typically classified in one of the following categories: Organizational, Project Management, Analysis, Software Design, Object Oriented Design, Programming, Methodological or Configuration Management. As part of the humor, the following are some of the types of Anti-Patterns: Death March, Big Ball of Mud, Analysis Paralysis, Mushroom Management, Lava Flow, Spaghetti Code, Reinventing the Square Wheel and Dependency Hell. All of these are readily known to programmers although it is possible to be so deep into a project to not realize that the problems are all around.
Much wisdom can be acquired by diving deeper into the subject and I recommend taking some time to read further on both Design Patterns and Anti-Patterns as doing so will help the novice programmer begin to avoid some of the pitfalls that colleagues found before.
More Later,
CH
Monday, February 8, 2010
What is Oslo and no, I don't mean the capital of Norway....
Microsoft went through several iterations of Oslo and was not completely sure which direction they were going to take completely, splitting off some functionality and finally evolving it to its new status. The Oslo name has gone away and the replacement is SQL Server Modeling Community Technology Preview (CTP). As of November 2009, the SQL Modeling CTP is expected to become part of a future release of Microsoft SQL Server.
Per Microsoft, Dynamic IT includes a focus on a model driven environment which will “enable IT to capture their policies in models and also allows the developers to capture configuration in a model, then you can deploy in a test environment very easily and very quickly.” Quote source: Bob Kelly, General Manager of Microsoft’s Infrastructure Server Marketing Group.
According to Microsoft’s Data Developer Center:
“Model-driven development in the context of the SQL Server Modeling CTP indicates a development process that revolves around building applications primarily through metadata. This means moving more of the definition of an application out of the world of code and into the world of data, where the developer’s original intent is increasingly transparent to both the platform and other developers. As data, the application definition can be easily viewed and quickly edited in a variety of forms, and even queried, making all the design and implementation details that much more accessible. As previously discussed, Microsoft technologies have been moving in this direction for many years; things like COM type libraries, .NET Framework metadata attributes, and XAML have all moved increasingly toward declaring one’s intentions directly as data—in ways that make sense for your problem domain—and away from encoding them into a lower-level form, such as x86 or .NET Framework intermediate language (IL) instructions. This is what the SQL Server Modeling CTP is all about.” Simple huh?
SQL Server Modeling Services include pre-defined models and tools for working with certain types of data. Two included are Common Language Runtime (CLR) and Unified Modeling Language (UML)
Confused yet? I’m there with you. I need to do more reviewing to understand fully the capabilities of this development tool.
More later,
CH