-
OS History
(Content)
-
See http://www.gnu.org/philosophy/free-software-for-freedom.html for more explanation of the difference between the two movements.
The basic philosophy behind open source is very simple: When programmers can read, redistribute, and modify the source code for a piece of software, the software evolves. People improve it, people adapt it, and people fix the bugs. And this can happen at a speed that, if one is used to the slow pace of conventional software development, seems astonishing.
There are many active Open Source Software projects but some may be thinking you get what you pay for, so if it's free there must be something wrong with it. Sometimes this is true but there are open source software projects providing stable, scalable applications. The key is to know where to look and what to look for when evaluating the stability and scalability.
Here are a few interesting facts and examples of Open Source projects:
Apache is the number one web server at nearly 62% of all installations. Second place was help by Microsoft at just under 27%. (Source: Netcraft)
GNU/Linux is the number two operating system at nearly 30% of all servers behind Microsoft operating system at nearly 50%. (Source: Netcraft)
Sendmail (a mail transport agent) sendmail has become one of the standards of the Internet's infrastructure (TCP/IP, Apache, sendmail).
BIND the Berkley Internet Naming Daemon responsible for mapping domain names to IP addresses ran on 95% of all public reverse DNS servers. (Source: Information Sciences Institute of the University of Southern California).
MySQL founded in 1995 by two open source veterans, Michael "Monty" Widenius and David Axmark, with the help of Allan Larsson and claims 4 million installations worldwide and 30,000 downloads of the software per day making MySQL by far the planet's most widely distributed open-source database. (Source: mySQL)
PHP is a widely used general-purpose scripting language that is especially suited for Web development and can be embedded into HTML and as of May 2003 it was being used on 12,487,030 domains and 1,321,203 IP addresses. (Source: PHP)
Linux Operating System is over three years old and has grabbed 13.7 percent of the $50.9 billion market for server computers, and that figure is expected to jump to 25.2 percent in 2006, putting Linux in the No. 2 position. (Source: IDC)
SourceForge a site providing support tools and resources for the OSS/Free Software movement recently announced a major two year
Generated on February 27, 2009.
-
pnMeeting 2007: Mark West: Porting an Open Source Template to Postnuke .8
(News)
-
There are several sites that offer open source web-templates - you can take them and build your own site on them.
You choose one of their templates and turn them into a theme in 20-30 minutes with some experience. So if you watch the recorded presentation you will be able to follow Mark explanations step by step. We will put them online within the next few days.
Additionally there is already a lot of information in the development wiki.
In Mark's presentation you will also learn about the need to still provide table style sheets and how to correctly implement them.
Also a theme isn't only the template for the general layout - with for example the RSS theme you can generate RSS from every templated module. Of course it is also possible to generate other kinds of XML or other ways of displaying content.
One major advantage of the new theme engine is the possibility to completely port a theme with all settings from a sandbox site to the live site as all variables are stored in Smarty compatible .ini files.
We hope that this presentation sparks a new wave of themes and inspires new people to design their own layouts as these steps do not only apply to open Source web templates but also for your own designs created in Dreamweaver, NVU and so on. Mark already converted more than 100 free web templates that are available for .8 in the NOC or on Mark West's homepage.
BTW: Some more photos
Generated on September 8, 2007.
-
Development Update, February 2007-02
(News)
-
release, and some is part of the current nightly build from SVN. The items that are part of the MS3 package are indicated with a (*).
Installer and upgrade path
The installer for .8 now also checks for a web-user writable pnTemp directory. Before, only it's subdirectories had to be writable. However, more and more modules need a (temporary) writable directory of their own (for example cache directories for image creation or rss feeds). With a writable pnTemp, these modules are now easily allowed to create that directory themselves if it does not exist. (*)
The upgrade path from the historic .7 family has been updated: Some code has been added to migrate blocks placements into the new block_placements table. (*)
Furthermore, old style (legacy) blocks can now be stored in the /config/blocks directory. The specific files do need to be copied manually from the old /includes/blocks directory to it's new location. (*)
Core (API) and environment variables
In the core pnAPI, get_magic_quotes_runtime() was called lots of times for different purposes. With an internal caching method, the result is stored in the global PNRuntime array. Big advantage is that the site's speed has been significantly improved. (*)
Robert has added an enhancement to allow the pnSessionGet/Set/DelVar functions to accept an (optional) path argument (arguments 'autocreate' and 'overwriteExistingVar'). This will allow for easy setting of complex array structures. The change only adds extra arguments to the existing functions and are backwards compatible. At this moment, no direct usage has been committed yet.
PostNuke Object library
At this stage of development, a lot of changes are (and have been) made to the object library. Most of them are 'simple' bug fixes, but some changes are worth mentioning here (additional functionality or changed methods).
In the DBUtil class, there now exists a new method to increment a field with the function incrementObjectFieldByID. This can be used by module authors for updating read counts of content items for example. (*)
Additionally, the function selectScalar has been added (which takes a SQL quesry as argument). This is mostly useful for places where you want to do a "select count(*)" or similar scalar selection.
The utf8 conversion functions (convertFromUTF8 and convertToUTF8) have moved from AjaxUtil to DataUtil when solving a bug to keep the users input in Ajax driven fields as they are intended.
While solving a Google AdSense script bug, where the script tags were automatically cleaned by the safeHTL output filter, a new feature has been added to FormUtil: Before cleaning posted input on an already installed site, the FormUtil now checks if the current user has overall admin permissions. This allows site admins to input potentially harmful tags (javascript for example), but it's their site after all!
Jörn has improved CSS style handling in pnForm plugins, as he has changed some pnForm classes to be derived from pnFormStyledPlugin, which in itself is derived from the original pnFormPlugin.
Because it's better to read the languages directory first for available languages and compare that result against the full list of languages in stead of the other way around, the LanguageUtil has a new function getInstalledLanguages. This now significantly reduces the number of directory checks.
To ensure that most commonly used plugins are found as early as possible, the order in the pnRender class, where the system is searching for plugins, has been modified. The current correct order for the 0.8 distribution is:
system/pnRender/plugins
system/Theme/plugins
config/plugins
current theme-directory/templates/modules/$module/plugins
current theme-directory/plugins
current module-directory/pntemplates/plugins
Furthermore, two new variables can be added to the rendered output page using the PageUtil class. First is 'description', which is default set to the current site slogan. Second is 'footer', with the ability to add custom content just prior to the closing body tag. The latter function is applied as an outputfilter.
Finally, an additional parameter 'display' is added to the pager plugin, which can be set to either 'page' or 'offset'. This is (why am I explaning, isn't this rather self-explanatory?) to allow paging by pages, rather than offsets. It also mirrors the 'show' parameter that exists in many templates (based on the example module) but was never actually implemented.
Last but not least, the Theme class has now added support for a filters section in a page configuration file. This allows for loading of, in the first instance, custom output filters. Note there is no user interface to the functionality the moment.And, why not, the Atom theme has been updated to Atom 1.0
Module modifications
The following modules have been updated for improved .8 compatibility, or just to make administering those modules easier.
The User module now has the long awaited alpha pager for browsing users. (*)
All occurences of the block rendering APIs (read by the Blocks module) have changed from the old style call "return themesideblock" to "return pnBlockThemeBlock". (*)
To the Settings module there has been added a configurable separator for permalinks (*)Furthermore, a switch to globally disable JS Quicktags (which adds a set of buttons for common html tags to enabled textareas) is now part of the Settings module. (*)
Both the Ratings and the Multisites module are modified to meet the new standards of coding and templating. Work still needs to be done to both modules, so testing functionality for these modules may not be that worthwhile as yet. (*)
The Theme module takes over from the Xanthia module in an upgrade. This doesn't mean that it is not Xanthia anymore: it still is actually the Xanthia 3.0 engine (*).
To the Recommend_Us module a display hook has been added. This will add a list of social bookmark links, like the Diggers plugin also does.
Language files overhaul
The language defines in some modules have been reviewed and adjusted to the naming conventions of .8 (see also Dev Update 2006-06). This means that module-specific language defines start with a module-name specific prefix. Additionally, some new general language strings (using the pnML function) have been added to the core language file. The major effect this will have is to subtantially reduce the number of strings that need translating.These changes are applied to the following system modules: Admin, Admin_Messages, AuthPN, Blocks, Mailer, legal, Settings and SysInfo. ValueAddons modules will follow later.
PostgreSQL DBMS testers wanted
The .8 DBUtil class, as mentioned many times before, makes it possible to run PostNuke on different DBMS platforms, like PostgreSQL,
Generated on February 20, 2007.
-
Development Update, January 2007-01
(News)
-
be productive and succesfull for all of us. And of course: a finished .8 version of PostNuke is something we are all waiting for.
MileStone 3 is waiting around the corner: A feature freeze so far has speed up the progress and only a few bugs are blocking a release. The next development update will probably be submitted after the MS3 release.
OK, here goes!
API functionality
Introduced is a pnShutDown function to gracefully terminate the application framework. This now replaces all use of exit or die and also fixes some oddities caused by PHP's shutdown process.
Mark has replaced all old themesideblock function calls with newer API call pnBlockThemeBlock. Furthermore, he has added a raw text option to the PageUtil::registerVar (former pnPageRegisterVar) system.
The AjaxUtil is now using internal json_encode() if PHP >=5.2.0.
Object Library and classes
For the SessionUtil / RandomUtil, Drak has put his hands on improving the randomness in the generation of the AuthKey and passwords. This is done by extending the possibly characters used, and the length of the key (length also now being random).
Also, the AuthKey generation makes now use of the (updated) RandomUtil class. A big advantage is that the random data generation is done in one place, so a change will affect the complete system. This is actually with the complete Object Library: changes can be made in one place with the benefit that all calls are updated.
The DBUtil has now a renameTable method and a renameColumn method for easy manipulation of table properties without having to worry about SQL code. The latter (renameColumn) is a quite new function, so there may be some adoDB bugs.
Finally, pnPage.php is converted to the PageUtil class. This means that any 3rd party module developers should update their modules to make use of the new class. A call to (for example) pnPageSetVar('title', $title_var) must be updated to PageUtil::setVar('title', $title_var). The pnPage.php does not remain for backward compatibility. Examples for the needed changes can be found in SVN submission 21099. The Wiki documentation for Page variables still needs updating however.
pnForms: functionality and documentation
Jørn has been updating the pnForms toolkit extensively. Most important is hat the documentation in the files is more complete, and the Wiki documentation page has been updated. A summary:
Added authkey checking to pnForms.
Added min/max validation for integers.
Changed "classHtml" to "cssClass" in "pnForm" plugin for consistency with the other classes.
Added a language selector "pnFormLanguageSelector".
and much more...
All plugins now render unknown parameters "as is", so you can add "onclick" and such like that the system doesn't know of.
System modules: Categories, Search and Blocks
In the Categories system, there has been added support for a 'field' parameter.
The search module is as good as finished, and also displays a sum of all search hits too. An additional parameter is added to allow for searches that aren't going to be performed on a DB. Finally, it is now possible to search in RSS feeds.
The Blocks module has been updated, and now has a user friendly functionality for drag-drop between block positions and placements in one screen. This is done with Ajax technology (thanks Frank for simplifying and enhancing this), so javascript should be enabled to use this (non-js fallback available). Furthermore a XML/XSL block has been added (a generic xml/xslt block and modifier).
ValueAddons modules
Faq: implemented custom short url handler and permalink structure
News: implemented cache handling
Feeds (was RSS): implemented categorisation in admin panel, added short url handler, added title field.
Also, the RSS module is renamed to Feeds to better reflect it's purpose and to prevent clash with rss theme when using directory based URL's.
TinyMCE: Upgraded tinymce to v2.0.9
Reviews, Referers, Stats: Converted to API and pnRender compliant module, updated table management code.
pnRender Plugins
Mark has added an output filter in order to auto-magically title the administration pages, which makes navigation a bit easier.Also, A
Generated on January 21, 2007.
-
Development Update, September 2006-03
(News)
-
From the team
Mark West has been moving house recently. Since Mark usually takes holidays just after each new release, some of the devs thought this was just a new kind of "holiday" he was taking before new releases. This is now confirmed :) but this type of holidays comes with far more debt than the other type and isn't anywhere near as much fun. However, the joy of a new home came with consequences: no proper internet connection at home... But, Mark is not the only one moving. Also Wendell, Frank and Vanessa have moved or will move in 2006.
Another milestone has been reached: On September 7, 2006 (10:25:52), Mark committed revision 20000 to the repository. A celebration and big party still needs to be organised.
PostNuke.eu
For about a month, the domain name postnuke.eu is in hands of the German PostNuke foundation. This domain and the accompanied website aims to be an informative portal with information in several languages, and links to the various communities. This a call for translations and links, you can send them to pnteam (at) pn-cms (dot) de.
Status on release(s)
Read this article now, as this one is probably moving a bit downwards on the portal page quite soon. MS2 is scheduled for release by the end of the week, and if this is announced, nobody will be interested anymore in this article... So read on now, while you can! :)
Date Format change
Discussed in the team, and committed to the repository, is a better structured way of date formatting and display. First, the date formatting in the DateUtil class was changed. Default formatting is the same as before, but it is now generated using strftime() instead of date(). Furthermore, the behaviour of the smarty modifier has been changed: Instead of defaulting to Y-M-D format, it now defaults to the language constant _DATEBRIEF which is like "Sep 29, 2006" in english. Finally, both smarty plugins "pndate_format" (modifier) and "dateformat" (function) are now using DateUtil::formatDatetime. This makes both plugins consistent.
Module authors are encouraged to use the DateUtil functions in their modules, and the smarty plugins in their templates.
Categories, plugins and core system changes
On the categories system, the mainCat parameter has been renamed to a more common rootCat parameter. To summarize all the commits last weeks by Robert Gash and some team members, the categories integration code has been finalized for testing and the Quotes module serves as the categories example (and has been configured to allow multi-categorization). One item can belong to more than 1 category.
The footer meassage (see
Generated on September 28, 2006.
-
Multisite Analysis and Design Framework
(News)
-
Throttle-Status shows a critical analysis of Postnuke Multisite Scalability. Canada Ads Horses is out of the gate and pushing to catch up to the third genertion sequence demonstrated by Toronto. Reiteration improvements outlined briefly at this advancement describe the actual start date of the fourth generation sequence.
Lethbridge improved considerably as a direct database dump transfer over the previous second generation original creation Edmonton Work Wanted in the transfer to the Linux Guru domain. The main fault and subsequent end of life for municipality based linux advocacy and teaching sites arose from being replicated too much like the original.
First generation analysis of Swingerz was and still is the origin of thought for further analysis of multisite design. Each surviving platform gives clues as to what can be expected from the next generation. With a Black Diamond arriving in the heart of cowboy country this forth generation prototype takes its first cautious steps towards easy country living.
She's running the latest Regina post apocolyptic armagedon core. It consists of a highly customizable and extendable admin modular interface. The armagedon core prototype is slated to start undergoing basic sql preparations for advanced graphical user interface considerations almost immediatly.
Even in it's earliest infancy the post apocolyptic armagedon core proved invaluable in singular module replication affecting over three hundred websites with a one percent non-catastrophic failure rate. The armagedon core was in essence responsible for bringing the ads22Transfer.sql file to life after dump and proves that other data reiteration ideologies for Multisites are only hypothetical. Par for the reusable and simplistic module NS-MySQL_Tools
The practicality of of generating a large index of Multisites in one intall routine remains well tried according to this article. The data processed by the failure of the second generation reiteration concatenated with sequential envolution1-20 dot linuxguru.ca predisposed any notions of any glitzy bells and whistle transfers in the future. Neither is hand instantiation an option as evidenced in the heretofore previously mentioned article. It was the beginning of an unanswered and even unthought of question though.
It had something to do with creating an acceptable amount of content and community at an acceptable rate within standards applied by society. I find that having tried the blogging regression theories presented at this Drupal thread that I am still undergoing analysis of this project. The scope of my blogging content dissemination and aggregation theories reached a pitch with this announcement and slowly died an aggregating and aggravating RSS plague of duplicate destruction cumulating with the recinding of backend.php files from all root web directories.
With the creation of another advanced portal, very much like this one in many respects I continue to explore the bounds of Multisite
Generated on January 23, 2006.
-
Planet-PostNuke.net
(News)
-
If you like to see your own development News on this site, just drop a notice as comment here. The prerequisites are:
* PostNuke Development related
* RSS feed data contains datetime information
* published news in the last weeks
* english language
Generated on January 21, 2006.
-
The Road to .8 - Where are we, and where are we going?
(News)
-
The modules included in .760 which are templated, and taken direct from the .8 CVS are as follows:
Admin
Admin Messages
Autolinks
AvantGo
Blocks
Censor
Credits
Ephemerids
Groups
Header_Footer
Legal
Mailer
Members List
Messages
Modules
Permissions
pn_bbcode
pn_bbsmile
pnRender
Quotes
Ratings
RSS
Sniffer
Typetool
Xanthia
This represents a significant percentage of the .8 code, but there is still more to do. The aim of this article is to try and outline some of what remains to be done before we can consider a release of .8.
Six Main Projects for PostNuke Development
We have identified six main sub projects vital for a release of .8. These projects cover wide areas, and each are at different stages of completion. The six projects, in no particular order, are:
Integration of Open Star object library and Database Utility
Integration of Open Star category management
Installer
Xanthia
User management
Finishing of content modules
This article also includes a little information on some of the other new code to be introduced with .8 this is at the end, where we look at EZComments and the Error Handler.
Integration of Open Star Object Library and Database Utility
The new Database layer reuses the existing pntables information to provide an
object representation of database rows. The advantage of this approach is that
it allows you to basically remove manually coded SQL statements and replace
with what's typically a 1-line statement. Some sample invocations of such code
are shown below:
[code]
$myObj =& DBUtil::selectObjectByID (, $id);
$myObj =& DBUtil::selectObject (, $where);
$myObjArray =& DBUtil::selectObjectArray (, $where, $sort);
DBUtil::insertObject ($myObj, );
DBUtil::updateObject ($myObj, );
[/code]
These functions all return an associative PHP array, or in the case of array
functions, an array of arrays. The fields in this array are cleaned up in
the sense that any field prefixes have been removed. This DB API also
gives you the ability to have generate associative (object) arrays, expanded
arrays with other table fields joined in (which means that you can save SQL
lookup calls) as well as store/retrieve dynamic attributes without altering
the underlying table structure. Together this provides a highly flexible API
which can take care of all storage & retrieval operations.
On top of the DB layer sits the Object Layer. Objects provide a component model
which features transparent persistence facilities. Objects/Classees are loaded
though the Loader API though
[code]
Loader::loadClassFromModule (, 'foo') //
Generated on November 3, 2005.
-
Introducing Your PostNuke Steering Committee
(News)
-
The six members of the PostNuke Steering Committee are:
Simon Birtwistle [HammerHead]
Simon has been working with PostNuke for over three years now. Originally using PostNuke for a simple, personal website running on the .722 release Simon now runs a number of PostNuke websites for different organizations including the Scout Association. His personal website itbegins.co.uk, although out of date, houses developments such as pnStatus and also copies of documentation written for the project. In real life, Simon is a student, fortunately leaving ample time for his volunteer work with PostNuke, mainly centering on the pnForums and documentation, most prominently in the pnGuide. Simon has been a team member since the summer of 2003.
Frank Schummertz [landseer]
Frank started with PostNuke more than 2.5 years ago when working on pnCommerce. In the meantime his portfolio also contains Formicula, MultiHook, pnMenu and last but not least pnForum and the pn_bbclick / pn_bbcode / pn_bbsmile / pn_highlight hooks in their latest incarnation. Frank has been part of the Development team since 2004.
Franz Skaaning [franz.skaaning]
Franz originally started working with PostNuke around the time of the .722 release. Since then, he has started a number of PostNuke related developments, these include modules such as xFPDF and xRSS and his themes, releasing a total of 13. His presonal site, lexebus.net has over 100 visitors a day looking for support and downloads. Franz joined the PostNuke team a year ago to help out with communication, but outside of his volunteer work provides both PostNuke related and other services.
Franky Chestnut [chestnut]
Franky Chestnut has been using PostNuke since the 0.6x series but got more involved in the 0.7x series. Along with pnConcept.com, his personal blog and development site, he is also the administrator of the official French website: PostNuke-France.org. In real life, Frank is working as a developer for a family-owned business creating software solutions for music publishers. He has been part of the Core Development Team since July 2004.
Anecdote : Although not even his real name, Franky added the "y" to the Frank because there was already too many Franks when he got hooked on PostNuke.
Robert Gasch [rgasch]
Robert has a Computer Science background and has been working on large-scale systems for more than 10 years. He considers himself a pragmatic open-source believer for both practical as well as philosophical reasons who brings with him tangible experience using 10+ programming languages on various platforms in a variety of settings.
Professionally, he has filled diverse roles ranging from being a Unix software engineer for a major RDBMS vendor to an ERP technical & performance specialist for a major ERP vendor to being lead-consultant on multi-million Dollars/Euros eBusiness enterprise implementations utilizing technologies such as Java and WebLogic/WebSphere. Robert has been working with PostNuke for almost 3 years and is the driving force behind the http://www.open-star.org development effort.
Joerg Napp [jn]
Jörg started with PostNuke 3 years ago when looking for a nice Content Management System. In the meantime he developed EZComments,the Title Hack and some other Hacks. He also adopted the Static_Docs module.
The PostNuke Steering Committee has initially identified 3 areas on which we will be focusing our attention.
PostNuke Site Redesign
The work on the new site is being pushed forward and has been given priority. We aim to finish this project as soon as possible, improving the usability and value of the website to both new and experienced users.
Communications
We will aim to post periodic updates on the project's progress to keep you more informed of the work behind the scenes, which is not always easily seen. Additionally, you can now contact the Steering Committee through the contact form on each PostNuke subsite to raise any specific queries you may have, though the forums should still be used where possible.
Development
Shortly an update on development towards .8 will be published giving an overview of the development progress so far and what
Generated on October 6, 2005.
-
pnSEO - Postnuke Search Engine Optimization: Strategies and Methods
(News)
-
is not right. When I was reading an article in postnuke forum, the term seo came up. That's the time I started working on pnSEO.
I implemented some strategies one Sat. morning at 9:00am and have a tour of Washington DC. When I came back at 11pm, the ranking jumped from page 13 to page 1. What a surprise!
The following are the strategy I developed for promoting CCUS. Hope it is helpful and useful.
Read this: http://www.google.com/webmasters/seo.html
2. Attitude: technique and marketing 20/80
Marketing is crucial to the success of your web site. pnSEO is part of marketing.
I would guess most people in pnCommunity will be like me: technical. Work on technical and enjoy to be technical. We may have spent 80% of our time on technical side. Setup the site, upgrade, add new functions, customization. Make the site look nice. But that's not the most important.
Do you have this experience: you work hours or days to add one module or add one function, or improve the interfaces, but no users are actually cared about it at all. This happened to me many times.
Before you start working on your web sites, think about effective and efficient. You are smart and hardworking, you maybe efficient, but are you working on the right thing (effective)?
Now 80% of the time should be spent on marketing. Start with pnSEO first.
3. Strategies
The following strategies are listed in the order of importance in my understanding.
SEO 1: SITEMAPS and Google Sitemaps.
This is the #1 strategy you should adopt. If you cannot do anything else, do this one.
It will overcome the shortcomings of CMS or dynamic sites such as Postnuke for search engines. It will let search engines to understand how your site is accessed by visitors.
"If your site has dynamic content or pages that aren't easily discovered by following links, you can use a Sitemap file to provide information about the pages on your site. This helps the spiders know what URLs are available on your site and about how often they change." -- google.com
1.1 Create sitemap using google sitemap generator.
. http://www.google.com/webmasters/sitemaps/docs/en/about.html
. Setup a schedule to resubmit your sitemap to google.
1.2 Use snakeseo to generate sitemap for Postnuke site.
SEO 2. use ShortURL and Remove session ID
Even yahoo.com is using short URLs. See http://news.yahoo.com/s/latimests/middleclassexilesstruggleforafoothold
2.1 Use shortURLs.
2.2 Enable Xnathia theme and enable shortURLs.
2.3 Remove session IDs from your postnuke site.
SEO 3. Title and Metadata
The page title weighs heavily in the algorithms of all the major search engines, so be prepared to spend some time on it.
Page title should be accurate, keywords-rich.
Do not include stop words (and, the, a etc.) in the title. That just wastes space.
Meta tags may not be important as before. However, some search engines still looks at meta tags.
3.1 use pnTitle to make page title relevant to the page content
3.2 use pnMeta
3.3 use Xanthia theme
SEO 4: Directory submission
4.1 Submit to ODP
4.2 Submit to Yahoo
4.3 Submit to other directory services
4.4 Submit to all kinds of search engines
SEO 5. Exchange links with top PR (page rankingweb sites. (LINK100)
5.1 use Web Links module as a repository for all external web links
5.2 Find similiar sites using keywords. We use 'Chinese Community'. ALso try using "Suggest a Link + your keywords"
5.3 Request the webmasters to include anchor text, title that reflect the keywords you are promoting
e.g. Chinese Community
instead of http://www.ChineseCommunity.us
SEO 6. Publish Blogs.
Expand the existence of your web sites in the world wide web. Let it appear in as many places as possible.
6.1 Yahoo - http://360.yahoo.com
6.2 Google - blogger.com
6.3 MSN - spaces.msn.com
6.4 CCUS - blog.chinesecommunity.us
SEO 7: RSS (feeds) submission
SEO 8. Write and Submit articles to many sites, forums, discussions.
Write down the techniques, tips, strategies, experience you have into articles. In your artciles, you can have some links to your web sites. Also your website and keywords as part of your profile.
8.1 postnuke.com. Get involved with pnCommunity. Contribute your knowledge, experience, thoughts to the growth of the community.
8.2 ezinearticles.com
SEO 9. Develop modules/utilities for others to use.
9.1 Join pnCommunity to contribute
9.2 Put your module and URL on their web sites.
SEO 10: Page design
Try to develop some common sense that will help search engines.
10.1 All web links inside have titles and appropriate anchor text
example: ChineseCommunity.us should be changed as
Chinese Community .us
Why? Title include some keywords I am promoting for Chinese Community.us. Anchor text has "Chinese Community" as keywords. Search engines are very sensitive to title text and anchor text.
10.2 All images should include descriptive, keyword-rich alt text.
Don't make it very long though.
e.g.
instead of
10.3 Internal links
1) Every page on your site should link to at least one other page.
2) Include anchor text and title text for your internal links. They should contain appropriate keywords you are promoting.
3) e.g.
go to <a href="http://www.chinesecommunity.us" title="Chinese Community">Chinese Personal
Generated on September 10, 2005.