Google Launches new trend tool

I don't believe I've seen you here before. You may want to subscribe to my feed to keep informed of new posts at DynamicVB.NetRSS feed. Thanks for stopping by!

Google has launched a new tool from Google Labs. The tool is Google trends and I cna see it may come in very handing for investigating trends on the Internet. I’m pretty sure the statistics where taken from Google’s database which should give a good representation of the types of searches people are doing throughout the net since Google pretty much owns the search engine market.

I’ve been playing with this for a while and I thought I would find out how popular the term DNN was for searching for DotNetNuke related information. People tend to search more for DotNetNuke than they do for DNN, but the terms are fairly consistent.And you can see from the graph how one relates to the other as they both have the same peaks and valleys

Comparing the searches for DNN and DotNetNuke may suggest that the open source application may be losing some it its steam. The graph goes back until 2004 and you can even see when the term DNN was coined for referring to DotNetNuke. The search terms have receive an ever growing percentage of searches with a huge spike in 2005 around the time DNN 2.0 came on the scene. This would lend credibility that the skinning features introduced in this version improved DotNetNuke’s market position.

The application is still growing in searches, but it has tapered off since around the end of the third quarter in 2005 and it is showing a steady search percentage for the terms but it is not growing as it once was.

I also ran comparisons between DotNetNuke and Community Server and DNN does still seem to be outpacing Community Server in the amount of people searching for information. This is not really a good test since Community Server only has search terms going back to the first part of 2005 and it is considerably less than DNN was at that time. If we had the data for when DNN was first launched, I would not be surprised if we had similar results for DotNetNuke as what CS is showing now.

Anyway this is a pretty cool little app and I’m sure many people will find all sorts of uses for it. you can view searches by regions and my personal favorite you can link news stories to searches. I was comparing as many things as I could so I decided to look for the term avian bird flu. Google’s trending application showed me the trend of searches for Bird flu, but it also showed me related news stories on the subject. You can see a definite correlation between when a news story on this subject breaks and the amount of searches on the subject. Many times there was a spike when a news story breaks just to see the searches tailor off in the days after the story.You can find the application at http://www.google.com/trends

Core Competencies in Open Source Projects

I recently decided to go to grad school and obtain my masters in MIS with an emphasis in security. Securing systems has always been a passion of mine and there was probably even a time when I wanted to see if I could break them. It just seems like some fun knowledge to have and with the current climate in the Information technology industry security training will be a skill to have and will make me more marketable.

Well I just completed my first series of classes and it was very stressful since I took two classes and they where pushed into an eight week time frame. Couple this with the fact that I still go to work every day it makes for some very full weeks, when both professors expected me to read 5 or 6 chapters every week and write at least one paper. Well I made it through and even managed to pull two A’s out of the classes. One of the classes turned out to be very interesting even though I did not see eye to eye with the professor, he did disseminate some very useful information. This class was Strategic Management of Technology and the majority of the course dealt with determining the core competencies of an organization and encouraging innovation around those core competencies. For clarity a core competency is defined as:

  • Something that provides access to a wide variety of markets.
  • Something that provides a perceived value to the customers of a product
  • It must be difficult for competitors to imitate.

Now all through the class the professor kept telling us to define what our core competencies where to build up those competencies. I’ve been thinking a lot about that lately and he is absolutely correct, I need to build up my competencies and use those competencies to compete in my everyday life. That’s is one reason I decided to start working on this blog and capture my thoughts on a daily basis. Hopefully it will help me to define where I want to go next. I’ve definitely determined it is not to continue to work a 9-5 job every day as I have done through out my entire career.

Well enough of me, I started looking at the various projects available in Asp.Net and I am have been trying to determine the competencies for the various open source projects. I first thought of the Rainbow project. I would think their core competencies is in their localization of their framework as it is probably one of the most complete implementations of localization of any of the open source or shared source projects available in the .Net community ( at least of the ones I’ve seen). Now Rainbow is not one of the most popular projects by a long ways so either their core competency is not really a great competency as it does not provide them with a broad range of markets, but it is a needed feature and they have done it very well, but maybe that is not the most important feature to the developers in the Asp.Net community.

Now thinking of DotNetNuke, I can think of several competencies. The first one that comes to mind is the multiple portal feature where you can have hundreds of web sites on a single installation of DNN this is definitely the killer feature that allowed DNN to gain its foothold in the community and has also allowed it to become the most popular asp.net project by a long shot. But I don’t really think this could be described as a core competency for DNN, but it probably was one at one time. DNN’s true core competency is in the community around the project. The community is what gives DNN its position and without the strength of the community, I would think DNN would have faltered long ago and would now be only a memory or have numerous forks all working towards different goals. Its getting late so I will need to finish these thoughts later, but I just find it interesting that a competency of a open source project probably has less to do with the cool code it contains than it does with the people who support it. I would say this it probably true of any successful open source endeavor. The community is what creates value in open source an not really the code. So for all the people who says if a web application is not built utilizing LAMP, then its not true open source maybe they should think again and consider open source is about a lot more than the platform that runs or creates the application. I personally think its more about the community and sharing and not just whether it runs as platform independent.

Real World DotNetNuke Part III

The last iteration of Dwayne’s assessment of Real World DotNetNuke and its uses in the business of providing web hosting and application functionality in the pursuit of making money in business today. To me this is the most important of his posts as it addresses the needs of developers to understand that functional performance is just not enough. For users to accept a application, then it must look good and be easy to navigate or they will just give up before they can learn the cool functionality it offers.

The user interface is one of the most important aspects of any development project. A user decides quickly whether your application is useable or not, regardless of what it “can do”. If the user interface is clunky or confusing, most people will move on to an alternative solution even without the bells and whistles. Their job is to perform tasks, your job is to make it easy to perform these tasks

Developers are a rare breed and they tend to concentrate on how things work, rather than how to work things. Sure DotNetNuke gives you this wonderful framework to allow users to edit text from their browser, but anyone who has spent considerable time constructing a beautiful page knows how frustrating it is when they happen to click on the page and hit the backspace button. Or the back button on the keyboard, or the little back button on the side of the mouse. You have just lost all of your work!

How productive is this serious flaw of browser technology?

How many times have you written the ultimate riposte on a forum only to watch it disappear into never-never-land?

The number one complaint about web based user interfaces is the ability to obliterate your work in the blink of an eye. While there are technical explanations for why this occurs, and manual techniques to help prevent loss, there has not been enough effort to resolve this recurring nightmare of an issue.

If we could come up with ways to prevent this from happening and drop it in the core of DotNetNuke, it would really change the world. Therein lies a challenge to everyone reading this – save the data from each control on a form to fix this data entry loss once and for all – creating the defacto standard for user friendly web applications.

[Subliminal seduction: AJAX]

That will be the hard part. The following examples are extremely easy to fix and should be a part of your everyday implementation of user interfaces.

10) Don’t repeat words 

Data grids, views and repeaters are very useful in any application, yet it is far too easy to replicate information. Try not to use the “Select, Edit, Delete” technique on detail lines. Ideally use a hyperlink to the data you want to edit, and/or a simple graphic to indicate operations such as delete. It is much more intuitive for the user.

9) Don’t conditionally hide things

Nothing is worse than trying to guess where a field or option is if it hidden and only displayed when something else is changed. At least display the hidden fields grayed out (disabled), then enable or disable them accordingly to your logic. This helps users remember where these features are.

Added bonus: Tool tips are not the best way to display important information

8) Don’t be negative

Use simple words or phrases for fieldname and never use “Not” within a fieldname or label. Checkboxes should be as intuitive as possible, checked means yes, not checked means no. Adding “Not” or “Disabled” to a field or description will confuse a user and probably give yourself grief when you are coding around the data.

For a great example of how not to describe things, in Microsoft Internet Explorer select Tools|Options and click on the Advanced tab. Read through the settings and you will quickly understand how it can be confusing.

7) Limit Drop Down Listbox Information

Listboxes are great for a limited amount of data, anything more than a page is a waste and will cause operator data entry errors. Populating a listbox from an entire customer or item list is a no-no, use a search textbox to list related results instead. Add a hyperlink to the results to help the user get there quickly.
Listboxes with multi-select should be replaced with a checkbox list.

Often you can use other techniques to get the job accomplished. For example, instead of making an order entry form with a drop down list box of customers let the user find a customer and use a New Order button on the customer information page.

6) Careful with colors

This is a personal issue because I suffer from colorblindness. I don’t know how many times I’ve seen a colored ball or square that represents something, but the legend and data it refers to is useless to me when I just can’t see the difference between colors. Please use different shapes or other techniques to convey this type of information.

508 Accessibility Guidelines, Subpart B, Section 1194.21, Subsection (i)

5) Click here

Users do not need to be told to “click here.” If the text does not clearly indicate a link, redesign the content so it does. Also, never use double clicks in a web application as they will totally confuse a user.

Consider the Three Click Rule. If a user can’t find what they are looking for within three clicks, they are likely to get frustrated and leave your site. (Although scientifically refuted, the concept is valuable and helpful to focus on the true needs of users.)

While we’re on the subject of clicking, never, ever, tell a user not to click something twice. Disable the button or take them to a new page so they can’t do it in the first place! This is by far the best example of indolence and creates all sorts of opportunity for users to break your application (or keep your customer service department busy). There is absolutely no excuse for any developer to tell a user not to press something on the screen.

4) Content Complexity

The name of the game is not to overwhelm your viewer with as much information that can possibly fit on a page. Use extra white space, single line paragraphs, and a consistent font to display data to the user. Use the skin to change appearance application wide, and rarely use italics, bold, or special colors.

Unless you are a graphics designer, or writing a game, your modules should be planned around the task at hand. You don’t need exciting graphics or flash animations to find customers, view daily sales, or print an invoice.

3) Data Entry – Errors

Data fields should be validated as mistakes are made, not in a group after the submit button is pressed, and definitely not in a popup or msgbox. Page by page validation is extremely confusing and rarely helps a user understand what to fix in the first place.

This is a difficult process today with server post-backs and page refreshing, but I think you will see some “refreshing” enhancements soon using Ajax.

2) Data Entry – Formatting Clues

The most ridiculous (and quite common) user interface issue is to tell the user how to format something. “Don’t enter dashes or spaces” for a credit card is a great example. Give me a break. If a programmer could not add these two lines of code, they should not be writing applications, never mind applications that deal with money!

1) Make Users Successful

Remember that the user interface will ultimately determine the effectiveness and popularity of your program. You may have implemented many features in your system, but when a user can’t complete their tasks easily and efficiently they will find other ways (and other applications) to get the job done.

Your user interface should be designed with one simple goal – to make your users successful. When they are successful at their job, everyone can share the rewards.

I hope you have enjoyed my ramblings thus far. I intend to continue with a few more topics to cover the basics, and then get into some real code from real projects.