Click here to Skip to main content

Chris Maunder - Professional Profile

Summary

287,454
Author
13,582
Authority
164,503
Debator
12,078
Editor
3,906
Enquirer
13,954
Organiser
6,675
Participant
Chris is the Co-founder, Administrator, Architect, Chief Editor and Shameless Hack who wrote and runs The Code Project. He's been programming since 1988 while pretending to be, in various guises, an astrophysicist, mathematician, physicist, hydrologist, geomorphologist, defence intelligence researcher and then, when all that got a bit rough on the nerves, a web developer. He is a Microsoft Visual C++ MVP both globally and for Canada locally.
 
His programming experience includes C/C++, C#, SQL, MFC, ASP, ASP.NET, and far, far too much FORTRAN. He has worked on PocketPCs, AIX mainframes, Sun workstations, and a CRAY YMP C90 behemoth but finds notebooks take up less desk space.
 
He dodges, he weaves, and he never gets enough sleep. He is kind to small animals.
 
Chris was born and bred in Australia but splits his time between Toronto and Melbourne, depending on the weather. For relaxation he is into road cycling, snowboarding, rock climbing, and storm chasing.
Member since Thursday, July 6, 2000 (12 years, 10 months)
  • 31 Dec 2004: CodeProject MVP 2005

      

Contributions

Articles 110 (Legend)
Tech Blogs 0
Messages 28,355 (Master)
Q&A Questions 5
Q&A Answers 73
Tips/Tricks 7
Comments 137

Links

Groups

Below is the list of groups in which the member is participating


The Back Room Moderators
United States United States
Administrator, Manager, Author, Member
Collaborative Group
members

No Biography provided

CodeProject Mentors
United States United States
Administrator, Manager, Author, Member
Collaborative Group
members

No Biography provided

The Ultimate Toolbox
Web Developer
Canada Canada
Administrator, Manager, Author, Member
Organisation
members

In January 2005, David Cunningham and Chris Maunder created TheUltimateToolbox.com, a new group dedicated to the continued development, support and growth of Dundas Software’s award winning line of MFC, C++ and ActiveX control products.
 
Ultimate Grid for MFC, Ultimate Toolbox for MFC, and Ultimate TCP/IP have been stalwarts of C++/MFC development for a decade. Thousands of developers have used these products to speed their time to market, improve the quality of their finished products, and enhance the reliability and flexibility of their software.

The Insider
Publisher The Code Project
United States United States
Administrator, Manager, Author, Member
Collaborative Group
members

Sign up to get the news you didn't even know you needed to know in the most valuable 5 minutes of reading of your day.
 
The Code Project Daily Insider keeps you up to date with what is happening around the industry. From the continue saga of the Big Boys to Scott Guthrie's blog ramblings and Steve Jobs' latest, you will find it here.

CodeProject Insiders
United States United States
Administrator, Manager, Author, Member
Collaborative Group
members

No Biography provided

Chinese Forum Moderators
United States United States
Administrator, Manager, Author, Member
Collaborative Group
members

No Biography provided

Advisory Board
United States United States
Administrator, Manager, Author, Member
Collaborative Group
members

No Biography provided

CodeProject Beta Testers
United States United States
Administrator, Manager, Author, Member
Collaborative Group
members

No Biography provided

CodeProject
Software Developer The Code Project
United States United States
Administrator, Manager, Author, Member
Organisation
members

No Biography provided

Reputation

For more information on Reputation please see the FAQ.

Privileges

Members need to achieve at least one of the given member levels in the given reputation categories in order to perform a given action. For example, to store personal files in your account area you will need to achieve Platinum level in either the Author or Authority category. The "If Owner" column means that owners of an item automatically have the privilege, and the given member types also gain the privilege regardless of their reputation level.

ActionAuthorAuthorityDebatorEditorEnquirerOrganiserParticipantIf OwnerMember Types
Have no restrictions on voting frequencysilversilversilversilverAdmin
Store personal files in your account areaplatinumplatinumSitebuilder, Subeditor, Supporter, Editor, Staff
Have live hyperlinks in your biographybronzebronzebronzebronzebronzebronzesilverSubeditor, Protector, Editor, Staff, Admin
Edit a Question in Q&AsilversilversilversilverYesSubeditor, Protector, Editor, Admin
Edit an Answer in Q&AsilversilversilversilverYesSubeditor, Protector, Editor, Admin
Delete a Question in Q&AYesSubeditor, Protector, Editor, Admin
Delete an Answer in Q&AYesSubeditor, Protector, Editor, Admin
Report an Articlesilversilversilversilver
Approve/Disapprove a pending ArticlegoldgoldgoldgoldSubeditor, Mentor, Protector, Editor, Staff, Admin
Edit other members' articlesSubeditor, Protector, Editor, Admin
Create an article without requiring moderationplatinumSubeditor, Mentor, Protector, Editor, Staff, Admin
Report a forum messagesilversilverbronzeProtector, Editor, Admin
Create a new tagsilversilversilversilverAdmin
Modify a tagsilversilversilversilverAdmin

Actions with a green tick can be performed by this member.


 
You must Sign In to use this message board.
Search this forum  
GeneralRe: Get the error "The content is either too short or default." PinmvpDr. Song Li9 May '12 - 10:31 
GeneralAfter clicking the "Save this version" button, the article disappears PinmvpDr. Song Li9 May '12 - 10:48 
GeneralRe: After clicking the "Save this version" button, the article disappears PinadminChris Maunder9 May '12 - 13:51 
GeneralRe: After clicking the "Save this version" button, the article disappears PinmvpDr. Song Li9 May '12 - 14:03 
GeneralRe: New Article Submission System PinmvpDr. Song Li10 May '12 - 9:55 
GeneralRe: New Article Submission System PinadminChris Maunder10 May '12 - 14:48 
GeneralRe: New Article Submission System [modified] PinmemberMatt T Heffron7 Jun '12 - 14:14 
GeneralRe: New Article Submission System PinadminChris Maunder7 Jun '12 - 18:17 
GeneralRe: New Article Submission System [modified] PinmemberMatt T Heffron8 Jun '12 - 5:59 
GeneralRe: New Article Submission System PinmemberMatt T Heffron8 Jun '12 - 18:01 
GeneralUpdate PinadminChris Maunder11 Jun '12 - 16:26 
GeneralRe: Update PinmemberMatt T Heffron12 Jun '12 - 7:27 
 
GeneralNew penalties for abuse Pin
Friday, January 20, 2012 5:24 PM by Chris Maunder
Starting today, the "Vote to remove this message" link in forum message won't simply add to the tally of votes to decide if a message should be removed: Abusive or innappropriate messages now lose their authors 20 points. Next week that increase to 20 points x member level, meaning a potential loss of 200 points per message flag.
cheers,
Chris Maunder
 
The Code Project | Co-founder
Microsoft C++ MVP

 
GeneralNew article URLs Pin
Friday, January 20, 2012 5:22 PM by Chris Maunder
Previously our article URLs were of the form www.codeproject.com/kb/section/basename.aspx. This worked well and allowed you to easily remember your own articles. My grid control article, for instance, MFC Grid control 2.27, was an easy URL for me to remember.
 
The issue was that while this naming convention was simple, it was also predicated on each article within a section having a unique basename. With 35,000 articles, this was starting to become a little tricky.
 
On an unrelated, but nevertheless important note, we strive to ensure our authors' articles are positioned as high as possible within search engine rankings. Search engine ranking depends on an enormous number of variables, up to and including the phase of the moon, but while "http://www.codeproject.com/kb/miscctrl/gridctrl.aspx" is OK, "http://www.codeproject.com/Articles/8/MFC-Grid-control-2-27" is better. And "http://www.codeproject.com/Articles/317712/An-MFC-Chart-Control-with-Enhanced-User-Interface" is even better (from a search engine point of view) than "http://www.codeproject.com/kb/Chart/MFC-Chart.aspx".
 
And as a final but neat freebie, we have tossed the extension. No more .aspx. A trivial thing, but when Microsoft comes out with the Next Big Thing, or we move to PHP or JSP, then article links will be the same. This should be the last URL change we ever have to do for our articles.
cheers,
Chris Maunder
 
The Code Project | Co-founder
Microsoft C++ MVP

 
GeneralWhat are we up to? Pin
Tuesday, October 25, 2011 11:29 AM by Chris Maunder
1. Completely revamping the article submission (for everthing) and the display system for tips.
2. Adding new options for articles.
3. A ton of work on Lake Quincy. Our little project is all grown up and has an appetite for developers to match.
4. Machinations and experiments with Quick Answers and the Forums. Some very interesting stuff. The most interesting bit is making it so you guys don't notice anything until there's the "oh - I see!" moment.
 
Some devs like to make big splashes. I prefer my code to just settle in comfortably into your lives and work without you realising anything.
 
The upshot of this is that I have zero social life and even less time to hang out in the Lounge. Bah humbug.
cheers,
Chris Maunder
 
The Code Project | Co-founder
Microsoft C++ MVP

 
GeneralNew Features - August 2011 Pin
Tuesday, August 9, 2011 8:04 AM by Chris Maunder
Pasting into the Editor
 
One of the features that has generated a lot of debate and suggestions is the way we handle text, HTML and code in the forums. Copying and pasting code - especially web related code - into the message editor can cause problems due to the unintentional posting of HTML tags instead of HTML encoded content.

To help with this we had "When Pasting" options at the bottom of the message posting area that allow you to set defaults on what happens when you paste, but what you want to do changes depending on what you paste. The problem here is that you defaults don't always fit the situation at hand, so we need a way to allow you to change your mind easily.

From today we removed the paste options from below the message and instead show a popup dialog that intercepts the pasted content and tries to figure out what your options are with visual aids to help show what each option will do. The "When pasting" that apply to the paste text are shown in this dialog, and as you hover over each option the pasted text in the message text area is updated, as well as a small preview in the paste dialog to give you a quick peek into what it will look like. If you are pasting text that will look the same whether you're pasting as text or HTML (or mixed) then the options shown are reduced to the minimum set possible, and your default setting will be automatically checked and always shown.
 
On top of this, as you type, a preview of what your message will look like is now shown at the bottom of the page.
 
If, after pasting, you are happy with what's shown, or don't want to be bothered, keep typing. The dialog will fade away. This is not the popup dialog you are searching for...

The changes are designed not to simply show you what will happen, but also to give you an ida on how to encode your content to ensure it displays in the manner you intend. The changes are also meant to be as unobtrusive as possible, and text will be pasted initially as per your defaults. We're only adding a simple way to change your mind.
 
For those who never pick a default, and never touch the popup dialog, the default will always be "Best guess" meaning if it detects code in the pasted text it will wrap in PRE tags, otherwise it will paste and preserve HTML tags (no encoding on paste).
 
Encode button in the editor
 
We spared no expense in adding an "encode" button. Highlight some HTML, hit encode, and the text is HTML encoded.
 
Editor Live preview
 
As you type, your message is now displayed full formatted under the text area. We're using Ajax callbacks to do the formatting because reworking our content formatting system into Javascript is a luxury we don't have at the moment. Further, our colourisation code does far more than any of the current Javascript offerings in terms of handling nested languages (eg Javascript or C# inside a ASP.NET page). We'd rather have a half second delay in update and show it perfectly than have the frustration of it not being quite right.
 
Content caching
 
Hopefully you waon't even notice (unless it's in a good way) but more content is being pre-cached, speeding up some of our lesser-used pages.
 
Split Quick Answers / Discussions menus
 
As requested.
 
More admin options
 
We've armed ourselves with some bigger guns to deal with reported items. Don't worry, this won't hurt a bit.
cheers,
Chris Maunder
 
The Code Project | Co-founder
Microsoft C++ MVP

GeneralRe: New Features - August 2011 PinmemberSuresh Suthar9 Aug '11 - 18:42 
GeneralRe: New Features - August 2011 PinmvpAspDotNetDev7 Sep '11 - 9:58 
GeneralRe: New Features - August 2011 Pinmemberwalterhevedeich12 Sep '11 - 17:59 
GeneralRe: New Features - August 2011 PinadminChris Maunder13 Sep '11 - 1:26 
GeneralRe: New Features - August 2011 Pinmemberwalterhevedeich13 Sep '11 - 16:08 
 
GeneralNew features - July 2011 Pin
Friday, July 29, 2011 8:26 AM by Chris Maunder
Where do I begin?
 
The forum indicator lines were a small HTML5 experiment I was doing that turned out to be actually useful. The quick version is: when you hover over a message, find that message's parent (if it's on the page), create 2 canvases representing the two segments of the line, and draw. If the parent message isn't on the page, show an arrow tip indicating "over there somewhere". Why not a single canvas? Because IE doesn't support the pointer-events:none style. pointer-events:none allows you to have an element on top of another element (say, a single canvas overlaying the forum) and have that element ignore all pointer (eg mouse) events and instead have those events pass to the underlying controls.
 
The way around this was to create two canvases that didn't overlap anything mouseable, with a nice byproduct being a healthy speed increase (smaller canvas = faster resizing, repositioning and drawing)
 
The forum flags in the bugs and suggestions[^] forum (and soon, your article forums) allows me to provide a simple visual feedback on the bugs and suggestions posted. If you find a bug you can scan the page, find a similar (or same) post, and note that it's in progress to being fixed or that it's fixed and will be released next deploy.
 
The new forum message posting page now incorporates the same editor that's used in Quick Answers. For me this means a single codebase to maintain (yay!). For you it means the auto-code sniffer is now in the forums (yay!). Post some code, the sniffer will try to see if it's code, and if it is it will wrap your pasted code in PRE blocks and assign the language automatically.
 
We could certainly go the way other sites have gone and have a client-side javascript library such as highlighter do the work for us. My concern here is that for the forums, where you may have 50 messages each with blocks of code, the client side processing will get out of hand and bog you down. Especially if you're on a mobile device where colourisation is even more important than on a larger screen. Further, if you have no javascript enabled you don't see the colourisation, which would suck.
 
Site speed continues to be a focus and we've put in a ton of work to improve caching. Our main database was cruising along at 75% utilisation at peak times and that's bad in anyone's book. We're now down to about 50% simply by tackling the easy jobs, and with a further push to do some fundamental re-architecting, we should again halve that. For the first time in our history we're no longer looking to add database capacity, but are actually now consolidating databases and saving ourselves some SQL licencing fees.
 
Optimisations to improve site speed have been done on a number of fronts, from simple caching, to the best optimisation of all: not doing the work. An example is our Quick Answers[^] homepage. Previously we were tracking which questions you had viewed and which you hadn't. It turns out there's an excellent technology in place that can do this for us: your browser. You view a link, the link is purple. Why should we override that and add functionality already in place?
 
Another example is when viewing a question you see the Next / Prev links. Calculating which message is next and previous, based on your interests, the current message, your filters and the waxing or waning of the moon is expensive, yet only a fraction of members will actually click that "Next" link. Those who click it, need it and love it, so the answer isn't to remove it. Instead of calculating the "Next" question on the page that shows you the initial question, we initially have the next button go to a fixed page that will do a single expensive query for you, and then cache a large number of questions in either direction.
 
Previously when viewing the question you had the hit of calculating the next question. Now, no hit on viewing the initial question, but a small hit when you first click Next. After that the results are cached, and there will be no further delay until you exhaust the cached results.
 
Plenty new features are simmering away. I'll try to provide more frequent updates.
cheers,
Chris Maunder
 
The Code Project | Co-founder
Microsoft C++ MVP

 
GeneralIndicator lines in forums [modified] Pin
Saturday, July 9, 2011 9:10 AM by Chris Maunder
The indicator lines in forums have been turned off for now after a user reported it was causing Chrome to lock up. I'll dig in and find the cause - or at least find a workaround - and get them back ASAP.
 

...and they are now back.
cheers,
Chris Maunder
 
The Code Project | Co-founder
Microsoft C++ MVP
modified on Thursday, July 28, 2011 3:31 PM

 
GeneralChanging from red to green for high rated forum posts Pin
Saturday, June 25, 2011 3:10 PM by Chris Maunder
No, I haven't been reading my psychology books.
 
The real reason is that way, way back, I was using red to highlight "hot threads". It was all very hip and '90's. However, for the past hundred years or so we've been using red to denote popular and up-voted items, not "hot" threads (in the sense of "lots of action" instead of just popular). We also use green to denote good answer and red to denote bad answer so it was blatantly inconsistent.
cheers,
Chris Maunder
 
The Code Project | Co-founder
Microsoft C++ MVP

 
GeneralImproving Article Moderation Pin
Thursday, March 17, 2011 6:37 PM by Chris Maunder
There have been a couple of complaints regarding article moderation.
 
1. I want rep points
2. Having a single member be able to give the green light to an article is dangerous.
 
The new reporting system solves these problems by
 
1. Giving rep points
2. Requiring 5 members to approve an article before it goes live.
 
Each time you are presented with an article that asks for moderation, hover over the 'tick' box, choose whether to approve or report it, and your vote is entered and the number of current votes on the article are then shown. When it hits 5 votes then the article is approved or closed, depending on the majority of the votes.
 
If an article is closed but then reoponed by the author or an editor then the reports are wiped from the article, but points accrued from the previous reports stay.
 
So please: approve and report. Let's keep things organised!
cheers,
Chris Maunder
 
The Code Project | Co-founder
Microsoft C++ MVP

GeneralRe: Improving Article Moderation PinmvpSandeep Mewara6 Apr '11 - 4:18 
GeneralRe: Improving Article Moderation PinadminChris Maunder6 Apr '11 - 4:24 
GeneralRe: Improving Article Moderation PinmvpSandeep Mewara6 Apr '11 - 4:28 
GeneralRe: Improving Article Moderation PinadminChris Maunder6 Apr '11 - 4:32 
GeneralRe: Improving Article Moderation PinmvpSandeep Mewara6 Apr '11 - 4:39 
 
GeneralNew Reporting System, or Time to Focus on Quality. Pin
Tuesday, March 15, 2011 11:51 AM by Chris Maunder
Previously when reporting articles or questions you would click the little red flag and fill in the form on the following page. Sean, myself, or one of the editors would then review the report and take action. Almost uniformly the reports were "Total rubbish article - please remove", or "Spam".
 
This was tedious for us and opaque for you, so we've revamped the reporting system so that reporting articles and questions (and tips and blogs and answers) is done via Ajax (no page refresh) with the reports now collated automatically. When enough members have reported, the item will be closed and the reason for the item being closed will be displayed, along with those who reported the item.
 
This last part will cause, I think, the most debate but reporting is limited to Silver members and above and with everyone seeing what everyone else is reporting, anonymous report wars will be that much harder to instigate.
 
Reporters also get Organiser points for doing their civic duty.
 
So: if something is truly awful report it. If a question is posted and the author has made no attempt to help others answer his question, report it. It takes two seconds and will help promote the best content, the most well posed questions.
 
One final feature is that if you yourself find your article has been reported and closed then you have the ability to re-open it by simply editing and updating your article. You always get a second chance, but you will need to make major changes in order to reopen an article, and please be aware that if you open an article and it's reclosed then there's a good chance it will simply be deleted.
 
If your article or post (or answer) is closed and you think the closing was unfair, email us and we'll investigate and reopen if necessary.
cheers,
Chris Maunder
 
The Code Project | Co-founder
Microsoft C++ MVP
modified on Tuesday, March 15, 2011 6:02 PM

 
GeneralReducing our server count and improving performance. Pin
Thursday, February 10, 2011 11:12 PM by Chris Maunder
I still owe everyone a write up of our move to a new hosting centre, but I thought I'd just mention a little bit of trivia: until this morning we were still running 3 servers on Windows 2003 R2. I know - that's so 2005, but they worked. Well, mostly.
 
IIS6 was a phenomenal improvement on IIS 5 and we saw impressive stability and perf improvements. However, the pipeline model was annoying because ASP.NET was tacked on to the web server instead of being treated as a first class citizen, so doing things like handling non-.aspx files in ASP.NET was needlessly cumbersome.
 
To this end we were using an old, old component that Dundas Software was giving away, called Filter Plus. We modified the code a little to suit our needs, but it was a simple ISAPI filter that would take a simple config file and use the patterns in that file to tell it how to reroute requests. We were able to take all requests for all /kb/<section>/filename.aspx pages, for instance, and map them to a single page that would load and display articles (and incorporate some handy caching). Essentially it was a url rewriting component long before ASP.NET url rewriting was a twinkle in ScottGu's eye.
 
This worked exceptionally well, thanks to the coding of Troy Marchand, the original author, and allowed us to handle zips and images and all sorts of fun, but it involved extra settings, an ISAPI filter, and some if..then's in our code for servers that were't using this filter.
 
Win2008 / IIS7 made all this redundant and cleaned up our code nicely, and from today on I can remove the if...then's and move on to an IIS7+ model only.
 
We'll miss web18, 19 and 20, but web2 will handle all their duties, and more, and on a single machine.
 
So we're down to 4 servers: web2, 22, 23 and 24 and are serving pages faster than ever with better uptime. We have also moved from 3 database servers to 2, and can easily move to just a single database server but find it nicer to be able to have the failover option along with plenty of headroom. Servers - and I mean, big, serious iron - have become astoundingly cheap (relatively) - and the multi-core offerings provide amazing performance.
 
We've also moved our email systems to a hosted provider in a move that was a long time coming. No more worrying about my insanely large mailbox, no more patching and managing exchange, no more backups. The less we need to worry about servers and SysAdmin the more we can focus on doing what we do best.
cheers,
Chris Maunder
 
The Code Project | Co-founder
Microsoft C++ MVP

GeneralRe: Reducing our server count and improving performance. PinmemberDan Neely17 Feb '11 - 2:35 
GeneralRe: Reducing our server count and improving performance. PinadminChris Maunder18 Feb '11 - 0:54 
GeneralRe: Reducing our server count and improving performance. PinmemberDan Neely18 Feb '11 - 3:16 
 
GeneralYet more updates to the UI Pin
Friday, November 5, 2010 4:27 PM by Chris Maunder
A few more updates to the aging UI have been released so I thought it worth walking through a few of them and providing a little rationale.
 
First, the homepage is, clearly, a little different. While the old page had high information density, it was so high as to be approaching noise. I always thought of the homepage as a newspaper front page - lots of boxes with lots of info all available at a glance. That's great when you know what you're looking for, but terrible if you are casual cruising or if you just want to quickly scan a page and quickly look through what's new.
 
And that's what most homepage readers do: see what's new and move on.
 
So the design of the homepage was done to allow someone to take a quick peek at the homepage, see what's new, what's interesting, and then get on with it. There is still a little tweaking to do in terms of the actual data shown, but the layout itself is as it will be.
 
You may have also noticed that I've removed the sidebar on many of the pages. My idea with this, way back when, was that readers would come to the homepage, diligently read the entire page, then peruse the list of chapters and sections and (diligently) work their way through the article.
 
Except that everyone just hits Google and then goes directly to the article they need.
 
So, instead of the sidebar navbar we now have a simple link to the main Site map, and we also have a fly-out sitemap under the "Article" menu. Removing the sidebar gives us two benefits: vastly reduced page size (and quicker download/page render) and more screen space. The homepage is now around 18K vs 77K (give or take) which means a lot when you're mobile or on a slow connection. Further speed increases are coming.
 
I've also added visual hints in the top scrollbar showing where you are in relation to the nav bar navigation. A small thing but a useful thing.
 
The survey has been moved from the bottom to the side. While the surveys are not exactly the most scientific of research (let's be honest - Sunday night and a bottle of red and hey presto! A new poll) they are hugely interesting, but they were buried. Just watching the partipation rate this week showed the move has been good for the polls.
 
There is also a nice bonus for those who feel advertising is the root of all evil in this world. I've removed two ads from the homepage and replaced with a smaller box ad. I, personally, always read our ads because I always see stuff potentially interesting (a requirement for any ad we run). However, I'd rather have a cleaner layout than advertising any day, so I fired one of them.
 
One non-UI addition is that sign-in and profile update is now all done via SSL. I know this won't help issues with packet sniffing over unsecured Wifi networks, but what it will do is protect your passwords. People hate thinking up and remembering passwords so there is a ton of password reuse. By keeping the passwords out of the hands of miscreants, and hashing, not encrypting, passwords, we can do our bit keep your private business your own.
 
There are also a few smaller touches around the place. A little shading and shadowing, highlighting of the currently focused text box, a small tweak to colours but nothing that, I hope, will cause tempers to flair.
 
The point of all of this is the old maxim in editing: remove half of what you write; then remove half again.
 
While I will never claim to be a designer I can claim to be a user, so my focus is on making the UI work for me, and for the majority of those who use the site. While this will never make 100% of the users happy, creativity can certainly help me bridge that last little gap.
 
More soon.
cheers,
Chris Maunder
 
The Code Project | Co-founder
Microsoft C++ MVP

 
GeneralChanges to the layout. A little Pin
Tuesday, September 14, 2010 3:37 PM by Chris Maunder
A minor update of the general layout sees the green nav bar back under the ad, and the search bar back on the right hand side. We've tucked a few things inside pop-ups (CSS, not Javascript) as a way to neaten up things a little.
 
All in all: 26 or so extra pixels of screen space recovered. As an added bonus about a dozen minor but annoying bugs have been squashed.
 
Now - who will be the first to complain about the lounge link?
cheers,
Chris Maunder
 
The Code Project | Co-founder
Microsoft C++ MVP

GeneralRe: Changes to the layout. A little PinmentorSandeep Mewara15 Sep '10 - 9:50 
 
GeneralChanges to Quick Answers Pin
Wednesday, September 8, 2010 12:17 PM by Chris Maunder
Nothing really huge, more of just a recognition that voting for a question or answer is different than voting for an article.
 
Voting is incredibly important in helping filter the good and the bad, but useless if no one votes. Voting can be, however, detrimental to the motivation of authors if downvoting can take place without accountability.
 
My feeling on this is that articles, technical blogs and Tips are permanent references and their vote has weight. Questions are ephemeral and nowhere near the amount of effort has gone into posting a question as would go into, say, posting a tip - let alone an article.
 
In light of this I've removed the features for questions and answers that requires a comment to be provided on a downvote. With the introduction of the comment requirement the number of votes fell dramatically, and the votes that did occur were not always useful. By removing the barrier to voting, Quick Answers now falls into line with the discussion forums with voting now easier and more likely to be cast.
 
We'll see. Maybe this is a Very Bad Thing. Maybe we put comments back on answers, but not questions. Maybe we change the voting to simply be yay/nay.
cheers,
Chris Maunder
 
The Code Project | Co-founder
Microsoft C++ MVP

GeneralRe: Changes to Quick Answers PinmemberDalek Dave9 Sep '10 - 0:25 
GeneralRe: Changes to Quick Answers PinmemberRajesh Sajjanar5 Oct '10 - 8:05 
 
GeneralNew article design Pin
Friday, June 25, 2010 11:33 AM by Chris Maunder
We have a new article layout!
 
After an absolute marathon 3 weeks I'm happy to let our new baby free into the world. A cleaner layout, less clutter, no more left-hand side bar, and a rationalised top-menu.
 
While doing this we also added a few more things:
 
- inline posting of answers in the Quick Answers section
- Next / previous buttons on Quick Answer pages to allow you to whiz through them faster.
- Source code browsing
- A flyout sitemap of Chapters and sections (see the sign post at the top left of articles)
- A slightly (and I mean, slightly) improved iPhone experience.
- A few niceties for non-IE users, and a couple more on top of that for Opera and Chrome users.
- 'Learning Zones' - areas where we will bring together content on a given topic for new (and advanced) members
- You can add your Twitter name to your account to give a little exposure to your twitter feed.
 
There are definitely a few little surprises around. I had to be brutal in removing unnecessary stuff and even now I still want to remove 50% more.
 
There will be a period of weirdness where the site is half-in, half-out of the new design, but I wanted to at least push forward with the article design since that brings the biggest benefit to the majority of our readers who simply come here for a 5 second quick fix.
 
Enjoy, and as always, bugs and suggestions in the Bugs and Suggestions[^] forum.
cheers,
Chris Maunder
 
The Code Project | Co-founder
Microsoft C++ MVP

 
GeneralSpeeding up a web page Pin
Wednesday, February 24, 2010 4:59 PM by Chris Maunder
One of the obvious ways to make something faster is to give it less to do (excepting, of course, that well known adage that if you want something done, give the task to a busy person). Caching is the prime method of speeding up a website and takes many forms: SQL server caches results, your data layer may cache results, your business objects may be cached, ASP.NET has a cache object, Appliction and Context objects, the session object, disk caching, your user controls and pages have output caching, there is server side caching within IIS, partial page caching, and client side caching within your browser itself.
 
Just to name a few.
 
Unfortunately your web.config file doesn't have an entry <caching level="11" for="everythingIncludingTheKitchenSink" />
 
Setting up caching requires attention to detail and an understanding of where the load is best relieved, what type of data synchronisation issues you may have (working in a webfarm?), what member you have, the length of time you wish to cache and your caching resources (memory).
 
For the last couple of weeks we've been focusing on the client side trying to understand what is causing the page to download slowly, and what we can do to speed up rendering. To this end the obvious fixes were to ensure IIS caching was enabled, and not just enabled, but enabled correctly.
 
IIS caching requires you to explicitly tell IIS that you want caching. Because, you know, you might enjoy having your readers download those images every...single...time. So you turn it on - ensuring you enable it for both static and dynamic content - and you find it works for your IIS6 servers but not your IIS7 servers (yes, we mix and match. We're crazy like that).
 
The trick is removing the eTag. Do a search and you will find the trick is actually setting the eTag changenumber to 0, which requires downloading the IIS Metabase editor, cranking it up, adding an arcane key and crossing your fingers. This then ensures that the eTag, a value that should be the same for a given version of a file on all servers, is the same. Change the file, the eTag changes, and the file is re-downloaded by the client and cached until it next changes.
 
However, the eTags between IIS6 and IIS7 differ so the only way to get around this is remove the eTags. An eTag is just an HTTP header so in IIS6 you just manually ask IIS6 to add a new header to the output stream called "eTag" with the value "". Voila, no eTags.
 
Except that this doesn't work for IIS7. People say it does, but it doesn't. You'll need to write a HttpModule to strip the output of the eTag manually.
 

So...
 
You now have caching working. You've enabled it, set the expiry as a date in the far, far future, removed eTags if required, ensures static and dynamic are cached, and all is good. Speed skyrockets. Well, perceived speed.
 
However, you still have many readers who come once, and once only. Caching is no use for them. So the next step is compression.
 
Compressing your downloads (zips, images, HTML content itself) is again set by IIS but it's, yet again, a PITA in IIS6. I'm not going to go through the details - just do a search for "IIS compression metabase.xml" and you'll find the instructions for enabling compression properly on your servers.
 
And again you now have compression. You're sending small packages downstream, sending them less often, saving bandwidth, saving processor time, and everyone wins.
 
Just make sure you make copious notes of what you did, because when it comes time to adding a new server or repairing a failed server, you really don't want to go hunting around for all this stuff again.
 
Now where is that web.config setting we all need...
cheers,
Chris Maunder
 
The Code Project | Co-founder
Microsoft C++ MVP

 
GeneralMore things I've learned in Canada Pin
Thursday, August 20, 2009 6:53 AM by Chris Maunder
1. The trees start turning in Quebec mid-August. This, to me, is totally unacceptable until a mate pointed out that we could have our first snow within 8 weeks. It's currently so hot outside the tarmac is sticky.
 
2. Raccoon poo can burn wood
 
3. I have a dray of squirrels going ballistic in our trees and a gaze of raccoons treating our roof like a trampoline that opens at 5am. Gaze and Dray - your words of the day.
 
cheers,
Chris Maunder
 
The Code Project Co-founder
Microsoft C++ MVP

GeneralRe: More things I've learned in Canada Pinmemberlrsoft200930 Oct '09 - 17:59 
 
GeneralForum code Colourisation added Pin
Wednesday, August 12, 2009 3:51 AM by Chris Maunder
Or colorization if you live in certain countries.
 
A small thing but it does solve two problems:
 
1. The code looks better.
2. Smilies are no longer injected into PRE blocks.
 
The programming forums are due for a serious upgrade so while this change won't mean much in the short term it does make life slightly, slightly nicer in the interim.
 
cheers,
Chris Maunder
 
The Code Project Co-founder
Microsoft C++ MVP

GeneralRe: Forum code Colourisation added Pinmemberaspdotnetdev20 Aug '09 - 12:23 
GeneralRe: Forum code Colourisation added PinadminChris Maunder20 Aug '09 - 14:57 
 
GeneralSpammers Pin
Wednesday, August 12, 2009 3:47 AM by Chris Maunder
A lot of my time over the past few weeks has been spent weeding out spammers. Spammers in the forums, spammers in the articles and spammers in the member pages.
 
The latest (well, latest that I've noticed on CodeProject) trend is to go to a site that allows a member to have a profile page, create a page that contains whatever loathsome spam-ridden message you want to pass on, and then send a spam email with links to that profile page. Actually, links to about 20 profile pages spread across different sites.
 
This is a sneaky way to try and get around email spam filters. I'm assuming the theory is along the lines of: The links in the email aren't to banned sites so they get through email filters (even though "viagra" is the main topic of the email). Spammees get the email, think to themselves "That's exactly what I need in my life!" click the link, go to CodeProject, see the profile, click another (fatal) link and get their machine infected with zombieware and leave unsatisfied.
 
At least that's as close as I can guess.
 
The upshot is that I spent probably 2hrs a day analysing the results of the filters, with each new IP or keyword or pattern unearthing a new motherlode of fake accounts for me to shovel through.
 
We're getting there, and while I appreciate (but am equally horrified) at the large spikes in page views we get each time one of these mis-directed spams go out, it is getting a little old.
 
cheers,
Chris Maunder
 
The Code Project Co-founder
Microsoft C++ MVP

 
GeneralIntroducing The Code Project Add-In for Visual Studio 2008 Pin
Friday, May 15, 2009 1:08 PM by Chris Maunder
We were thinking about the following:
 
You’re in Visual Studio 2008 working on a nasty block of code. Remembering that one of your Code Project cohorts recently posted an elegant solution for a similar problem you highlight some code and hit search. Up pops the exact article in The Code Project Add-In window. No time wasted. No pulled hair and exasperating searches. Valuable information is just one click away.
 
So we wrote it. The Code Project Add-In for Visual Studio 2008[^] does this, and will do a whole lot more once we're through.
 
We wrote this add-in so our members would have quick access to our 23,000+ articles in addition to MSDN and Live Search. No more toggling back and forth between your work and web searches. We hope this will make your work easier. It’s free and it's available now. Does it get any better than that? Download here[^]
 
cheers,
Chris Maunder
 
The Code Project Co-founder
Microsoft C++ MVP

General General    News News    Suggestion Suggestion    Question Question    Bug Bug    Answer Answer    Joke Joke    Rant Rant    Admin Admin   


Advertise | Privacy | Mobile
Web02 | 2.6.130523.1 | Last Updated 25 May 2013
Copyright © CodeProject, 1999-2013
All Rights Reserved. Terms of Use
Layout: fixed | fluid