You have something to share. Now what do you do?
Do you have a piece of code, a tip, an article, video, or something else that you believe others would find useful? The following information will hopefully answer your questions about contributing as well as show you how you can share your items with everyone coming to CodeGuru.
We would rather get submissions than scare you off. If you have a question, doubt, or suggestion, then contact us at firstname.lastname@example.org. There is a lot of information in the following guidelines. Most is common sense. If in doubt on a guideline, do your best and submit your article anyway! If there is an issue, we will contact you.
These guidelines are broken into the following sections. You can jump to any of these sections to get help.
- What types of Articles/Content can be submitted?
- Using the Online Submission System
- Quick Guide to Writing Articles
- Source Code Guidelines
- Documentation Guidelines
- Tips for Entering Articles
- Bug Fixes, and So Forth
- Naming Download Files
- Submitting Your Article by E-Mail
- Graphical Badges
There are a variety of types of content on CodeGuru that you can submit. These include:
- Video Articles
As a general practice, submission should be focused on sharing knowledge that will help other people doing development or working with developers. Submissions should not include marketing or promotional materials. As such, submissions such as press releases are likely to be rejected. The best place to do a one-time placement of a press release is within the "Announcements" forum on our discussion board.
Almost all of the submissions to CodeGuru are regular articles. Odds are your submission is also an article. The basic definition of an article submission is simply a piece of code or technique, along with a written explanation of it, that helps out another programmer. To that extent, there are three basic types of article submissions:
- Techniques—These are usually very small articles that simply relay a cool technique or means of accomplishing something. An example would be a simple technique shown to capture the user right-clicking on the header control of a listview.
- Derived Class(es)—This is when someone has extended a standard Visual C++/MFC class or provided a much-needed wrapper for a function or set of functions. A good example of this would be the various classes that extend the standard MFC classes such as CListCtrl, CTreeCtrl, and so on.
- Tutorials—Our personal favorite, these are articles that usually contain between 500 and 2,000 words and teach a given concept, programming technique, or technology. Tutorials can be beginner level or very advanced, depending on the topic and the intended audience. An example of a tutorial article would be "Beginner-level Tutorial on XML." Tutorials are generally the most popular items on any developer Web site and in a recent CodeGuru poll, the number one improvement most readers wanted was more tutorials.
Before writing and/or submitting a tutorial, please check the site to verify that there is not a tutorial already available for the topic.
- Tools & Frameworks—This is an article that presents an entire application or framework that makes working with a given technology easier. The article can explain how the technology is being used and what benefits can be derived (faster development time, better UI, extended functionality, and so forth) from using the tool. A "tool" example might be an article that explains how to use DTDs with XML and then presents an application that allows for the visual definition and cataloguing of DTDs for a large programming team.
Note Tool articles that appear to be marketing or promotional will be rejected. NOTE: The CodeGuru submissions process is not for product marketing. Press Releases or articles with a focus of promoting and selling a product (marketing) will be rejected.
Video articles allow you to submit a video as the key element of your article. There are a number of guidelines for video articles. Most of these are to insure a minimum quality of production as well as to ensure the content fits within the video format. Because the format of video articles is different from a standard article, there are separate guidelines for them located HERE (www.codeguru.com/video-guidelines.php). The video guidelines include information on software you can use to capture a video as well as how to submit the larger video files to be published.
For video articles, you should also review the general article guidelines presented in this document as well.
If you want to post a question, then join our discussion forum! You'll find it at forums.CodeGuru.com. You can also go there to answer questions!
You most likely got to this page because you selected a help button on one of the pages for submitting an article. The following sections will explain the process for entering an article as well as detail what each entry item does or is expecting. If you have trouble, you can always submit your article via e-mail. In fact, emailing a simple HTML file or Word document along with any supporting images and a compressed code file can be easier than using the form.
Note: Due to changes in SEO and search engine processing, we ask that if at all possible, an article only be submitted to CodeGuru.
Our article submission process was simplified into a single form that is presented in six parts. We'll cover each of the parts below.
In the first section, you provide descriptive information about you and your article including your name, email address, your article title, and a short description (summary) of what your article is about. The description becomes the "lead" that appears on some of the index pages and the mobile site when the article is posted. The following figure shows the form used for the first section.
Figure 1: Add your name, email address, title, lead-in and environments in this section.
On this portion of the page, you should enter the following information:
- Your Name—This is your name as it will likely appear on the article.
- Email Address—This is the email address that will be associated to you and your article. We will use this address if we need to ask you any questions about your article.
- Article Title—This is the title for your article. Keep it concise, yet descriptive.
- Subtitle (optional)—This is a subtitle if needed. Generally, you won't enter this.
- Summary—This is a very short description of your submission. This is the one or two sentences that are displayed on the site to describe your submission. As such, you should focus on the key information you are presenting: What will the reader learn from your submission?
2. Write Your Article—This is where you enter your article. You will enter your article as well as mark-up to format your article. Note that our form allows for BBCode markup and not HTML. If your article is formatted in HTML, then email it to us instead of using the form. In order for formatting to happen in your article, including line breaks, you must include the BBCode mark-up. The following are supported:
- [p]—This is a paragraph tag. It will start a new paragraph.
- [br]—This is a new line tag. It will start a new line.
- [h3]—This is a heading tag. It will start text formatted as a header. You should use a closing tag ([/h3] to complete the header text.
- [em]—This is a emphasis tag. It will emphasize (italicize) the text up until a closing [/em] tag.
- [stong]—This is a bolding tag. It will bold the text up until a closing [/strong] tag.
- [ul]—This is a unordered list tag. It will start a list of times that will be specified with [li] tags. You should end the list with a closing tag ([/ul]).
- [li]—This is a list item tag. It will start a bulleted item in a list ([ul]). You should end a list item with a closing tag ([/li]).
- [img]—This is a image tag. It will be covered below. You will add the image names including the brackets where you want your images to appear in your article body.
Example 1: This is the code needed to add images to your article
Figure 2: This is the area where the text of your article will appear.
3. Add Images—You can add images to your article. Your images must be in JPG, GIF or PNG format; otherwise, they will not be loaded into the system with your article. This can be done clicking on the "Add an Image" button and browse to your local drives to where your images are stored. Once you have chosen your image click open in the dialog box and your image will be uploaded. If you have more than one image, then click the "Add an Image" button again for each image. You can click the "Remove last image" button if you upload the wrong file.
Figure 3: Upload your images using the Articles Image Section.
Note: To get images to appear in your article, you need to add the image names including the brackets at the location in your Article text where you want your images to appear.
Example 1: This is the code needed to add images to your article </p>
4. Add Files - Use this section to add your articles accompanying code. All code must be in the zipped format. Click the "Add a File" link and then browse to select your file. It will be uploaded automatically. This zip file will appear at the bottom of your article. You can upload more than one zip file if needed.
Figure 4: Upload your files using the Article Add File Section.
You can remove the last zip file you added if necessary by clicking the "Remove last file" button.
NOTE: It is important to only zip and upload the files necessary for your article. This is generally just the source code and project files. You should not upload executables or libraries.
5. Add Site Sections - Scroll down and you'll see the articles section area. Here you will choose what area of the site your content fits into. For example if you article was about ASP.NET, you would choose the .NET/C# topic from the site section dropdown and then choose the appropriate ASP.NET section from the categories section. You can click to highlight the section, then press the Add to Selection Categories button to add the section.
Figure 5: Shows the selected categories your content will appear on the site.
- Site Sections Dropdown:—This contains choices for the primary area where you will place your article. Selecting a value in this list box will fill in the selections in the following list box. You should be aware that these choices follow the topic areas listed in the navigation menu at the top of the page.
- Categories...—This selection is filled based on what you choose in the Site Sections list. Click on an option to add it to the Selected Categories list. You can select more than one area to place your article. Additionally, you can change the Site Section and select additional areas as well. We recommend that you don't select more than three or four areas to place your article.
- Selected Categories—Items are added to this list based on what you selected for categories. You can remove an item by highlighting it and clicking the "Remove from Selected Categories" button. The moderators and site editors will review your selection and, if it makes sense, they will choose additional areas to post your article as well.
6: Finalize - At the bottom of the form there are Preview and "Submit for Posting" buttons. You can click the preview button to get a preview of what you entered. Clicking the preview button will take you to a new page showing your article. You'll roughly see how it will look when it is published. It is strongly recommended that you preview your article, especially to ensure that your figures and downloadables are available.
If your article has any issues, then the preview will tell you what needs fixed. To make a change, rather than hitting the browser's back button, you should instead click on the "Edit Article" button shown on the page. This will take you back so you can make corrections.
If your article looks good, then you can click the "Submit for Posting" button. If your article doesn't have any issues, then it will be put into the queue to be reviewed by the CodeGuru team. NOTE: It is suggested that if you submit an article, you also send an email to email@example.com stating that you submitted an article. This will help ensure the article doesn't get missed!
This is a "Quick Guide" for article submissions. Please make sure your submission adheres to these guides before submitting.
Most articles submitted to CodeGuru include code and samples. If your article doesn't include code, then it should still be on a development topic and have examples. Your article should not be marketing or promoting a product. For articles with code, consider the following:
- Is the documentation sufficient to help someone else use your code?
- Do your code samples compile and run?
- If including an attachment, have you removed all unnecessary files (*.opt, *.ncb, *.obj, *.aps) files from the ZIP? Submissions with large files will, in most cases, be rejected. Keep zips and images small! You should also remove executable and library files as these might get flagged by search engines and virus software as being unsafe.
- Has the article already been covered at CodeGuru? If yes, then why is yours better?
- If the article is an extension of an article, have you tried contacting the original author to produce a single article? Have you thought about posting it as a "Comment" to the original article? Simple mods to existing articles will not be accepted as a new article.
- We want quality of articles, not quantity.
First and foremost, we need some documentation . This doesn't have to be anything fancy, though we don't mind if it is, but if you think about answering the following questions, you should be off to a good start. I'd like to think that these are fairly obvious, but this has proven not to be the case!
- What does the code do?
- How do I integrate it with my existing code or how do I use it?
- If there already is a similar article on CodeGuru, how does this one differ? Why would someone want to use your version?
- Is there some aspect of the code that is of particular interest that perhaps wasn't covered in the documentation?
- What version of software was this code built with? This may be fairly obvious, but given the inevitable upgrade pace set by software companies, this may not remain so obvious.
The idea is to give the reader a clear idea of the purpose of your code, instead of forcing them to download a project, build it, and then hunt around to find out what the sample does.
First and foremost, does the code actually work? We do sometimes get code that, for one reason or another, just does not work. Please check that the source code you send compiles cleanly, and if part of a larger demo application, that the application itself runs OK.
Sample Executable: If providing a sample executable, please make sure it is linked with the release libraries. The whole point of a demo executable is to give developers a quick intro to your code. If they have to recompile to get the application to run on their system, there is no use in supplying the executable in the first place. Second, try to be conservative about just how big a sample you upload; a 4 Mb sample just isn't going to interest a lot of people.
Sample Project: It is recommended that you also include a sample project. When creating a ZIP file for the sample project, please do not include either the Debug or the Release directories. They simply inflate the size of the ZIP file. Also, do not include the *.clw, *.ncb, *.opt and other such files that are automatically recreated.
Style: We cannot (and will not) dictate coding style, but we do ask that the general coding guidelines be adhered to so that other programmers can understand your code easily. A few other things that you may want to consider when preparing a article are:
- Does the code compile and run cleanly? Even under the highest warning level?
- It is okay to use others' code as a base as long as you make it totally clear that some/most of the code isn't yours, and keep all copyright notices in the original code. If you use someone else's code, DO NOT remove their copyright notices. There is a lot of code reuse here; that's the point, after all. As far as the articles that are being posted here go, we expect to see credit where credit's due, both in the code and the HTML as appropriate.
While we are talking about copyrights, you retain copyright of your article and code, but by submitting it to CodeGuru you give permission to use it in a fair manner and also permit all developers to freely use the code in their own applications— even if they are commercial .
File naming convention: If your contribution includes files that will be downloaded by your readers, then to make life easy for everyone, we ask that you follow these filename conventions:
|coolcode_src.ZIP||The zipped source code for your article|
|coolcode_demo.ZIP||The zipped demo project for your article|
In place of coolcode, use a name that describes your article's topic and thus the contents of the download files.
Tips for Entering Articles
- Don't use tabs in your code. Use three spaces instead of a tab.
- Limit lines of code to 65 characters. You may, of course, use your language's internal line-breaking protocols, such as adding a space and an underscore in Basic languages.
- If you include images, try to keep their file size small. 20 to 30 Kb per image is okay. 300,000 Kb per image is too big. The bigger the image file, the longer it will take to view your article.
We get a number of modifications to existing posts, which can be a good thing. In these cases, can we ask that you first attempt to contact the original author and then try to liaise with him/her to produce an update to the original article? This way, we can retain continuity with the original article as well as reducing the number of completely new pages that need to be posted.
If need to update your own article, contact us at firstname.lastname@example.org. We are happy to help or to answer any questions. Please include the URL of the article.
While you can submit your articles via the online form, we also recommend that you email a copy as well. We can accept both Word and simplified HTML formats (no style sheets). Please send all your articles to email@example.com. Your article then will be forwarded on to the person responsible for the section in which your article will be posted. Please refrain from posting articles directly to individuals unless they specifically ask you or are expecting an e-mail from you.
When e-mailing the article, you can help us out. If you believe you article neatly fits in one of the categories, please let us know. (Providing language, categories, and subcategories from the site is really appreciated.) A one- or two-sentence description for the index page is also appreciated. None of this is mandatory, but it really helps us! For example:
Subject: VC++ Article - Using Remoting Procedures with ADO.
Attached please find my files for the article "Using Remoting Procedures with ADO." This would fit in the ATL/COM section of the VC++ site.
A description of my article:
"ADO can be used across a network or the internet using Remoting. This article explains the details needed to implement this in just four easy steps."
- Anon E. Mouse, firstname.lastname@example.org
Your article should be sent as an attachment. Embedding your article in an e-mail message directly often does horrible things to the formatting.
If you do want to send an archive, please use a plain ZIP file rather than a self-extracting executable. Remember that if your project contains long file names, you ought to use an appropriately modern ZIP program to create the archive. InfoZip, WinZIP, and PK-Zip, to name a few products, all have programs that do this correctly.
If you have written an article for us before, then please let us know the name that was used on that article. If you an send a link to that article as well, then we will be able to link and use your author name that was used before.
After you have been published on CodeGuru, you will want to let people know! To help you, we have provided the following graphical badges that you can use. If you have an article posted on the site, then you can use the following graphics provided you follow the rules in this section:
If you place this graphic on your site, you must link it back to CodeGuru.com. You can link it to either the home page (http://www.codeguru.com), to your profile page, or to your article. If you want to link it to a different CodeGuru page, ask us.
Just to cover us.... These badges cannot be changed in any way, nor can you use them in any way other than what we have specified here unless you obtain our written permission. We reserve the right to ask that these be removed at any time.
If you haven't published an article, you can still use the following badges provided you are a member (have a sign-in ID) or post to our forums.
- Member—You have registered with CodeGuru and have a sign-in name.
- Poster—You post in the CodeGuru discussion forums.
As you know, this site is a valuable resource for the developer community. Please note, however, that to avoid legal complications, we need to obtain your permission to use any computer code and any related materials ("resources") that you are providing to us. Accordingly, by submitting any such resource to CodeGuru via email or the site, you grant to QuinStreet a worldwide, nonexclusive, transferable, sublicensable (through multiple tiers), royalty-free, perpetual, irrevocable right and license, without compensation to you; to use, reproduce, distribute, adapt (including without limitation edit, modify, translate, and reformat), create derivative works of, transmit, publicly display, publicly perform, and sublicense the submitted resource (in both object and source code formats, as well as on and off the Web), and you acknowledge that you have the authority to grant such rights to QuinStreet. We request this waiver to help ensure that we have all the rights we may need to provide the Services available through this site.
By submitting the resource, you also grant your article's readers the permission to use any source code in the resource for commercial or noncommercial software. Please note that you retain ownership of any copyright in any resources submitted!
ALSO, IN MAKING THE RESOURCE AVAILABLE TO OTHER SITE VISITORS FOR DOWNLOADING, QUINSTREET WILL INFORM SUCH OTHER VISITORS THAT, ALTHOUGH THEY MAY DOWNLOAD ANY RESOURCES FOR COMMERCIAL OR NONCOMMERCIAL USES, THEY MAY NOT REPUBLISH THE SOURCE CODE SO THAT IT IS ACCESSIBLE TO THE PUBLIC WITHOUT FIRST OBTAINING THE COPYRIGHT OWNER'S PERMISSION.
We (CodeGuru and QuinStreet) have no control over, and shall have no liability for, any damages resulting from the use (including without limitation republication) or misuse by any third party of information voluntarily made public through any other part of the site. IF YOU CHOOSE TO MAKE ANY OF YOUR PERSONALLY IDENTIFIABLE FOR OTHER INFORMATION PUBLICLY AVAILABLE IN A SUBMISSION, YOU DO SO AT YOUR OWN RISK.
Update: June 5, 2016: Due to the evolution of SEO, we now ask that articles submitted to CodeGuru not be already published on any other sites.
If you still have questions about submitting an article or using the site, we are happy to help. You can email us at email@example.com. Of course, here are a few answers to some frequently asked questions:
If I still have a question, who do I ask?
You can email us at firstname.lastname@example.org.
Can you answer a coding question or a technical question? I'm having problem with code in an article or my own program?
Unfortunately, we can't help you with debugging or answering technical questions. We simply would get way too many questions if we agreed to do this. Rather, if you have a question about code in an article, then you can post a comment on that article, or you can post questions in our discussion forums at forums.codeguru.com. If we get time to answer questions, we go to the forums and answer questions there, so that is the best place to post!
I need to update my article! What do I do?
Email us! If it is a minor fix, change, or update, simply send us the URL of the article and information on what needs fixed and we'll do it. If it is a bigger fix than that, contact us. We'll send you the HTML for the existing article. You can then update it and return it directly to a member of our team. Obviously, you can only update your own articles.
I want to promote my product. Will you publish an article about how to use it?
The answer to this is likely "No." If we promote one product, then everyone will want to promote their product and we'll simply become a site full of promotions and not a site sharing information and insights.
Of course, we do have an Announcements forum in our discussion forum. You can post information in that forum about your product. That forum will even allow press releases. Do be cautious though. If you are constantly posting to that forum with promotions, you can get labeled as spamming. As such, promote when it make sense and when it is about something you've not recently promoted.
We also have a news section on the main page of CodeGuru. We will consider publishing publishing articles within that section including information about product releases and how to use third-party products. We will be more lax on our no-promotion policy in that section. We do ask, however, that content that is requested to be put in that section be emailed to us and identified as news. we also ask that it be unique, original content. To post the content, we will need the owner of the rights to the content to agree to an email contributor agreement giving us all rights to the post.
I posted a comment on an article and it doesn't show up!
Our commenting system is not real time. Due to the large (crazy) amount of spam, we no longer do real-time commenting. Your comments can take a little bit of time to post due to the need to be reviewed by a moderator. If you feel your comment needs to be pushed live immediately, feel free to email us. Include the article URL.
Not all comments go live. Our filters flag a lot of spam, and then we also manually flag a lot of spam. We also remove comments that appear to have been posted solely to promote another site, product or service. Comments that violate site policy -- such as using profanity or making personal attacks against about others -- are also removed. Any comment (positive or negative) that is about the article and is not spam, marketing, or a violation of our site policies we do our best to get posted timely. We try to error on posting all comments.
I want to contact an author, can you give me their contact information?
While we might be able to, we won't. We take privacy very seriously. As such, we suggest you use any contact information provided by the author on their article. If there is no contact information there, and it is a recent article, then if you email a request to use, we will determine if we are able to forward it to the author. It will then be the author's option to contact you.
# # #