Posted by scott on Oct 1, 2009 in
Dotnet |
View Original Article
App_Data, App_Code, App_Themes, and App_GlobalResources – we’ve come to love them over the years.
I was hoping the team could add a few more “special” folders to ASP.NET, but I don't think these will make it ...
App_Store – drop in an xml file with product descriptions and … presto! Instant e-commerce!
App_etizers – content you serve customers before they get to the main part of the site.
App_liances – will work with Azure, because cloud computing needs appliances.
App_endix – I'm not sure what this would do, actually. Perhaps I should remove it.
Posted by Al on Oct 1, 2009 in
Ajax,
Dotnet |
View Original Article
Download the Ajax ToolKit from http://ajaxControlToolKit.codeplex.com
Add the AJAX Control toolkit into your toolbox, unzip the file and Add a new Tab, choose the items by selecting browse and the DLL AjaxControlToolkit.dll
Using a button Extender as a confirmation button:
asp:ScriptManager ID="ScriptManager1" runat="server"> </asp:ScriptManager> <asp:Button ID="Button1" runat="server" Text="Button" /> <cc2:ConfirmButtonExtender ID="Button1_ConfirmButtonExtender" runat="server" ConfirmText="Are you sure?" Enabled="True" TargetControlID="Button1"> </cc2:ConfirmButtonExtender>
- To enable the website to use any Ajax control, you need to drag and drop the ScriptManager.
Using an Extender for Textbox to filter characters:
:TextBox ID="TextBox1" runat="server"></asp:TextBox>
<cc2:FilteredTextBoxExtender ID="TextBox1_FilteredTextBoxExtender" runat="server" Enabled="True" TargetControlID="TextBox1" ValidChars="12346789">
</cc2:FilteredTextBoxExtender>
Ajax Timer sample:
asp:UpdatePanel ID="UpdatePanel1" runat="server"> <ContentTemplate>
<asp:Label ID="Label1" runat="server" Text="Label"></asp:Label>
<asp:Timer ID="Timer1" runat="server" Interval="5000" ontick="Timer1_Tick">
</asp:Timer>
</ContentTemplate>
</asp:UpdatePanel>
Timer outside the update panel:asp:Timer ID="Timer1" runat="server" Interval="5000" ontick="Timer1_Tick">
</asp:Timer>
<asp:UpdatePanel ID="UpdatePanel1" runat="server" UpdateMode="Conditional"> <ContentTemplate> <asp:Label ID="Label1" runat="server" Text="Label"></asp:Label>
</ContentTemplate>
<Triggers>
<asp:AsyncPostBackTrigger ControlID="Timer1" EventName="Tick" />
</Triggers>
</asp:UpdatePanel>
<
<
<asp
Posted by W3Avenue Team on Oct 1, 2009 in
Javascript |
View Original Article
QueryLoader is a jQuery based pre-loader that gets all the images of a web page and preload them (even the images in CSS). While it is preloading you can show a loading bar with custom animations using jQuery.

QueryLoader has been tested in Firefox, Safari, Chrome, IE7, IE8 and IE6 (script will be ignored in IE6 though). Implementing the script is very easy and it can be customized to preload all images or part of the web page.
Features:
- Preload a whole web page
- Preload a part of the page
- Gets all images, <img> tags and background-image of your CSS
- Easy to implement
- Adjustable loading bar
Developed by Gaya Kessler; QueryLoader is available for download License Free. You can find further information, demos & download on QueryLoader Website.
Similar Posts:
Tags: Gaya Kessler, Image/Media, jquery, License Free
Posted by Rich Tretola on Oct 1, 2009 in
Flex |
View Original Article
If you will be at Adobe MAX next week, please stop by the O'Reilly Booth between 6:30pm - 8pm to meet your favorite O'Reilly InsideRIA authors. Here is the list of the authors who will be on hand at this...
Tags: max, News & Events


Today, I have some very big news at Noupe. I am thrilled to announce that Noupe has been acquired by Smashing Magazine. This is certainly both a good move for Noupe and a benefit to our readers.
I am very happy that Smashing Magazine wants to invest in growing the vision that I believe so strongly in. Smashing Magazine will bring many exciting things to Noupe in the next few months as this relationship takes form. Right now, we are still finalizing the acquisition, making sure our current readers won’t be disappointed. Most importantly, I think most of you guys will be happy, because Smashing Magazine will continue to smash Web designers and developers with even more good stories and quality material.

The reason for this move is my personal situation: I have to take care of some issues right now, and I don’t want to compromise the quality of articles on Noupe or let the website slowly fade away. But stay tuned cause i will come back soon with something new very soon.
As a loyal reader of Noupe, you do not have to worry about anything. You won’t be disappointed, and you don’t have to be afraid of weird changes: Vitaly Friedman and Sven Lennartz of Smashing Magazine are not going to turn Noupe into something completely different. Noupe will remain a high-quality blog for designers and Web developers. In fact, from now on, even more time and resources will be invested in well-researched high-quality articles; Smashing Magazine will develop it further, doing its best to serve the global Web design community. And of course, Noupe readers will be able to help guide that development: your comments, feedback and interests will be listened to and taken into consideration.
Two years have passed since we launched. It actually feels longer than that sometimes because of how far the website and I have come. As most of you know, Noupe has been run by me, Noura Yehia, and at times over the past couple of years, I have been pushed to the edge by various growth spurts.
We’ve been busy bringing you tips, techniques and tutorials about anything related to Web Design. About 300 articles have been delivered to over 33,000 readers of our RSS feed. I am really happy to have such an intelligent audience.
A big “thank you” goes to:
Every one of you for your great suggestions and contributions. We wouldn’t have done it without you.
Cameron Chapman and Joel Reyes (our regular authors), and Kawsar Ali, Steven Snell and Soh Tanaka for writing useful, quality posts for our readers.
Todd Garland of buysellads.com for getting us some of the biggest sponsors out there to fill all of our ad spots without any effort from my side. Thank you, Todd.
We really appreciate your continued support and understanding. Thanks so much for being a part of the Noupe community, and please continue to do so now and in the future.
Noura Yehia
Related posts:
- Pre-Order The Smashing Book and Save 20%
- SmashingMagazine New Forum and Giveaway Books
- Why Noupe.com is Loading So Much Faster?
Tags: spotlight
Posted by Rich Tretola on Oct 1, 2009 in
Flex |
View Original Article
Although we are all bummed around here that Steve Weiss is leaving the InsideRIA team, we know what an important role he plays within O'Reilly as a whole and that he is the right man to make O'Reilly's new partnership with Microsoft a success.
I just wanted to offer my personal thank you for his work on the InsideRIA project and his trust in my decision making along the way. All of us on the InsideRIA team have worked very hard to put high quality content in the hands of the RIA community and Steve has always kept us motivated to keep innovating and evolving the site. He will be missed.
Best wishes in your new position.
Rich Tretola
InsideRIA Community Manager
Tags: News & Events
Posted by Steve Weiss on Oct 1, 2009 in
Flex |
View Original Article
For most followers of InsideRIA, this blog post will hold little relevance—for good reason—but as an FYI and an opportunity to toast others, I’ll be stepping away from managing InsideRIA and Adobe Developer Library and moving on to being associate publisher for the new Microsoft Press/O’Reilly strategic alliance (more here). http://radar.oreilly.com/2009/09/microsoft-press-oreilly.html
I really mean it in the header of this post: Hopefully no one will notice that I’m no longer involved, since that will mean I’ve done my job in setting up an operation that can thrive on its own.
Tags: News & Events
Posted by Chris Gross on Oct 1, 2009 in
Flex,
Java |
View Original Article
OSGi is taking over the Java world. The modularity features offered by OSGi have become so popular that it seems like all the major Java enterprise applications and frameworks have adopted OSGi or have plans to. Products and frameworks such as Eclipse (and therefore Flex Builder), Spring, Websphere, Guice, Weblogic, and JBoss all use OSGi. Even organizations such as NASA have adopted OSGi. So what is OSGi and why is it so popular? This article will try to answer those questions and introduce you to Potomac - the new OSGi inspired framework for Flex.
Tags: Blogs, eclipse, enterprise, frameworks, metadata, modules, osgi, rcp
Posted by Smashing Editorial on Oct 1, 2009 in
Design & Graphics |
View Original Article

Winston Churchill once said: “Criticism may not be agreeable, but it is necessary. It fulfills the same function as pain in the human body. It calls attention to an unhealthy state of things.” Regardless of where you work or who you work for, being able to take criticism is part of the job description. Whether you’re getting feedback from your boss or a client, having a proper perspective on criticism and a sound understanding of how to use it effectively is important.
Unfortunately, not many people enjoy criticism. In fact, many have developed a thick skin and take pride in their ability to brush it off and move on. However, despite its negative connotation, criticism often presents an excellent opportunity to grow as a designer. Before you can respond effectively, you need to understand what those opportunities are.

Let’s take at some important aspects of getting constructive criticism:
- Uncover blind spots
Doing your own thing is easy, but your habits will eventually become deeply ingrained and hard to break. Criticism gives you a vital outside perspective on your work, uncovering potential areas for improvement that you are unable to see by yourself.
- Challenge yourself
Feedback challenges you to be a better designer. Rather than settle for your own standards, you are pushed to take your work to the next level.
- Develop communication skills
If nothing else, dealing with a critic can dramatically improve the way you communicate — an essential skill for any successful design career.
- Outside motivation
Constructive criticism often gives you the kick in the butt you need to learn a new design skill or technique. Self-motivation is great, but everyone could use a hand from time to time.
- A lesson in humility
Never underestimate the importance of humility. Although criticism can bruise the ego, it keeps you grounded, making you easier to work with and more open to learning from others.
A positive view of criticism isn’t enough. You also need to know how to respond effectively when it comes. Here are eight tips you can use to start making the most of criticism today.
1. Have The Right Attitude
Design is subjective and, like any art form, has no rulebook. No one can tell you what is “right” and “wrong” with your work, but that doesn’t mean you can completely ignore your boss or client’s opinion either. However, by taking criticism and feedback with the right attitude, you can use it to your advantage and even enjoy it.
Everyone looks at design through a filter shaped by personal experience, and this filter is usually very different from your own. While you may have a degree in design and 10 years of experience, not everyone will agree with your “expert” opinion, so don’t expect them to. The important thing is to have a proper attitude from the beginning. Expect others to disagree with you, and be open to new perspectives. Align your expectations and understand that criticism is part of the process. While harsh criticism can cut deep and even scar, it can also motivate, instruct and do all of the good things mentioned above.
Last, but not least, try to remove yourself from the criticism and view it as a commentary on your actions or work and not a personal attack. While easier said than done, this distinction is key to responding effectively. If you can rise above the criticism and respond calmly and effectively, you will not only earn the admiration of your critic but feel better doing it. Set the right expectations, understand the benefits, remove yourself from the equation and, remember, attitude truly is everything.
2. Understand The Objective
Clearly identifying the goal of a design before you share it with others is always a good idea. Are you showing it off to mom for some fridge time? Is it a client who’s trying to solve a business challenge through design? Or perhaps you’re consulting a friend with no experience or stake in the project. Regardless, a vague or confused objective will always elicit off-target feedback, so make sure everyone involved “gets it” before taking action. To respond effectively to criticism, you need to be sure that the critic understands your goals. Be specific. Present your objective in clear and concise terms; the criticism you receive will be targeted and actionable as a result.

3. Check Your First Reaction
For most people (me included), the first reaction to criticism is to get defensive or even lash out. If this sounds like you, take time to develop the habit of taking a deep breath and counting to 10 before responding. This simple yet effective method gives you a chance to regain composure and allow logic to prevail over emotion. The last thing you want to do is get overly emotional and give a response that you will later regret. Remember, in most cases, your critic is only trying to help you.
Despite the initial sting, you need honest feedback to become a better designer. This is especially important for enthusiasts or beginners in the trade. All visual arts have an intrinsic reward mechanism: the more you create, the more you sense the progression of your skill. It’s a loop that keeps all artists going, and when this euphoric moment is crushed by accurate and much-needed criticism, recovering may be difficult. Keep in mind, though, that your skill and perceptiveness in this field will mature over time. If you have the right attitude to begin with, the proper response will follow.
4. Separate Wheat From The Chaff
Unfortunately, not all criticism is constructive. Some people are in a bad mood, bitter or just plain negative and will take any chance to put others down. Some are also inexperienced or unqualified to give you valuable feedback. While design is subjective, being able to separate useful feedback from cheap shots and misinformation is important. However, this is not an excuse to ignore comments that you don’t like. Unless you believe a critique was given in malice or ignorance, don’t be quick to dismiss it.
Here are a few tips to distinguish between the two:
- Specific.
Valuable feedback is always specific. It is clear, logical and defined. “The logo is ugly” or “I don’t like the color choice” are examples of useless criticism (if you get a lot of this, see #7 below).
- Actionable.
Constructive criticism should enable you to take immediate action. You should come away with a clearer idea of how to improve the concept and the path to follow.
- Objective.
Useful feedback is unbiased. It gives you a unique perspective without an ulterior motive. Objective criticism will always be even-tempered and appropriate.
5. Learn From It
This step is possibly the hardest one in this learning experience but by far the most important. For criticism to serve its purpose, you need to act on it! Don’t just go back to business as usual; make an effort to improve. The great thing about criticism is that it uncovers our blind spots, weaknesses that only others can see. When you’re confronted by criticism, don’t let the opportunity pass: write it down and do whatever it takes to change for the better.
If someone criticizes your copywriting skills, start with baby steps. Read a relevant blog once a week. Buy a book. Practice writing headlines for 10 minutes each day. Small victories are often the quickest path to success. Eventually you will improve and have your critic to thank.

6. Look For A New Idea
If you can’t learn anything new, look for a new idea. A different perspective gives you a chance to examine your work from a viewpoint that you would never have considered otherwise. Just as you get inspiration from a gallery or another talented designer, you can find ideas and inspiration in constructive criticism; seeing it just requires you to step back. Be curious, and approach the criticism objectively; it could be incredibly useful.
Criticism is sometimes the cold shower you need to wake up and hit the “Reset” button on a project. Remember, your work is based on your own preconceived notions of what the client wants, and you should always be open to the possibility that you have missed the mark. In the event that you do need to start over, discuss the objectives and expectations right away. Clarifying this information in the first place could have prevented a re-do altogether.
7. Dig Deeper When Necessary
At some point, everyone has received vague, unclear or unactionable feedback. It’s a part of life. Unfortunately, unless you take the initiative, this type of feedback is more or less useless to everyone involved. However, if you’re willing to dig a little deeper, you may uncover things that no one else was willing to tell you. Start by asking open-ended questions that get to the core of the issue, questions like, “I want to understand your point of view. Could you please provide more detail?” or “How can I improve?” Ask for specifics and, above all else, honesty. These kinds of questions will help keep communication lines open and allow you to walk away with practical and concrete advice.

If you feel uncomfortable asking your critic for more detail, or if they are unwilling to provide it, approach someone you respect or trust and ask them what they think. Do they agree with the criticism? Why or why not? Assuming this person is honest and knowledgeable, you should be able to get the answers that you need to move forward.
8. Thank The Critic
Whether the criticism you receive is genuine or downright rude, make a point of saying “Thank you.” Thanking even your harshest critics can create a lasting impression, keep you humble and open the door to additional feedback in the future. Expressing gratitude will also make you feel better about the experience and help you alleviate any innate avoidance of feedback and criticism you may have. If you have followed the guidelines above and recognize the true value of the criticism you have received, saying “Thank you” shouldn’t be too difficult.
If you respect the person and their opinion, go one step further and develop a long-term mentoring relationship with them. Much like in the old days of craftsman and apprentice, an individual whose opinion you value and hold in high esteem can go a long way in developing your skills and abilities. If nothing else, a mentor can keep you accountable to your work and help you continually improve.
Do you have a technique to share or a real-life example of criticism in action? Let us know!
Further Resources
Valuable feedback is great, but getting it is not always easy. Here are a handful of free online tools you can use to start getting feedback from peers and professionals today:
- Concept Feedback
A free design feedback tool for designers, freelancers and marketers.
- Smashing Forum
A simple but effective text-based feedback forum for designers.
- SitePoint Forum
One of the largest forums for developers, offering website and content reviews.
- Web Design Forums
Smashing Magazine presents some of the better Web design forums around.
Even more forums:
More reading:
About the Author
Andrew Follett is a small-business marketing director and founder of Concept Feedback, a community of designers and marketers dedicated to sharing ideas and feedback on design projects.
(al)
© Smashing Editorial for Smashing Magazine, 2009. |
Permalink |
8 comments |
Add to del.icio.us | Digg this | Stumble on StumbleUpon! | Tweet it! | Submit to Reddit | Forum Smashing Magazine
Post tags: criticism, freelancing
Tags: criticism, freelancing, How-To
Posted by scott on Oct 1, 2009 in
Dotnet |
View Original Article
It sounds like an easy question -
“How do I make my ASP.NET MVC application generate lowercase URLs?”
Using lowercase URLs is an SEO best practice, and something you can easily enforce with a tool like URLRewrite. But, the action links generated by the MVC framework generally contain upper case letters (since controller and action names are generally PascalCased).
First, let me say that Graham O’Neale and Nick Berardi have already solved this problem in a foolproof manner. What I am trying below is a little bit easier, but does have one problem if you rely on route names. We always specify route names when using the MapRoute extension methods, but in actuality these names are rarely used to generate URLs in an MVC application. Instead, we generate URLs from controller and action parameters.
Nick and Graham both create a class derived from Route to lowercase the URLs returned by GetVirtualPath. Unfortunately, this means you can’t use the built-in MapRoute extensions method provided by MVC. For various reasons I wanted an approach that could somehow work with the built-in MapRoute methods. In looking for a solution I realized:
- You can’t intercept or override the existing MapRoute extension methods (of course)
- You can’t derive from RouteCollection and override the Add method (because it’s not virtual)
What I did come up with is to use a route decorator:
public class LowercasingRoute : RouteBase
{
public LowercasingRoute(RouteBase routeToWrap)
{
_inner = routeToWrap;
}
public override RouteData GetRouteData(HttpContextBase httpContext)
{
return _inner.GetRouteData(httpContext);
}
public override VirtualPathData GetVirtualPath(...)
{
var result = _inner.GetVirtualPath(context, values);
if (result != null && result.VirtualPath != null)
{
result.VirtualPath =
result.VirtualPath.ToLowerInvariant();
}
return result;
}
RouteBase _inner;
}
Then, after all the route registration code is finished, wrap the existing routes in the routing table with the LowercasingRoute.
private void DecorateRoutes(RouteCollection routeCollection)
{
for (int i = 0; i < routeCollection.Count; i++)
{
routeCollection[i] = new LowercasingRoute(routeCollection[i]);
}
}
Unfortunately, I lose all the route names using this approach. The RouteCollection class takes the route name we pass in MapRoute and stores it in a private dictionary and you never see it again. This isn’t an issue as most MVC applications will never use a route name to generate a URL, but it makes me nervous enough to wonder what to do next.
- Give up and use custom MapRoute extension methods?
- Use reflection to read the dictionary of route names?
- Fork the source?
- Open a request on Connect?
What do you think?