Archive for February, 2010
Search Behavior Revealed
Our marketing department is constantly putting ourselves in the mind of others. We spend endless hours thinking about what people want and what they are thinking. By trying to anticipate human behavior we can better understand the next “big thing” or what is the best move for a client. So I ask myself, “What are people thinking?” “What do people search for?” “What does Google know?” In an effort to uncover the dirty truth I turned to Google suggested search.
Disclaimer: some of these are funny and some of it is offensive. However, it all says something about what people think and what they search for.
First I started out asking basic questions…
Who?

What?

When?

Where?

Why?

Most of these seem pretty normal and expected. I definitely laughed at “why” but I guess people are curious by nature.
Let’s take this a step further…
![]() |
![]() |
A major question here is who are Taylor Swift, Justin Bieber and Regina King dating as well as concerns about H1N1.
![]() |
![]() |
There are quite a few people wondering what they should do with their life.
![]() |
![]() |
“When will I die?” People really expect to find that on Google? Come to find out there are hundreds of quizzes ready to tell you when you will die.
![]() |
![]() |
“Where” seems to reflect what is happening in society now. Searches include Conan, 2010 Superbowl, the Olympics, Hati and Tiger Woods. My favorite is “where is Chuck Norris.”
![]() |
![]() |
“Why” is my favorite! These are such random questions. Everything from “why is my computer slow” to “why is yawning contagious” and “why are the kardashians famous”
![]() |
![]() |
I love these questions… Why do men have nipples? Why do people dream? Why do cats purr?
Then I thought I would see what people searched for about men…
![]() |
![]() |
How can you look at this and not at least smile? I am thinking this is mostly searched for by women, what do you think?
And now the women…
![]() |
![]() |
It seems people are just as negative about women as they are about men. Yikes.
There you have it, a look in to human behavior and what we ask when people are not around. This certainly says something about what is going on in the world, with quite a few searches in including Tiger Woods and the Olympics. It also gives an insight in to what people think about and what they take the time to research.
What do you think? Do you find this normal? Shocking? Humorous? Entertaining? Disappointing?
Scenes From Our Open House
Wednesday, Feb. 3 will be a day that goes down in historic annals - future generations will still be talking about it. It was a day that lifeBLUE Media officially opened its doors to friends, clients, neighbors, family, government dignitaries and other distinguished guests. We cut the ribbon as a symbolic gesture of new business in the City of Allen, we welcomed our guests and showed them around, we ate delicious food and enjoyed amazing margaritas, we laughed, we told stories, we met many great people.
And so, in case you missed it, here are scenes from the lifeBLUE Open House. Our new office, perched above the shops at Watter’s Creek in Allen, TX, was on the drawing board for nearly two years, under construction for almost six months and we can all finally agree — it was well worth the wait.


Click to view the Open House Slideshow
Simple jQuery Form Validation
Let’s face it. Form validation is about as much fun as playing tic-tac-toe against yourself. It is a dull task that has to be done but really isn’t that much fun. Mostly it’s just a thousand “if” statements. Of course, the bigger the form the bigger the pain.
jQuery to the rescue.
While there are lots of great jQuery plugins for form validation, you can do it simply without any of them. If form validation is complex, a plugin might be useful, but for things like “contact us” forms or forms with lots of text inputs but no complexity then this method works great.
First let’s do some HTML.
<form action="/the/target/file.php" method="post" id="form1" onsubmit="return checkForm();">
<label for="field1" class="reqtext">Form Label 1</label>
<input type="text" name="field1" class="req" />
<label for="field2" class="reqtext">Form Label 2</label>
<input type="text" name="field2" class="req" />
</form>
Notice the two CSS classes placed within the tags. These two classes, “reqtext” and “req” are the jQuery identifiers we will use to discover and then check each input field. Also notice that we put in an “onsubmit” element in the form tag. I like to use these instead of the jQuery.submit(). You can work either way. I’m just more comfortable with this format. Here’s the jQuery statements.
function checkForm() {
// Initialize our error flag
var error = false;
// Cycle through the tags with the CSS class "req" in them.
$('.req').each(function() {
if($(this).val==()) {
error = true;
}
});
// If the error flag is set, set the titles for all required fields to a
// nice shade of red to let them know which fields are required.
if(error) {
$('.reqtext').css("color","#922");
return false; // don't submit the form
} else {
return true;
}
}
Let’s work through the “checkForm()” function. First we set a flag to record if we have errors. Second we iterate through all the form fields with the CSS class “req”. If they don’t have any text in them, it sets the “error” flag. Lastly, after we finish checking things we provide the user with whatever visual feedback we think is required. In this case we set the text color for all the elements with the CSS class “reqtext” to red. You can take the last step as far as you want.
So there you go. A quick and simple validation that can be used for small forms and large forms alike. It allows you to validate what you want and leave the rest alone. Happy validating.
How to Approach Architecture Design
Simple rules and concepts that will improve the efficiency of your software and save you headaches
One great obstacle software development companies must overcome when setting their company standards and practices is the design of their programming architecture. Usually companies will initiate this process by accepting a set of programming standards specific to their needs, and then amend them as they find faults in their implementation. This revision process represents a top-down approach to architecture design.
At lifeBLUE we recently performed a major overhaul of our existing standards architecture from a bottom-up perspective with an emphasis on basic programming and software engineering principles. We reviewed all of our previous work and identified the needs and difficulties of our development team, and then associated these needs and difficulties with concepts that helped describe and associate them amongst one another. By doing this we were better able to define simpler and more robust solutions.
In order to assist others who are thinking of creating their own company specific architecture design, I have taken a collection of the notes we used during the research phase of revising our practices and summarized them for more general use. The following shows some of the most important concepts that we identified when designing architecture and popular methods of improving such concepts.
- Accessibility
- Describes the degree to which a service or property is available for global use. Thiscan be as minimal as defining read/write access of a property, or can be as pivotal as confining database accesses to a small collection of database classes.
- Improving accessibility does not necessarily mean making components more accessible,but instead applying proper access permissions to a component or module.
- Examples
- Separation of Responsibility
- Database Tools
- Logic Implementation Tools
- Presentation Tools
- Model View Controller
- Accessor Methods
- Get methods provide read permissions
- Set methods provide write permissions and define writelogic
- Separation of Responsibility
- Adaptability
- Describes the ability of a system to incorporate new or different system componentswithout requiring the software architecture to be redesigned.
- Increasing adaptability requires loose coupling of system components.
- Auditability
- Describes the extent and measure of ease to which a system can be tested forperformance issues and programming errors.
- Ease of debugging.
- Ability of clients to easily identify problem areas.
- Compatibility
- Describes the degree to which a new system component is functional with existing ornew components.
- Examples of compatibility
- Backward Compatibility
- Forward Compatibility
- Composability refers to the ability of a system and system components to be assembledin various combinations to satisfy different requirements. The attributes that make components composable are:
- Modularity refers to independence of a component from other system components.
- Statelessness refers to the individuality of each use of such a component.
- Configurability
- Refers to the measure that a component with system-relative constants can beconfigured.
- Examples of sections that require configurability
- Global Project Settings such as database connection strings.
- Class Settings such as the number of allowed login failures before locking out a user.
- Correctness is measured by the accuracy of algorithms on a domain of inputs and theirknown outputs.
- Dependability is a measure of the reliability of a system component. It is measuredby the following attributes:
- Auditability (see above)
- Means are ways to increase the dependability of a system.
- Threats are things that can affect the dependability of a system.
- Deployability is the measure of ease that a system can be deployed. It is measured bythe following:
- Flexibility to changing deployment environments (Portability).
- Minimizes costs of implementing predeployment features required to deploy a system orfeature.
- Efficiency
- There are numerous ways and tools to measure the efficiency of a system or systemcomponent, and numerous areas that should be monitored for efficiency.
- Examples
- Runtime efficiency
- Resource efficiency
- Speed
- Memory
- Database efficiency
- Spurious Tuples
- Memory allocation
- Evolvability is a measure of the ability of a component to evolve and improve withoutbreaking existing functionality.
- Extensibility is measured by the ability of existing component features to be reusedin extending new components.
- Interoperability is the ability of components in a diverse system to interact witheach other without need of helper or translation methods.
- Learnability measures the difficulty of learning how to utilize and implement a systemcomponent.
- Manageability
- Refers to the ability of a system or system component to manage data instances
- Examples
- Adding new instances
- Editing existing instances
- Removing or disabling existing instances
- Modularity
- Programming concept that describes the extent to which software is composed ofseparate parts, called modules.
- Modules represent a separation of concerns and enforce logical boundaries betweencomponents.
- See modules section for more information.
- Operability
- Ability to keep a system in an operating, safe, and reliable state
- Examples
- System requirements
- Client specified operational requirements
- Portability is the ability of a system to be ported from one environment to another.
- Recoverability
- Refers to the ability of a system to revert to a stable state when recovery is deemednecessary.
- Examples of recovery methods
- Database query reversal
- Commenting out class modifications
- Relevance is the measure of how pertinent or applicable a component is with itsintended implementation and internal contents.
- Repeatability is determined by a one-to-one mapping of inputs to outputs.
- Scalability is the ability of a system or component to handle larger volumes ofrequests without increasing implementation costs.
- Seamlessness is the quality of being able to implement a system or system componentwithin other technologies without need of helper or translation methods.
- Security
- Measures the protection of sensitive information from being accessed by intruders ornonrelated users
- Examples of security
- Encryption of identifier values and login credentials.
- Hiding user information deemed sensitive from other users.
- Standardization is the process of defining a set technical standard to be implementedacross different system components.
One final important note: Make your developers aware of your new standards and practices otherwise this whole process is for naught. Giving developers a strong understanding of how things happen at your place of work will empower them and give them the confidence they need to perform at 100%. A poorly informed developer can be the pitfall of an entire project. Your lead developer or project managers (or both) should be provided adequate time to do routine checkups on project code segments as an audit of developer efficiency and pertinence.
Evaluation of practices should be performed regularly. Whenever a lifeBLUE project is completed we take time out to identify the strengths and weaknesses of the project from the perspective of every individual who has worked on the project. By resolving these weaknesses and implementing these strengths into future version of our software core, we slowly but surely eliminate reoccurring development issues. This allows us to focus on the most important piece of work: making a website that strongly and positively represents our client.

















