As I was working on a web site, one of the beta testers responded saying they didn’t like the default sorting (vertical) of the CheckBoxList elements used on a ASP.NET web form.
The CheckBoxList web control has a property called RepeatDirection which can be either Vertical (default) or Horizontal. Below shows two examples of how the data items will be rendered using each of the two RepeatDirection options.
My company uses a SSL Proxy for accessing internal web sites from external networks (such as the Internet). The SSL Proxy used is supplied by Juniper Networks and our networking guys have always made comments like "oh, another Juniper bug", etc.
I was looking for some nice animated GIF images to use for some AJAX loading screenings and I stumbled across AjaxLoad.info web site.
The site allows you to pick an image from about 35 different image designs, background color, transparent or opaque, and foreground color. (Using Firefox allows you to preview each of the image designs in the drop down list.)
Once you complete the form, you can preview and download the animated GIF.
- Use ASP.NET AJAX PopUpExtender control to provide a mouseover popup with additional content relevant to the GridView row.
- Use DynamicContextKey to pass in GridView record's unique identifier.
- Use a User Control to render the HTML response, so I don't need to build the HTML code using a StringBuilder or HtmlTextWriter.
My initial code was something similar to the below code:
Here's a few links for free development related software and tools. This is not an exhaustive list, so I'm sure there's lots of things that I have forgotten or left out. This is just a list of things that I've used in the past and/or present.
As you can see, most of the free products rely heavily on Microsoft. That's just because nearly everything that I've done in the last 5 years or so revolves around Microsoft technologies.
In addition, many of these free products may not be used for commercial products, so please consult the individual license agreements prior to use.
That's a mouth full to say and even harder to explain.
It feels like that as long as I've been doing web development, the most important and complicated item of the web projects has been making an ad-hoc query form that is flexible and user-friendly enough for end-users, but provide them with everything they want to do (or everything think they want to do).
It is easy to design a form that allows users to query specific fields of the database, but it's oftentimes harder to give users more options and keep the complexity low enough that they don't end up writing complicated SQL syntax.
The problem lies in when users want to change the query form from a simple SQL statement into a more complex statement by using logical operators (AND, OR, NOT, etc.).
My examples below will use three (3) database fields: CarModel (varchar), CarColor (varchar), and HasGPS (bit/boolean). These database fields are for readability and are not intended to be implemented as such.
Sometime redesigns don't always go over well with clients. Many might remember the awful redesign of Yahoo's TV section - that used to be one of my most visited sites, but now I haven't been there in months.
Another one to join the Yahoo TV ranks is the recent change to Netflix's "Releasing this Week". The old design listed all movies that were releasing this week (pretty intuitive, huh?). The new design removes most of that functionality and instead just lists recommendations for you based on some algorithm.
There's a lot of controversy about this and the Netflix Community Blog has posted a few entries concerning the reasons why they changed the page.
The New Release page redesign is one step towards the idealized presenting new releases. In the meantime, don't forget that you can always get a feed of the movies releasing this week via RSS.
Netflix's blog entry titled "Releasing this Week" (Dec 21, 2007)
In this blog entry, the community spokesperson is recommending that users just use the old RSS feed to find the releasing this week's movies...
The Netflix's Releasing this week RSS Feed can be found at http://rss.netflix.com/NewReleasesRSS.
A little bit later, one of Netflix's team found a backdoor into the old page.
[Tygger] found this link, which apparently is the missing page:
... Please note- the fact that it is accessible now does not necessarily mean it will remain there...
A few days later (Dec 27, 2007) a petition started. As of this writing, there's just over one thousand signatures.
On New Year's the spokesperson followed up the issues with a new post titled, "Happy New Year."
A lot of people are unhappy with the loss of the Releasing This Week page... [The New Release pages] were fundamentally like Search pages – just lists of movies. Certainly very convenient for people who come to the site often. Not pretty but understandably efficient. For those of you who are upset (which I guess is most of you), the loss of this very efficient page would seem pretty moronic.
As a web developer, I understand the need for redesigns. And I also understand that most redesigns will require changing old ways of accessing information and that a few people will be upset, but in this instance I really don't understand why there's not an adequate replacement for the same functionality that was a cornerstone of many subscriber's Netflix experience.
Having the benefit of writing lots of code over the last decade or so, I quickly came to realize that the best written function/application doesn't mean it will be accepted by the client.
I've had some awfully written applications that were loved and my best written applications (using the correct design patterns along with new methologies and techniques) were disliked.
I was even thinking about blogging about this before Jeff Atwood of Coding horror posted the article titled "Nobody Cares What Your Code Looks Like". Jeff concludes stating:
remember this: nobody cares what your code looks like. Except for us programmers. Yes, well-factored code written in a modern language is a laudable goal. But perhaps we should also focus a bit more on things the customer will see and care about, and less on the things they never will.
This has been my philosophy over the last few years. It doesn't mean that I need to write poor code - especially since I'm usually the one who needs to maintain the code base. It does mean that nobody really cares how it is written as long as it works the way the client wants it to work.
This is especially true on web development projects. I've studied web design trends, usability, navigability, and all those other user experience categories of web design. However, in web development everyone who uses an Internet browser believes themselves to be a certified web designer and can (and does) comment on the page presentation.
So just like in code, clients usually won't care about your best web design, web standards, or even a standard presentation schema (layout, colors, fonts, etc. across every page of a web site). Just remember, it's their product and you're just a vehicle to get there.
I've dubbed this egoless programming - putting aside the way you want things to be done in order for your clients to get their product. The clients will ask for things that will result in a sub-par product from your own viewpoint and standards.
But the client doesn't want your product, they want their product. Even if their product looks like someone used Front Page (or MS Word) to design it. The best we can hope for, is that the product is accepted and used and -maybe- we'll get another shot at fixing it later...
Unfortunately, these applications usually become showcases and are forever associated with you as the developer. Even if you disagree with how the client wanted it implemented, you're now stuck with it for better or worse.
I also discovered the Ten Commandments of Egoless Programming as written about in Jerry Weinberg's book The Psychology of Computer Programming. Commandment number two fits in nicely with this article and should be repeated to yourself on a daily basis. Here's a few other commandments to keep in mind.
- You are not your code.
- Treat people who know less than you with respect, deference, and patience.
- The only constant in the world is change.
- Fight for what you believe, but gracefully accept defeat.
Repeat the mantra: you are not your code
In five years time things will have no doubt changed even further, but for now its all about big footers, focus on content, and sexy typography!
The trends are:
5. F*ck the Fold!
4. Big, Sexy Fonts.
3. More Functional Footers.
2. Textures & Patterns.
1. Focus on Content & Clear Area Divisions.
Of the five trends, I've started using more functional footers and trying to divide the content areas into easy to find and use sections. I still try to keep the important parts of the web page above the fold, but with the advent of the wheel mouse, scrolling has become a lot easier than before. At work, I've tried to keep the textures and patterns to a minimum, going for the more minimalist and clean approach over the more edgier and colorful styles.