<?xml version="1.0"?>

<rss xmlns:dc="http://purl.org/dc/elements/1.1/"
     version="2.0">
  
   <channel>
      <title>Welcome to Vasudevaservice.com</title>
      <link>http://www.vasudevaservice.com/blog</link>
      <description>The Vasudeva Service project develops open source applications for the Plone and Drupal content management system. Here is our recent blog about using and working with Plone, Zope, Python, Drupal, Wordpress, PHP and UNIX....</description>
      <generator>EasyBlog</generator>
   
       
              
         <item>         
            <title>Use cases for the JW Media Player</title>
            <link>http://www.vasudevaservice.com/blog/archive/2008/06/17/jw-media-player</link>
            <description>&lt;h3&gt;Playing an album list&lt;/h3&gt;

&lt;pre class="literal-block"&gt;

&amp;lt;embed
src="http://www.srichinmoy.tv/c_/player/mediaplayer.swf"
width="300" height="380"
allowscriptaccess="always"
allowfullscreen="true"
flashvars="height=380&amp;width=300&amp;displayheight=0&amp;showstop=true
&amp;showicons=false&amp;repeat=list&amp;backcolor=0xCCCCFF
&amp;frontcolor=0x000066&amp;lightcolor=0x3333FF&amp;screencolor=0x6666FF&amp;thumbsinplaylist=false
&amp;file=http://www.radiosrichinmoy.org/c_/audio/radio/102/playlist-102.xml"
&amp;gt;

&lt;/pre&gt;

gives you
&lt;br /&gt;
&lt;div align="center"&gt;
&lt;embed
src="http://www.srichinmoy.tv/c_/player/mediaplayer.swf"
width="300"
height="380"
allowscriptaccess="always"
allowfullscreen="true"
flashvars="height=380&amp;width=300&amp;displayheight=0&amp;showstop=true&amp;showicons=false&amp;repeat=list&amp;backcolor=0xCCCCFF&amp;frontcolor=0x000066&amp;lightcolor=0x3333FF&amp;screencolor=0x6666FF&amp;file=http://www.radiosrichinmoy.org/c_/audio/radio/102/playlist-102.xml&amp;thumbsinplaylist=false"
/&gt;&lt;/div&gt;

&lt;br /&gt;

&lt;p&gt;As you can see, the playlist is stored in the same filesystem location as the music files (&lt;a href="http://www.radiosrichinmoy.org/c_/audio/radio/102/playlist-102.xml"&gt;see sample playlist here&lt;/a&gt;). &lt;/p&gt;

&lt;p&gt;The flashvars set all the tweakable aspects - color, positioning ect. You can view all &lt;a href="http://www.jeroenwijering.com/?item=Supported_Flashvars"&gt;available flashvars&lt;/a&gt; here on Jeroen Wijering's site, and there is also a &lt;a href="http://www.jeroenwijering.com/?page=wizard"&gt;setup wizard&lt;/a&gt; where you can throw in various combinations and see how the code turns out&lt;/p&gt;
&lt;br /&gt;&lt;br /&gt;
&lt;h3&gt;Playing a video - with youtube-like recommendations!&lt;/h3&gt;



&lt;pre class="literal-block"&gt;

&amp;lt;embed
src="http://www.srichinmoy.tv/c_/player/mediaplayer.swf"
width="300"
height="220"
allowscriptaccess="always"
allowfullscreen="true"
flashvars="height=220&amp;width=300
&amp;file=http://www.srichinmoy.tv/c_/video/tv/260/260-1-2.mp4
&amp;showicons=false&amp;amp;image=http://www.srichinmoy.tv/images/tv/260-1.jpg
&amp;displayheight=200&amp;searchbar=false
&amp;recommendations=http://www.srichinmoy.tv/c_/player/recommendations/rec-lifevoices.xml"
/&amp;gt;
&lt;/pre&gt;

gives

&lt;br /&gt;
&lt;div align="center"&gt;
&lt;embed
src="http://www.srichinmoy.tv/c_/player/mediaplayer.swf"
width="300"
height="220"
allowscriptaccess="always"
allowfullscreen="true"
flashvars="height=220&amp;width=300&amp;file=http://www.srichinmoy.tv/c_/video/tv/260/260-1-2.mp4&amp;image=http://www.srichinmoy.tv/images/tv/260-1.jpg&amp;displayheight=200&amp;searchbar=false&amp;showicons=false&amp;recommendations=http://www.srichinmoy.tv/c_/player/recommendations/rec-lifevoices.xml"
/&gt;
&lt;/div&gt;
&lt;br /&gt;
&lt;p&gt;When the video is finished, a list of recommended videos are displayed. Just like the playlists above, the recommendations are also generated from an xml file (&lt;a href="http://www.srichinmoy.tv/c_/player/recommendations/rec-lifevoices.xml"&gt;see sample&lt;/a&gt;).&lt;/p&gt;

&lt;b&gt;Note:&lt;/b&gt;
&lt;ul&gt;&lt;li&gt;The front preview image and the recommendation images already exist on the site. The Flash Player allows them to be jpgs instead of having to convert to mp4&lt;/li&gt;

&lt;li&gt;Again, the colour of the controlbar at the bottom can be modified by playing with the flashvars&lt;/li&gt;

&lt;li&gt;The controlbar is on the bottom because we set the displayheight 20px less than the height. If they are the same there is a nicer effect where the controlbar is inline, but then it gets in the way of the recommendations if you want to include them&lt;/li&gt;


&lt;/ul&gt;
&lt;br /&gt;&lt;br /&gt;
&lt;h3&gt;Custom playlist from different albums&lt;/h3&gt;
&lt;br /&gt; 
&lt;pre class="literal-block"&gt;

&amp;lt;embed
src="http://www.srichinmoy.tv/c_/player/mediaplayer.swf"
width="300" height="200"
allowscriptaccess="always"
allowfullscreen="true"
flashvars="height=200&amp;width=300&amp;displayheight=0&amp;showstop=true
&amp;showicons=false&amp;repeat=list&amp;backcolor=0xCCCCFF
&amp;frontcolor=0x000066&amp;lightcolor=0x3333FF&amp;screencolor=0x6666FF&amp;thumbsinplaylist=true
&amp;file=http://www.radiosrichinmoy.org/c_/audio/custom_playlists/playlist1.xml"
&amp;gt;

&lt;/pre&gt;

gives you
&lt;br /&gt;
&lt;div align="center"&gt;
&lt;embed
src="http://www.srichinmoy.tv/c_/player/mediaplayer.swf"
width="300"
height="200"
allowscriptaccess="always"
allowfullscreen="true"
flashvars="height=200&amp;width=300&amp;displayheight=0&amp;showstop=true&amp;showicons=false&amp;repeat=list&amp;backcolor=0xCCCCFF&amp;frontcolor=0x000066&amp;lightcolor=0x3333FF&amp;screencolor=0x6666FF&amp;file=http://www.radiosrichinmoy.org/c_/audio/custom_playlists/playlist1.xml&amp;thumbsinplaylist=true"
/&gt;&lt;/div&gt;

&lt;p&gt;Here is the link to &lt;a href="http://www.radiosrichinmoy.org/c_/audio/custom_playlists/playlist1.xml"&gt;this playlist&lt;/a&gt; - note how we now have a 'creator' and 'album' tag added. We have also switched the thumbsinplaylist flashvar to true to include creator&lt;/p&gt;&lt;br /&gt;

&lt;br /&gt;&lt;br /&gt;
&lt;h3&gt;Custom TV playlist&lt;/h3&gt;
&lt;br /&gt; 
&lt;pre class="literal-block"&gt;

&amp;lt;embed
src="http://www.srichinmoy.tv/c_/player/mediaplayer.swf"
width="300" height="400"
allowscriptaccess="always"
allowfullscreen="true"
flashvars="height=400&amp;width=300&amp;displayheight=200&amp;showstop=true
&amp;showicons=true&amp;repeat=list&amp;backcolor=0xCCCCFF
&amp;frontcolor=0x000066&amp;lightcolor=0x3333FF&amp;screencolor=0x6666FF&amp;thumbsinplaylist=true
&amp;file=http://www.srichinmoy.tv/c_/custom_playlists/playlist1.xml"
&amp;gt;

&lt;/pre&gt;

gives you
&lt;br /&gt;
&lt;div align="center"&gt;
&lt;embed
src="http://www.srichinmoy.tv/c_/player/mediaplayer.swf"
width="300"
height="400"
allowscriptaccess="always"
allowfullscreen="true"
flashvars="height=400&amp;width=300&amp;displayheight=200&amp;showstop=true&amp;showicons=true&amp;repeat=list&amp;backcolor=0xCCCCFF&amp;frontcolor=0x000066&amp;lightcolor=0x3333FF&amp;screencolor=0x6666FF&amp;file=http://www.srichinmoy.tv/c_/custom_playlists/playlist1.xml&amp;thumbsinplaylist=true"
/&gt;&lt;/div&gt;

&lt;p&gt;Here is the link to &lt;a href="http://www.srichinmoy.tv/c_/custom_playlists/playlist1.xml"&gt;this playlist&lt;/a&gt; - the 'image tag allows images to be displayed in listing, I just used images already on site.&lt;/p&gt;&lt;br /&gt;

&lt;br /&gt;
&lt;p&gt;Thanks to &lt;a href="http://www.jeroenwijering.com"&gt;Jeroen Wijering&lt;/a&gt; for creating such a great player&lt;/p&gt;</description>
            <pubDate>Tue, 17 Jun 2008 05:15:44 </pubDate>
            <guid>http://www.vasudevaservice.com/blog/archive/2008/06/17/jw-media-player</guid>
            <dc:creator>Shane Magee</dc:creator>
            
              <category>documentation</category>
                          
            
         </item>
      
       
              
         <item>         
            <title>Meditation for Tech Guys</title>
            <link>http://www.vasudevaservice.com/blog/archive/2008/06/15/meditation-for-tech-guys</link>
            <description>&lt;div class="float-centre figure"&gt;
&lt;img alt="med" src="/crew/geeek_meditation_session.jpg" /&gt;
&lt;p class="caption"&gt;Meditation for Techies.&lt;/p&gt;
&lt;/div&gt;
</description>
            <pubDate>Sun, 15 Jun 2008 17:44:23 </pubDate>
            <guid>http://www.vasudevaservice.com/blog/archive/2008/06/15/meditation-for-tech-guys</guid>
            <dc:creator>Tejvan Pettinger</dc:creator>
            
              <category>general</category>
                          
            
         </item>
      
       
              
         <item>         
            <title>Google Analytics</title>
            <link>http://www.vasudevaservice.com/blog/archive/2008/04/27/google-analytics</link>
            <description>&lt;p&gt;There are many statistics programmes which track web visitors. Google analytics is one of the best free statistics programmes.&lt;/p&gt;
&lt;div class="section" id="to-add-google-analytics"&gt;
&lt;h3&gt;To add Google analytics&lt;/h3&gt;
&lt;ol class="arabic simple"&gt;
&lt;li&gt;Visit &lt;a class="reference" href="https://www.google.com/analytics/"&gt;Google analytics&lt;/a&gt; - you will be instructed to get a google account.&lt;/li&gt;
&lt;li&gt;Add your site and then add the code they give you into your web pages.&lt;/li&gt;
&lt;/ol&gt;
&lt;div class="line-block"&gt;
&lt;div class="line"&gt;&lt;br /&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;&lt;strong&gt;Blogger Template.&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;If you have a blogger (blogspot.domain). You would edit the blogger template and add the code.&lt;/p&gt;
&lt;/div&gt;
</description>
            <pubDate>Sun, 27 Apr 2008 16:49:16 </pubDate>
            <guid>http://www.vasudevaservice.com/blog/archive/2008/04/27/google-analytics</guid>
            <dc:creator>Tejvan Pettinger</dc:creator>
            
              <category>blogging</category>
                          
            
         </item>
      
       
              
         <item>         
            <title>Embedding Quicktime videos with preview picture</title>
            <link>http://www.vasudevaservice.com/blog/archive/2008/04/21/embedding-quicktime-videos-with-preview-picture</link>
            <description>&lt;p&gt;To embed a quicktime video, use the following code:&lt;/p&gt;
&lt;pre class="literal-block"&gt;
&amp;lt;object width=&amp;quot;400&amp;quot; height=&amp;quot;274&amp;quot;&amp;gt;
&amp;lt;embed src=&amp;quot;video.mp4&amp;quot; type=&amp;quot;application/quicktime&amp;quot;
  wmode=&amp;quot;transparent&amp;quot; width=&amp;quot;400&amp;quot; height=&amp;quot;274&amp;quot; autoplay=&amp;quot;true&amp;quot;&amp;gt;
&amp;lt;/embed&amp;gt;&amp;lt;/object&amp;gt;
&lt;/pre&gt;
&lt;p&gt;The &lt;em&gt;autoplay&lt;/em&gt; argument determines whether the video plays or not immediately the page is loaded.&lt;/p&gt;
&lt;p&gt;There are also other arguments you can add just like autoplay:&lt;/p&gt;
&lt;ul class="simple"&gt;
&lt;li&gt;loop=&amp;quot;true&amp;quot;/&amp;quot;false&amp;quot;— the movie plays once or continuously.&lt;/li&gt;
&lt;li&gt;controller=&amp;quot;true&amp;quot;/&amp;quot;false&amp;quot; — toggles the playback controls e.g. pause, fast forward, or mute.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;The full range of options are available on the Apple Quicktime site:&lt;/p&gt;
&lt;p&gt;&lt;a class="reference" href="http://www.apple.com/quicktime/tutorials/embed2.html"&gt;http://www.apple.com/quicktime/tutorials/embed2.html&lt;/a&gt;&lt;/p&gt;
&lt;div class="line-block"&gt;
&lt;div class="line"&gt;&lt;br /&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;div class="section" id="preview-picture"&gt;
&lt;h3&gt;Preview Picture&lt;/h3&gt;
&lt;div class="line-block"&gt;
&lt;div class="line"&gt;&lt;br /&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;With the above, what you get is basically a black box with a grey control bar below. Perhaps you would like to have a preview picture that loads the film when it is clicked on, just like Youtube embeds&lt;/p&gt;
&lt;p&gt;The first thing you need to do is create the picture to be the same size as the video + 16px height to allow for the controllers. If you don't do this the image gets squeezed/expanded to fit the video screen.&lt;/p&gt;
&lt;p&gt;Then you need to save your image as something quicktime can deal with (eg .mp4). For this you need Quicktime Pro (costs $30) or for Mac you can use QTAmateur, available here:&lt;/p&gt;
&lt;p&gt;&lt;a class="reference" href="http://www.mikeash.com/?page=software/qtamateur/index.html"&gt;http://www.mikeash.com/?page=software/qtamateur/index.html&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Open up your image with either of these and then click &lt;em&gt;File -&amp;gt; Export&lt;/em&gt;, and save to MPEG-4 (mp4), I think .mov also works&lt;/p&gt;
&lt;p&gt;You can then use this code to embed&lt;/p&gt;
&lt;pre class="literal-block"&gt;
 &amp;lt;object width=&amp;quot;400&amp;quot; height=&amp;quot;274&amp;quot;&amp;gt;
&amp;lt;embed src=&amp;quot;images/preview_image.mp4&amp;quot; href=&amp;quot;video.mp4&amp;quot; target=&amp;quot;myself&amp;quot;
  type=&amp;quot;application/quicktime&amp;quot; wmode=&amp;quot;transparent&amp;quot; width=&amp;quot;400&amp;quot; height=&amp;quot;274&amp;quot;
  autoplay=&amp;quot;false&amp;quot;&amp;gt;&amp;lt;/embed&amp;gt;&amp;lt;/object&amp;gt;
&lt;/pre&gt;
&lt;p&gt;where preview_image.mp4 is your created image and video.mp4 is your video&lt;/p&gt;
&lt;/div&gt;
</description>
            <pubDate>Mon, 21 Apr 2008 15:47:08 </pubDate>
            <guid>http://www.vasudevaservice.com/blog/archive/2008/04/21/embedding-quicktime-videos-with-preview-picture</guid>
            <dc:creator>Shane Magee</dc:creator>
            
              <category>documentation</category>
                          
            
         </item>
      
       
              
         <item>         
            <title>How To Set up A Blogger Blog</title>
            <link>http://www.vasudevaservice.com/blog/archive/2008/01/28/how-to-set-up-a-blogger-blog</link>
            <description>&lt;p&gt;It is fairly straightforward to set up a blogger blog. Just follow the instructions at:&lt;/p&gt;
&lt;p&gt;&lt;a class="reference" href="http://www.blogger.com/home"&gt;http://www.blogger.com/home&lt;/a&gt;&lt;/p&gt;
&lt;ol class="arabic simple"&gt;
&lt;li&gt;You will need to Create a google Account&lt;/li&gt;
&lt;li&gt;Then click on Create Blog.&lt;/li&gt;
&lt;li&gt;Give it a Title and choose domain e.g.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;Title: &amp;quot;How to Grow Potatoes&amp;quot;
Blog URL: howtogrowpotatoes.blogspot.com&lt;/p&gt;
&lt;ol class="arabic simple" start="4"&gt;
&lt;li&gt;Choose A Theme.&lt;/li&gt;
&lt;li&gt;Your blog is created! &lt;a class="reference" href="http://www.howtogrowpotatoes.blogspot.com"&gt;http://www.howtogrowpotatoes.blogspot.com&lt;/a&gt;&lt;/li&gt;
&lt;/ol&gt;
&lt;div class="line-block"&gt;
&lt;div class="line"&gt;&lt;br /&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;div class="section" id="to-use-your-own-domain-name"&gt;
&lt;h3&gt;To Use Your Own Domain Name&lt;/h3&gt;
&lt;p&gt;If you would prefer to have www.howtogrowpotatoes.com rather than &lt;a class="reference" href="http://www.howtogrowpotatoes.blogspot.com"&gt;http://www.howtogrowpotatoes.blogspot.com&lt;/a&gt; You need a few extra steps.&lt;/p&gt;
&lt;ol class="arabic simple"&gt;
&lt;li&gt;Click on Settings.&lt;/li&gt;
&lt;li&gt;Click on Publishing&lt;/li&gt;
&lt;li&gt;Click on Switch to Custom Domain&lt;/li&gt;
&lt;li&gt;Buy A Domain with Google. They will then switch your blog to your new domain name.&lt;/li&gt;
&lt;/ol&gt;
&lt;div class="line-block"&gt;
&lt;div class="line"&gt;&lt;br /&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;ul class="simple"&gt;
&lt;li&gt;You can do this at any stage, google will automatically redirect your old .blogspot domain&lt;/li&gt;
&lt;li&gt;You can buy a domain name elsewhere, but you will need to switch cmod or something like that. That starts to get a little more complicated.&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;
</description>
            <pubDate>Mon, 28 Jan 2008 15:07:50 </pubDate>
            <guid>http://www.vasudevaservice.com/blog/archive/2008/01/28/how-to-set-up-a-blogger-blog</guid>
            <dc:creator>Tejvan Pettinger</dc:creator>
            
              <category>blogging</category>
                          
            
         </item>
      
       
              
         <item>         
            <title>The fifth maintenance release of Plone 3.0 is out</title>
            <link>http://www.vasudevaservice.com/blog/archive/2008/01/13/the-fifth-maintenance-release-of-plone-3-0-is-out</link>
            <description>&lt;p&gt;Plone 3.0.5 came out on January 7, 2008.&lt;/p&gt;
&lt;p&gt;&lt;a class="reference" href="http://plone.org/products/plone/releases/3.0.5"&gt;Full release announcement&lt;/a&gt;&lt;/p&gt;
</description>
            <pubDate>Sun, 13 Jan 2008 11:57:06 </pubDate>
            <guid>http://www.vasudevaservice.com/blog/archive/2008/01/13/the-fifth-maintenance-release-of-plone-3-0-is-out</guid>
            <dc:creator>Priyadarshan Bontempi</dc:creator>
            
              <category>general</category>
            
            
              <category>plone</category>
                          
            
         </item>
      
       
              
         <item>         
            <title>Keeping More Visitors</title>
            <link>http://www.vasudevaservice.com/blog/archive/2008/01/05/keeping-more-visitors</link>
            <description>&lt;p&gt;I watched a fascinating video about how to keep visitors on your site for longer.&lt;/p&gt;
&lt;p&gt;One thing that stood out is that web viewers get confused and bored with reading long lists. If you have a navigation bar with many items, people can't be bothered to read through it, so they leave the site.&lt;/p&gt;
&lt;p&gt;If you make the navigation bar shorter, they are 25% more likely to click on something.&lt;/p&gt;
&lt;p&gt;The optimal number of text blocks is 5-7.&lt;/p&gt;
&lt;p&gt;This is a problem if you use Plone navigation bars - they can become very long and unwieldly&lt;/p&gt;
&lt;p&gt;Compare these 2 examples of a navigation bar at Sri Chinmoy Poetry&lt;/p&gt;
&lt;ul class="simple"&gt;
&lt;li&gt;&lt;a class="reference" href="http://www.srichinmoypoetry.com/selected_poems/poems_happiness"&gt;Poems on Happiness&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a class="reference" href="http://www.srichinmoypoetry.com/selected_poems/poems_faith"&gt;Poems on Faith&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Hopefully, you will find the navigation bar for happiness makes it easier for the eye to choose a page.&lt;/p&gt;
&lt;p&gt;This fits neatly in with the principles of &lt;a class="reference" href="http://www.vasudevaservice.com/documentation/dont_make_me_think/"&gt;Don't Make Me Think&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;BTW, I like the principles of:  &lt;a class="reference" href="http://www.useit.com/"&gt;USEit.com&lt;/a&gt;&lt;/p&gt;
</description>
            <pubDate>Sat, 05 Jan 2008 11:06:20 </pubDate>
            <guid>http://www.vasudevaservice.com/blog/archive/2008/01/05/keeping-more-visitors</guid>
            <dc:creator>Tejvan Pettinger</dc:creator>
            
              <category>blogging</category>
                          
            
         </item>
      
       
              
         <item>         
            <title>Having paged comments in Wordpress</title>
            <link>http://www.vasudevaservice.com/blog/archive/2007/11/07/having-paged-comments-in-wordpress</link>
            <description>&lt;p&gt;If you have a very popular blog it might be worth dividing your comments into pages for easier viewing. Fortunately there is a Wordpress plugin called &lt;a class="reference" href="http://www.keyvan.net/code/paged-comments"&gt;Paged Comments&lt;/a&gt; to do just that, thanks to Keyvan Minoukadeh. However it needs a bit of tweaking to work on your site.&lt;/p&gt;
&lt;div class="section" id="installing-and-configuring"&gt;
&lt;h3&gt;Installing and configuring&lt;/h3&gt;
&lt;ul class="simple"&gt;
&lt;li&gt;&lt;a class="reference" href="http://www.keyvan.net/files/paged-comments/paged-comments-2.6.4-(2007-07-31).zip"&gt;Download&lt;/a&gt; and extract plugin files to a folder locally.&lt;/li&gt;
&lt;li&gt;You can change the number of posts per page and some other useful settings by editing the &lt;em&gt;paged-comments-config-sample.php&lt;/em&gt; file (its all fairly well explained in the file), then save the file as &lt;em&gt;paged-comments-config.php.&lt;/em&gt;&lt;/li&gt;
&lt;li&gt;Upload the whole paged-comments directory to &lt;em&gt;/wp-content/plugins/&lt;/em&gt; and enable the plugin through the WordPress admin interface.&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;
&lt;div class="section" id="template-hacking-yuck"&gt;
&lt;h3&gt;Template hacking (yuck)&lt;/h3&gt;
&lt;ul class="simple"&gt;
&lt;li&gt;We need to include the comment 'pager' in our template. If you are using a common theme, it might already be taken care of: just go to &lt;em&gt;/wp-content/plugins/paged-comments/themes&lt;/em&gt;, open your theme folder, and then copy the &lt;em&gt;comments-paged.php&lt;/em&gt; file there into your theme folder at &lt;em&gt;/wp-content/themes&lt;/em&gt;&lt;/li&gt;
&lt;li&gt;If you are not using any of the themes listed in &lt;em&gt;/wp-content/plugins/paged-comments/themes&lt;/em&gt; then go to your theme and copy the &lt;em&gt;comments.php&lt;/em&gt; file to &lt;em&gt;comments-paged.php&lt;/em&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;We will then modify the &lt;em&gt;comments-paged.php&lt;/em&gt; as follows:&lt;/p&gt;
&lt;p&gt;In the code at the start&lt;/p&gt;
&lt;pre class="literal-block"&gt;
&amp;lt;?php // Do not delete these lines
    if ('comments.php' == basename($_SERVER['SCRIPT_FILENAME']))
        die ('Please do not load this page directly. Thanks!');
&lt;/pre&gt;
&lt;p&gt;change &lt;em&gt;comments.php&lt;/em&gt; to &lt;em&gt;comments-paged.php&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;To add the pager, place this code&lt;/p&gt;
&lt;pre class="literal-block"&gt;
  &amp;lt;!-- Comment page numbers --&amp;gt;
&amp;lt;?php if ($paged_comments-&amp;gt;pager-&amp;gt;num_pages() &amp;gt; 1): ?&amp;gt;
 &amp;lt;p class=&amp;quot;comment-page-numbers&amp;quot;&amp;gt;&amp;lt;?php _e(&amp;quot;Pages:&amp;quot;); ?&amp;gt; &amp;lt;?php paged_comments_print_pages(); ?&amp;gt;&amp;lt;/p&amp;gt;
 &amp;lt;?php endif; ?&amp;gt;
 &amp;lt;!-- End comment page numbers --&amp;gt;
&lt;/pre&gt;
&lt;p&gt;before the &amp;lt;ol class=&amp;quot;commentlist&amp;quot;&amp;gt; line and again after the &amp;lt;/ol&amp;gt; marking the end of it&lt;/p&gt;
&lt;p&gt;If you want to make comment number visible on the blog, add this line of code&lt;/p&gt;
&lt;pre class="literal-block"&gt;
&amp;lt;div class=&amp;quot;comment-number&amp;quot;&amp;gt;&amp;lt;?php echo $comment_number; $comment_number += $comment_delta;?&amp;gt;&amp;lt;/div&amp;gt;
&lt;/pre&gt;
&lt;p&gt;You can add it anywhere between &lt;em&gt;&amp;lt;?php foreach ($comments as $comment) : ?&amp;gt;&lt;/em&gt; and &lt;em&gt;&amp;lt;?php endforeach; /&lt;/em&gt; end for each comment &lt;em&gt;/ ?&amp;gt;&lt;/em&gt;, but the best place is probably before the author name &lt;em&gt;(&amp;lt;cite&amp;gt;&amp;lt;?php comment_author_link() ?&amp;gt;&amp;lt;/cite&amp;gt;)&lt;/em&gt;. In practice, this hasn't worked too well for me, so use with caution.&lt;/p&gt;
&lt;/div&gt;
</description>
            <pubDate>Wed, 07 Nov 2007 11:01:51 </pubDate>
            <guid>http://www.vasudevaservice.com/blog/archive/2007/11/07/having-paged-comments-in-wordpress</guid>
            <dc:creator>Shane Magee</dc:creator>
            
              <category>blogging</category>
                          
            
         </item>
      
       
              
         <item>         
            <title>Customising wordpress templates</title>
            <link>http://www.vasudevaservice.com/blog/archive/2007/10/23/customising-wordpress-templates</link>
            <description>&lt;p&gt;Here are a few nice things to add to your wordpress template in case it doesnt have them. The important templates to modify are index.php (the full blog view), single.php (shows single posts) and comments.php (for comments)&lt;/p&gt;
&lt;div class="section" id="show-author-and-date"&gt;
&lt;h3&gt;Show author and date&lt;/h3&gt;
&lt;p&gt;Adding the following :&lt;/p&gt;
&lt;pre class="literal-block"&gt;
&amp;lt;p&amp;gt;Posted by &amp;lt;?php the_author(); ?&amp;gt; on &amp;lt;?php the_date('F j, Y'); ?&amp;gt; at &amp;lt;?php the_time('g:i a'); ?&amp;gt;
&amp;lt;/p&amp;gt;
&lt;/pre&gt;
&lt;p&gt;will give something like&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Posted by Tejvan Pettinger on October 12, 2007 at 7:35 am&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;The arguments for the the_date and the_time functions tell you what format the date and time is in, you can read a full list of them &lt;a class="reference" href="http://codex.wordpress.org/Formatting_Date_and_Time"&gt;here...&lt;/a&gt;&lt;/p&gt;
&lt;div class="line-block"&gt;
&lt;div class="line"&gt;&lt;br /&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div class="section" id="show-category"&gt;
&lt;h3&gt;Show category&lt;/h3&gt;
&lt;pre class="literal-block"&gt;
&amp;lt;?php the_category(' , '); ?&amp;gt;
&lt;/pre&gt;
&lt;p&gt;shows the category; the comma in the brackets tells you what separates the categories if there are more than one of them.&lt;/p&gt;
&lt;div class="line-block"&gt;
&lt;div class="line"&gt;&lt;br /&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div class="section" id="edit-post-link"&gt;
&lt;h3&gt;Edit post link&lt;/h3&gt;
&lt;p&gt;Very handy to be able to edit posts from the actual post itself:&lt;/p&gt;
&lt;pre class="literal-block"&gt;
&amp;lt;?php edit_post_link(__(' Edit this post')); ?&amp;gt;
&lt;/pre&gt;
&lt;p&gt;The stuff between the apostrophes is the wording of the link&lt;/p&gt;
&lt;/div&gt;
</description>
            <pubDate>Tue, 23 Oct 2007 04:06:03 </pubDate>
            <guid>http://www.vasudevaservice.com/blog/archive/2007/10/23/customising-wordpress-templates</guid>
            <dc:creator>Shane Magee</dc:creator>
            
              <category>blogging</category>
                          
            
         </item>
      
       
              
         <item>         
            <title>Migrating Blogger blogs to Wordpress, and setting up 301 redirects to ensure no links are broken</title>
            <link>http://www.vasudevaservice.com/blog/archive/2007/09/07/migrating-blogger-blogs-to-wordpress-and-setting-up-301-redirects-to-ensure-no-links-are-broken</link>
            <description>&lt;ol class="arabic simple"&gt;
&lt;li&gt;Ok, basically if your blog is a new Blogger blog (after it was acquited by Google and Google usernames introduced) first step is to be sure have Wordpress 2.2.&lt;/li&gt;
&lt;/ol&gt;
&lt;blockquote&gt;
&lt;p&gt;If you have an old version of WP, you can always upgrade:&lt;/p&gt;
&lt;p&gt;&lt;a class="reference" href="http://codex.wordpress.org/Upgrading_WordPress_Extended"&gt;http://codex.wordpress.org/Upgrading_WordPress_Extended&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Wordpress 2.1 allows you to upgrade from Old Blogger blogs, but not New ones.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;ol class="arabic simple" start="2"&gt;
&lt;li&gt;If your Blogger blog is hosted via FTP, go into the settings of the blogger blog and turn it into a blogspot blog (this change is reversible if anything goes wrong). Your blogger blog url will now be at &lt;em&gt;(some name you choose).blogspot.com&lt;/em&gt;&lt;/li&gt;
&lt;li&gt;Go to your blog admin on your WP blog. Go to &lt;em&gt;Manage -&amp;gt; Import&lt;/em&gt; and select the 'New Blogger' option. You will be asked for your blogspot url, blogger username and password. And hey presto, the job is done! (You might want to verify that before we go on)&lt;/li&gt;
&lt;/ol&gt;
&lt;blockquote&gt;
&lt;p&gt;Some recent users may have trouble signing into their Google account from Wordpress due to the fact that Blogger changed their hostname API:&lt;/p&gt;
&lt;p&gt;&lt;a class="reference" href="http://wordpress.org/support/topic/131952?replies=2"&gt;http://wordpress.org/support/topic/131952?replies=2&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;As you can see here, you just need to make a simple change in &lt;em&gt;wp-admin/import/blogger.php&lt;/em&gt; file, changing www2.blogger.com in line 84 to www.blogger.com. This will be automatically fixed in Wordpress 2.3.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;ol class="arabic simple" start="4"&gt;
&lt;li&gt;Ok, here is the time consuming job, setting up redirects from the old posts to the new, so that if someone clicks on a link to the old address they are automatically forwarded. Make sure you first are happy with the  permalink structure on your WP blog (Go to &lt;em&gt;Options -&amp;gt; Permalinks&lt;/em&gt; to change this)&lt;/li&gt;
&lt;/ol&gt;
&lt;blockquote&gt;
&lt;blockquote&gt;
&lt;p&gt;Now open up some text editor to write the redirects. Suppose your old blogger blog was at&lt;/p&gt;
&lt;pre class="literal-block"&gt;
http://www.mysite.com/{old address}
&lt;/pre&gt;
&lt;p&gt;and your new WP address is at&lt;/p&gt;
&lt;pre class="literal-block"&gt;
http://www.mysite.com/{new address}
&lt;/pre&gt;
&lt;p&gt;basically all you do is type&lt;/p&gt;
&lt;pre class="literal-block"&gt;
redirect 301 /{old address} http://www.mysite.com/{new address}
&lt;/pre&gt;
&lt;p&gt;301 is basically a code that tells Google that the item has permanently moved to the new address and you aren't trying to pull any funny stuff on them. For each entry, type in the proper 301 redirect on a separate line. You can still get the old url address by looking at the blogspot blog.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;You need to type in the full URL of the new address. Why? Basically, it allows you to redirect your posts to entries on a completely different site if you so choose!&lt;/p&gt;
&lt;p&gt;Now you need to use an FTP client to go into the filesystem of where you host your blog. At root there should be a file called .htaccess; if not, create one (all files with . in front are system files and might be hidden unless you tell your FTP client to show hidden files). Then just copy and paste your redirects into this file, save, and try it out by typing in an old blogger address&lt;/p&gt;
&lt;/blockquote&gt;
&lt;ol class="arabic simple" start="5"&gt;
&lt;li&gt;I've heard (although i don't know the logic behind it) that its good to keep the FTP site going for a couple of days. So go to your Blogger blog and move it back to ftp, and then delete it after a few days.&lt;/li&gt;
&lt;/ol&gt;
</description>
            <pubDate>Fri, 07 Sep 2007 13:36:28 </pubDate>
            <guid>http://www.vasudevaservice.com/blog/archive/2007/09/07/migrating-blogger-blogs-to-wordpress-and-setting-up-301-redirects-to-ensure-no-links-are-broken</guid>
            <dc:creator>Shane Magee</dc:creator>
            
              <category>blogging</category>
            
            
              <category>documentation</category>
                          
            
         </item>
      
       
              
         <item>         
            <title>vsCore, vsPloneLibrary, vsPloneSongs projects listed on ohloh.net</title>
            <link>http://www.vasudevaservice.com/blog/archive/2007/07/19/vscore-vsplonelibrary-vsplonesongs-projects-listed-on-ohloh.net</link>
            <description>&lt;!-- -*- mode: rst -*- --&gt;
&lt;p&gt;Our vsCore, vsPloneLibrary and vsPloneSongs, have been listed on &lt;a class="reference" href="http://www.ohloh.net"&gt;http://www.ohloh.net&lt;/a&gt;.&lt;/p&gt;
&lt;div class="section" id="vscore"&gt;
&lt;h3&gt;vsCore&lt;/h3&gt;
&lt;ul class="simple"&gt;
&lt;li&gt;Home:     &lt;a class="reference" href="http://www.vasudevaservice.com/products/vscore/"&gt;http://www.vasudevaservice.com/products/vscore/&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Download: &lt;a class="reference" href="http://www.vasudevaservice.com/products/vscore/download"&gt;http://www.vasudevaservice.com/products/vscore/download&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;pre class="literal-block"&gt;
Project: &lt;a class="reference" href="http://www.ohloh.net/projects/6714"&gt;http://www.ohloh.net/projects/6714&lt;/a&gt;
Commits: &lt;a class="reference" href="http://www.ohloh.net/projects/6714/commits"&gt;http://www.ohloh.net/projects/6714/commits&lt;/a&gt;
Individual commits: &lt;a class="reference" href="http://www.ohloh.net/projects/6714/contributors"&gt;http://www.ohloh.net/projects/6714/contributors&lt;/a&gt;
&lt;/pre&gt;
&lt;/div&gt;
&lt;div class="section" id="vsplonelibrary"&gt;
&lt;h3&gt;vsPloneLibrary&lt;/h3&gt;
&lt;ul class="simple"&gt;
&lt;li&gt;Home:     &lt;a class="reference" href="http://www.vasudevaservice.com/products/vsplonelibrary"&gt;http://www.vasudevaservice.com/products/vsplonelibrary&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Download: Download page is missing&lt;/li&gt;
&lt;/ul&gt;
&lt;pre class="literal-block"&gt;
Project: &lt;a class="reference" href="http://www.ohloh.net/projects/6714"&gt;http://www.ohloh.net/projects/6714&lt;/a&gt;
Commits: &lt;a class="reference" href="http://www.ohloh.net/projects/6717/commits"&gt;http://www.ohloh.net/projects/6717/commits&lt;/a&gt;
Individual commits: &lt;a class="reference" href="http://www.ohloh.net/projects/6717/contributors"&gt;http://www.ohloh.net/projects/6717/contributors&lt;/a&gt;
&lt;/pre&gt;
&lt;/div&gt;
&lt;div class="section" id="vsplonesongs"&gt;
&lt;h3&gt;vsPloneSongs&lt;/h3&gt;
&lt;ul class="simple"&gt;
&lt;li&gt;Home:     This project doesn't have a home page.&lt;/li&gt;
&lt;li&gt;Download: Download page is missing&lt;/li&gt;
&lt;/ul&gt;
&lt;pre class="literal-block"&gt;
Project: &lt;a class="reference" href="http://www.ohloh.net/projects/6718"&gt;http://www.ohloh.net/projects/6718&lt;/a&gt;
Commits: &lt;a class="reference" href="http://www.ohloh.net/projects/6718/commits"&gt;http://www.ohloh.net/projects/6718/commits&lt;/a&gt;
Individual commits: &lt;a class="reference" href="http://www.ohloh.net/projects/6718/contributors"&gt;http://www.ohloh.net/projects/6718/contributors&lt;/a&gt;
&lt;/pre&gt;
&lt;p&gt;It even rates two of them as &amp;quot;Extremely well-commented source code&amp;quot; :D&lt;/p&gt;
&lt;/div&gt;
</description>
            <pubDate>Thu, 19 Jul 2007 05:26:20 </pubDate>
            <guid>http://www.vasudevaservice.com/blog/archive/2007/07/19/vscore-vsplonelibrary-vsplonesongs-projects-listed-on-ohloh.net</guid>
            <dc:creator>Priyadarshan Bontempi</dc:creator>
            
              <category>plone</category>
                          
            
         </item>
      
       
              
         <item>         
            <title>Programs to help you build your website from scratch</title>
            <link>http://www.vasudevaservice.com/blog/archive/2007/04/27/programs-to-help-you-build-your-website-from-scratch</link>
            <description>&lt;p&gt;This is actually an email response I sent to a friend who was asking about this sort of thing. It kind of complements &lt;a class="reference" href="/blog/archive/2007/04/21/html-editors"&gt;Richard's blog post&lt;/a&gt; below.&lt;/p&gt;
&lt;hr class="docutils" /&gt;
&lt;p&gt;There are a number of programs out there to make the life of people designing websites much easier. Choosing the right one depends on what kind of website you want - so you need to ak yourself the following questions:&lt;/p&gt;
&lt;p&gt;1. Are you designing a completely new site, or are you putting a new
design to an already existing site?&lt;/p&gt;
&lt;p&gt;2. Is your site big (greater than 30 pages) or small (less than 30
pages)&lt;/p&gt;
&lt;p&gt;3. Do you see the site as a project that will take a finite amount of
time (15-20 pages and then stop) or will it be an ongoing project and
pages will be added as time goes on?&lt;/p&gt;
&lt;p&gt;For small, finite sites we recommend using a very easy to use design program called Dreamweaver, which is expensive. There are also free equivalents of Dreamweaver which Richard mentioned in his blog post.&lt;/p&gt;
&lt;p&gt;However, these programs can be a little inefficient if you want to add
lots and lots of content very quickly - there are specialised programs called Content Management Systems that handle this much better - for
example the &lt;a class="reference" href="http://plone.org"&gt;Plone&lt;/a&gt; program used to manage content on this very site (there are also other programs like &lt;a class="reference" href="http://wordpress.org"&gt;Wordpress&lt;/a&gt; (used primarily for personal sites and blogs), &lt;a class="reference" href="http://www.alfresco.com"&gt;Alfresco&lt;/a&gt; and &lt;a class="reference" href="http://drupal.org"&gt;Drupal&lt;/a&gt;. The only problem is sites using Content Management Systems often start out looking not quite the way you envisioned them (and perhaps even a little ugly). With some technical expertise you can also make these sites as beautiful as Dreamwaever sites, but it will take longer to learn, especially if the people you have in mind to work on the project have no computer experience.&lt;/p&gt;
</description>
            <pubDate>Thu, 26 Apr 2007 12:45:29 </pubDate>
            <guid>http://www.vasudevaservice.com/blog/archive/2007/04/27/programs-to-help-you-build-your-website-from-scratch</guid>
            <dc:creator>Shane Magee</dc:creator>
            
              <category>design</category>
            
            
              <category>websites</category>
                          
            
         </item>
      
       
              
         <item>         
            <title>Evaluation of Blogger Software</title>
            <link>http://www.vasudevaservice.com/blog/archive/2007/04/26/evaluation-of-blogger-software</link>
            <description>&lt;p&gt;If you are looking for a blog for your website, or just want a blog, the 2 most popular choices are:
Wordpress and &lt;a class="reference" href="http://www2.blogger.com/home"&gt;Blogger&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Advantages of Blogger&lt;/strong&gt;&lt;/p&gt;
&lt;ul class="simple"&gt;
&lt;li&gt;Owned by Google; the biggest blog software, and it is Free&lt;/li&gt;
&lt;li&gt;Easy to install and add to your exiting website. At &lt;a class="reference" href="http://www2.blogger.com/create-blog.g"&gt;Blog set up&lt;/a&gt; choose - &amp;quot;Advanced Set UP&amp;quot;. You will need your FTP password e.t.c.&lt;/li&gt;
&lt;li&gt;Can also be used as a standalone and hosted on Blogger's servers, e.g. www.yoursite.blogspot.com&lt;/li&gt;
&lt;li&gt;Easy to use and customise template.&lt;/li&gt;
&lt;li&gt;Indexed very quickly by Google (not too surprising, since it is owned by Google. This is good for SEO&lt;/li&gt;
&lt;li&gt;New features of www2.blogger include: blog labels. There are also hacks available, such as, teaser blog pages.&lt;/li&gt;
&lt;li&gt;Google support group&lt;/li&gt;
&lt;/ul&gt;
&lt;div class="line-block"&gt;
&lt;div class="line"&gt;&lt;br /&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;&lt;strong&gt;Disadvantages of Blogger&lt;/strong&gt;&lt;/p&gt;
&lt;ul class="simple"&gt;
&lt;li&gt;With new blogger software hosted on external sites, I have frequently had blog publishing problems. (Sometimes takes a long time to publish, and then with errors - can be avoided by not having lables) Hopefully, these are problems which will be overcome soon, but it makes me reluctant to start more blogger blogs.&lt;/li&gt;
&lt;/ul&gt;
</description>
            <pubDate>Thu, 26 Apr 2007 16:24:27 </pubDate>
            <guid>http://www.vasudevaservice.com/blog/archive/2007/04/26/evaluation-of-blogger-software</guid>
            <dc:creator>Tejvan Pettinger</dc:creator>
            
              <category>blogging</category>
            
            
              <category>websites</category>
                          
            
         </item>
      
       
              
         <item>         
            <title>Web Hosting</title>
            <link>http://www.vasudevaservice.com/blog/archive/2007/04/26/web-hosting</link>
            <description>&lt;p&gt;Finding a good, reliable web host is not easy.&lt;/p&gt;
&lt;p&gt;It is important to bear in mind:&lt;/p&gt;
&lt;ol class="arabic simple"&gt;
&lt;li&gt;How much traffic will your site have? - Most sites start off small, but if traffic increases, you may need an option with more bandwidth available. E.g. small packages may start from 2GB per month.&lt;/li&gt;
&lt;li&gt;Do you need optional extras? For example, wordpress blog.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;&lt;strong&gt;Some Web Hosts worth Considering&lt;/strong&gt;&lt;/p&gt;
&lt;ol class="arabic simple"&gt;
&lt;li&gt;&lt;a class="reference" href="http://www.siteground.com/wordpress-hosting.htm"&gt;SiteGround&lt;/a&gt; - $6.00 per month.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;Supports Wordpress, High Bandwidth and disc space capacity.&lt;/p&gt;
&lt;div class="line-block"&gt;
&lt;div class="line"&gt;&lt;br /&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;ol class="arabic simple" start="2"&gt;
&lt;li&gt;&lt;a class="reference" href="http://www.asmallorange.com/"&gt;Small Orange&lt;/a&gt; tiny packages from $25 per year.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;Supports Wordpress and AWStats, Tiny package has small bandwidth, but can upgrade to higher bandwidth.&lt;/p&gt;
&lt;div class="line-block"&gt;
&lt;div class="line"&gt;&lt;br /&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;ol class="arabic simple" start="3"&gt;
&lt;li&gt;&lt;a class="reference" href="http://www.powweb.com/powweb/index.bml"&gt;Pow Web&lt;/a&gt; $6.00 per month&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;Supports Wordpress, AWStats, High Bandwidth.&lt;/p&gt;
&lt;div class="line-block"&gt;
&lt;div class="line"&gt;&lt;br /&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;ol class="arabic simple" start="4"&gt;
&lt;li&gt;&lt;a class="reference" href="http://www.heartinternet.co.uk/"&gt;Heart Internet&lt;/a&gt; from $5.00 per month&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;Wordpress not available on cheap package, but is on more expensive.&lt;/p&gt;
&lt;div class="line-block"&gt;
&lt;div class="line"&gt;&lt;br /&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;ol class="arabic simple" start="5"&gt;
&lt;li&gt;&lt;a class="reference" href="http://www.streamline.net/"&gt;Streamline.net&lt;/a&gt; from $28 per year.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;Cheap if you want unlimited bandwidth and disc space. Wordpress is supported, but need to install yourself.&lt;/p&gt;
</description>
            <pubDate>Thu, 26 Apr 2007 16:09:17 </pubDate>
            <guid>http://www.vasudevaservice.com/blog/archive/2007/04/26/web-hosting</guid>
            <dc:creator>Tejvan Pettinger</dc:creator>
            
              <category>blogging</category>
            
            
              <category>websites</category>
                          
            
         </item>
      
       
              
         <item>         
            <title>HTML Editors</title>
            <link>http://www.vasudevaservice.com/blog/archive/2007/04/21/html-editors</link>
            <description>&lt;p&gt;If you are building a website from scratch you will want a HTML editor to help create webpages.&lt;/p&gt;
&lt;p&gt;Some of the best HTML editors.&lt;/p&gt;
&lt;ol class="arabic simple"&gt;
&lt;li&gt;Dreamweaver - The market Leader but quite expensive. &lt;a class="reference" href="http://www.adobe.com/products/dreamweaver/"&gt;Dreamweaver&lt;/a&gt; at Adobe&lt;/li&gt;
&lt;li&gt;Microsoft Front Page - One of the most popular editors, it is now being superceded by &lt;a class="reference" href="http://www.microsoft.com/expression/products/overview.aspx?key=web"&gt;Microsoft Expression&lt;/a&gt; Available for trial download.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;&lt;strong&gt;Free HTML Editors&lt;/strong&gt;&lt;/p&gt;
&lt;ol class="arabic simple" start="3"&gt;
&lt;li&gt;NVu - OPen source html editor &lt;a class="reference" href="http://nvu.com/websitehelp.php"&gt;How to build a website using NVu&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a class="reference" href="http://www.thesitewizard.com/gettingstarted/mozillacomposer1.shtml"&gt;Mozilla Composer&lt;/a&gt;&lt;/li&gt;
&lt;/ol&gt;
&lt;div class="line-block"&gt;
&lt;div class="line"&gt;&lt;br /&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;These HTML editors will enable you to upload your webpages using FTP transfer. However for optimal FTP transfer you may wish to make use of a dedicated FTP programme.&lt;/p&gt;
&lt;p&gt;&lt;a class="reference" href="http://www.cuteftp.com/"&gt;Cute FTP&lt;/a&gt;&lt;/p&gt;
&lt;div class="line-block"&gt;
&lt;div class="line"&gt;&lt;br /&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;&lt;a class="reference" href="http://streamline.net/sw.php"&gt;Cheap Hosting and Site wizard&lt;/a&gt; - cheap webhosting with editor built in.&lt;/p&gt;
</description>
            <pubDate>Sat, 21 Apr 2007 06:39:00 </pubDate>
            <guid>http://www.vasudevaservice.com/blog/archive/2007/04/21/html-editors</guid>
            <dc:creator>Tejvan Pettinger</dc:creator>
            
              <category>websites</category>
                          
            
         </item>
      
       
              
         <item>         
            <title>Tidy language folders with LinguaPlone </title>
            <link>http://www.vasudevaservice.com/blog/archive/2007/03/28/tidy-language-folders-with-linguaplone</link>
            <description>&lt;div class="float-right figure"&gt;
&lt;img alt="bird" src="http://www.srichinmoycentre.org/gallery/d/272310-2/Home+sweet+home" style="width: 250px;" /&gt;
&lt;p class="caption"&gt;Photo: &lt;a class="reference" href="http://www.srichinmoycentre.org/gallery/members/projjwal/"&gt;Projjwal Pohland&lt;/a&gt; .&lt;/p&gt;
&lt;/div&gt;
&lt;p&gt;In Linguaplone, the one thing that you can't translate is the portal itself. Hence if you have any documents or folders at site root, then they will be translated into documents or folders also at site root. It is easy to see how (especially with more than two languages) things can get very messy indeed.&lt;/p&gt;
&lt;p&gt;However there is a way around this if you have your site address directed to a folder at the root of the portal, &lt;em&gt;public_home&lt;/em&gt;, say (in my opinion this should be Plone default behaviour to stop user content from being scattered around portal tools in the zmi). You can then translate the folder and the translated folder will show up on the same level as &lt;em&gt;public_home&lt;/em&gt;. (You can even translate some content inside the folder before you translate the folder and LinguaPlone will put the content inside the folder for you)&lt;/p&gt;
&lt;p&gt;However, perhaps you want all content - including translations - to be inside the &lt;em&gt;public_home&lt;/em&gt; folder for ease of maintenance. Well, after you translate the folder, you can go into the zmi, cut the folder and paste it within &lt;em&gt;public_home&lt;/em&gt;. This doesn't seem to have any effect on the links between original and translated folders, or on any content translated after you move the folder, and you now have all the content for each language inside their respective folders inside &lt;em&gt;public_home&lt;/em&gt;.&lt;/p&gt;
</description>
            <pubDate>Wed, 28 Mar 2007 11:47:38 </pubDate>
            <guid>http://www.vasudevaservice.com/blog/archive/2007/03/28/tidy-language-folders-with-linguaplone</guid>
            <dc:creator>Shane Magee</dc:creator>
            
              <category>3rd-party-products</category>
                          
            
         </item>
      
       
              
         <item>         
            <title>Displaying body text of a news item in sdotnews</title>
            <link>http://www.vasudevaservice.com/blog/archive/2007/03/17/displaying-body-text-of-a-news-item-in-sdotnews</link>
            <description>&lt;div class="float-right figure"&gt;
&lt;img alt="http://www.srichinmoycentre.org/gallery/d/205411-2/P1030839.JPG" src="http://www.srichinmoycentre.org/gallery/d/205411-2/P1030839.JPG" style="width: 320px;" /&gt;
&lt;p class="caption"&gt;Who says a technical site can't have pictures? (Photo:&lt;a class="reference" href="`http://www.srichinmoycentre.org/gallery/members/kedar"&gt;Kedar Misani&lt;/a&gt; )&lt;/p&gt;
&lt;/div&gt;
&lt;div class="line-block"&gt;
&lt;div class="line"&gt;&lt;br /&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;Sdotnews by default displays the description of a news item. However, sometimes you will want to link to another page direct from the front sdotnews page, so it might be better to display the body text instead of the description, and in the body text of the news item you can then insert your links.&lt;/p&gt;
&lt;div class="line-block"&gt;
&lt;div class="line"&gt;&lt;br /&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;In order to implement this change we have to change the &lt;em&gt;sdotnews_view&lt;/em&gt; template; specifically, replacing the bit that says&lt;/p&gt;
&lt;pre class="literal-block"&gt;
&amp;lt;p tal:content=&amp;quot;result/Description&amp;quot;&amp;gt;
&lt;/pre&gt;
&lt;p&gt;At first I tried to call the text of the page body using&lt;/p&gt;
&lt;pre class="literal-block"&gt;
&amp;lt;p tal:content=&amp;quot;result/getText&amp;quot;&amp;gt;
&lt;/pre&gt;
&lt;p&gt;or&lt;/p&gt;
&lt;pre class="literal-block"&gt;
&amp;lt;p tal: content=&amp;quot;python: result.CookedBody()&amp;quot;&amp;gt;
&lt;/pre&gt;
&lt;p&gt;But this doesn't work, because once sdot has batched the news articles in groups so they can be displayed on different pages, the page results can access the metadata listed in the catalog, (so &lt;em&gt;result/Description&lt;/em&gt; or &lt;em&gt;result/Title&lt;/em&gt; is ok, but &lt;em&gt;result/getText&lt;/em&gt; isn't).&lt;/p&gt;
&lt;p&gt;Now, to get around this, you can include the page body in the catalog metadata (which would defeat the whole purpose of having a catalog in the first place), or else you can use the &lt;em&gt;getObject&lt;/em&gt; method to access the obkjct and all of its attributes, rather than just the ones specified in the catalog.&lt;/p&gt;
&lt;pre class="literal-block"&gt;
tal:define=&amp;quot;resultObject result/getObject;
            resultText python:resultObject.CookedBody(stx_level=2);

 &amp;lt;p tal:replace=&amp;quot;structure resultText&amp;quot;&amp;gt;
&lt;/pre&gt;
&lt;p&gt;Note that sdot news already has defined &lt;em&gt;resultObject&lt;/em&gt;, which it needed to access the news item image. Also note the &lt;em&gt;structure&lt;/em&gt; command, this converts the HTML or ReStructured text. If you just put in&lt;/p&gt;
&lt;pre class="literal-block"&gt;
&amp;lt;p tal:content=&amp;quot;resultText&amp;quot;&amp;gt;
&lt;/pre&gt;
&lt;p&gt;you will just get all the HTML tags.&lt;/p&gt;
</description>
            <pubDate>Sat, 17 Mar 2007 06:11:17 </pubDate>
            <guid>http://www.vasudevaservice.com/blog/archive/2007/03/17/displaying-body-text-of-a-news-item-in-sdotnews</guid>
            <dc:creator>Shane Magee</dc:creator>
            
              <category>plone</category>
            
            
              <category>3rd-party-products</category>
                          
            
         </item>
      
       
              
         <item>         
            <title>Adding images to a csv-table in restructured text</title>
            <link>http://www.vasudevaservice.com/blog/archive/2007/02/27/adding-images-to-a-csv-table-in-restructured-text</link>
            <description>&lt;p&gt;Anyone who has tried to add images using the csv-table directive in restructured text may have come to the following conclusion: it can't be done. Well certainly not using any of the existing attributes or syntax for tables (an oversight?), but it can be done with the &lt;em&gt;replacement&lt;/em&gt; directive.&lt;/p&gt;
&lt;p&gt;Firstly, a csv-table in restructured text looks like this:&lt;/p&gt;
&lt;blockquote&gt;
&lt;table border="1" class="docutils"&gt;
&lt;caption&gt;Currently Held Records&lt;/caption&gt;
&lt;colgroup&gt;
&lt;col width="4%" /&gt;
&lt;col width="26%" /&gt;
&lt;col width="26%" /&gt;
&lt;col width="21%" /&gt;
&lt;col width="11%" /&gt;
&lt;col width="11%" /&gt;
&lt;/colgroup&gt;
&lt;thead valign="bottom"&gt;
&lt;tr&gt;&lt;th class="head"&gt;No&lt;/th&gt;
&lt;th class="head"&gt;Category&lt;/th&gt;
&lt;th class="head"&gt;Details&lt;/th&gt;
&lt;th class="head"&gt;Record&lt;/th&gt;
&lt;th class="head"&gt;Date&lt;/th&gt;
&lt;th class="head"&gt;Photo&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody valign="top"&gt;
&lt;tr&gt;&lt;td&gt;1&lt;/td&gt;
&lt;td&gt;&lt;strong&gt;Somersaulting&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Longest continuous distance&lt;/td&gt;
&lt;td&gt;12 miles 390 yards&lt;/td&gt;
&lt;td&gt;Apr 1986&lt;/td&gt;
&lt;td&gt;&lt;a class="reference" href="/images/green_face-copy.jpg"&gt;&lt;img alt="green_face.jpg" src="/images/green_face-copy.jpg" /&gt;&lt;/a&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;/blockquote&gt;
&lt;p&gt;And would created with the following code:&lt;/p&gt;
&lt;pre class="literal-block"&gt;
.. csv-table:: Currently Held Records
  :header: &amp;quot;No&amp;quot;, &amp;quot;Category&amp;quot;, &amp;quot;Details&amp;quot;, &amp;quot;Record&amp;quot;, &amp;quot;Date&amp;quot;, &amp;quot;Photo&amp;quot;
  :widths: 42, 270, 270, 220, 119, 119

  1, &amp;quot;**Somersaulting**&amp;quot;, &amp;quot;Longest continuous distance&amp;quot;, &amp;quot;12 miles 390 yards&amp;quot;, &amp;quot;Apr 1986&amp;quot;, |green_face.jpg|
&lt;/pre&gt;
&lt;p&gt;Ignore the first three lines—it's the table structure info, similar to the way you would define an image, but instead defining table column titles and widths. Should be pretty obvious how to change anything there, but in case not, let's recap a few csv-table fundamentals, as it is important in restructed text that formatting is followed precisely—right down to the space and comma:&lt;/p&gt;
&lt;ul class="simple"&gt;
&lt;li&gt;a single space after each comma—no other spaces&lt;/li&gt;
&lt;li&gt;bold text like **this**&lt;/li&gt;
&lt;li&gt;all text inside &amp;quot;quote marks&amp;quot;&lt;/li&gt;
&lt;li&gt;numbers don't need to be in quote marks, unless together with text: &amp;quot;12 miles 390 yards&amp;quot;&lt;/li&gt;
&lt;li&gt;return at the end of the line&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;The last line is an example of a row of the table, and more importantly contains the image:&lt;/p&gt;
&lt;pre class="literal-block"&gt;
1, &amp;quot;**Somersaulting**&amp;quot;, &amp;quot;Longest continuous distance&amp;quot;, &amp;quot;12 miles 390 yards&amp;quot;, &amp;quot;Apr 1986&amp;quot;, |green_face.jpg|
&lt;/pre&gt;
&lt;p&gt;The image is the complex, for “|green_face.jpg|” (without quotes) is actually a “replacement” for the image definition, somewhat akin to an ID in css or a variable in pretty much any programming language you could name.&lt;/p&gt;
&lt;p&gt;The image url, link and any other image parametres pointed to by the replacement id then get defined below the table (ie at the bottom of your reSt document):&lt;/p&gt;
&lt;pre class="literal-block"&gt;
.. |green_face.jpg| image:: green_face.jpg
  :target: green_face.jpg
&lt;/pre&gt;
&lt;p&gt;&lt;strong&gt;Note&lt;/strong&gt;:&lt;/p&gt;
&lt;ul class="simple"&gt;
&lt;li&gt;The spaces are important as usual, as is putting the info on two lines&lt;/li&gt;
&lt;li&gt;the name of the replacement/id can be anything, but it makes sense to me to use the image name&lt;/li&gt;
&lt;li&gt;you can use the same image two times (or more) but only define the replacement once.&lt;/li&gt;
&lt;/ul&gt;
&lt;div class="line-block"&gt;
&lt;div class="line"&gt;&lt;br /&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;div class="section" id="example"&gt;
&lt;h3&gt;Example&lt;/h3&gt;
&lt;p&gt;You can view an example of a resturctured text csv-table including images here: &lt;a class="reference" href="http://www.ashrita.com/records"&gt;Ashrita.com&lt;/a&gt;&lt;/p&gt;
&lt;/div&gt;
</description>
            <pubDate>Tue, 27 Feb 2007 20:49:00 </pubDate>
            <guid>http://www.vasudevaservice.com/blog/archive/2007/02/27/adding-images-to-a-csv-table-in-restructured-text</guid>
            <dc:creator>John Gillespie</dc:creator>
            
              <category>restructuredtext</category>
                          
            
         </item>
      
       
              
         <item>         
            <title>Tips for faster speed in Plone</title>
            <link>http://www.vasudevaservice.com/blog/archive/2007/02/13/tips-for-faster-speed-in-plone</link>
            <description>&lt;p&gt;Plone, like any content management system, has slower page load speeds than static pages. Ensuring a fast enough page load speed so users won't get turned off is therefore a big concern of Plone site maintainers. Here are some tips:&lt;/p&gt;
&lt;div class="line-block"&gt;
&lt;div class="line"&gt;&lt;br /&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;div class="section" id="avoid-missing-page-components"&gt;
&lt;h3&gt;1. Avoid missing page components&lt;/h3&gt;
&lt;div class="line-block"&gt;
&lt;div class="line"&gt;&lt;br /&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;If a part of a page (most commonly an image) returns a 404 or 301, it can slow down the page to more than half the speed. No matter what one does on system level you cannot make up for that kind of speed loss.&lt;/p&gt;
&lt;p&gt;301 errors are particularly tricky since it is basically a bad link, but some code (most probably RedirectionTool) finds the requested object somewhere else and redirects the original request to the correct url. The url is served correctly, but that 301 makes the page load slow.&lt;/p&gt;
&lt;p&gt;Actually the standard use of RedirectionTool (aliases) has the same effect, so it should be used just temporarily.&lt;/p&gt;
&lt;p&gt;The &lt;strong&gt;Tamper Data&lt;/strong&gt; extension (&lt;a class="reference" href="https://addons.mozilla.org/firefox/966/"&gt;https://addons.mozilla.org/firefox/966/&lt;/a&gt;) to Firefox is a great tool because it allows you to quickly inspect headers of all the page components, not only the page itself. After installation, you will be requested to close the browser completely and start it again. Now Open Tamper Data from Tools menu in Firefox, and open a page you want to check out in Firefox. You can now see that Tamper Data window is being populated. Each line is one individual component of the requested page that has to be loaded in order to render the page. The most important column for us
is &amp;quot;Status&amp;quot;. We are looking for 404 and 301 errors. 200 means you accessed site content without error and 304 means your local content is the same as in the squid, which is even better.&lt;/p&gt;
&lt;div class="line-block"&gt;
&lt;div class="line"&gt;&lt;br /&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div class="section" id="page-content-sometimes-less-is-more"&gt;
&lt;h3&gt;2. Page content - sometimes less is more&lt;/h3&gt;
&lt;div class="line-block"&gt;
&lt;div class="line"&gt;&lt;br /&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;A page with twice as much content will most probably load two times slowly. Understandably that we want put as much possible into every page, but quite often less is more. Things that have to be generated by Zope (smart folders ect) will obviously take longer to load than static content&lt;/p&gt;
&lt;div class="line-block"&gt;
&lt;div class="line"&gt;&lt;br /&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div class="section" id="caching"&gt;
&lt;h3&gt;3. Caching&lt;/h3&gt;
&lt;div class="line-block"&gt;
&lt;div class="line"&gt;&lt;br /&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;Most speed improvement on a system level involves caching - storing site content in easily accessible areas. Most large sites run a proxy cache like squid to serve up static content and keep Zope from doing the work. Other static content is cached in the browser itself. The most import thing is to make sure all pages and their components have correct caching headers; this is done by the &lt;a class="reference" href="http://plone.org/products/cachefu"&gt;CacheFu&lt;/a&gt;  product, which now ships with Plone.&lt;/p&gt;
&lt;p&gt;The whole plone caching business is described in &lt;a class="reference" href="http://plone.org/events/regional/nola06/collateral/make-plone-go-fast.pdf"&gt;http://plone.org/events/regional/nola06/collateral/make-plone-go-fast.pdf&lt;/a&gt; and CacheFu product documentation.&lt;/p&gt;
&lt;p&gt;Obviously, any caching issue we fix has a double effect. The page is served from cache much faster and it does not create any load on zope server. Then the pages that have to be served by zope (cache refresh, editors) are much faster.&lt;/p&gt;
&lt;p&gt;Another crucial point is to evaluate any new feature or product we are going to use from the caching and performance perspectives. Then we should document what adjustments have to be done when a product or a feature is deployed on a particular site. For instance if EasyBlog is installed on a site, the CacheFu will have to be set; if sdot is installed, the CacheFu will have to be set and icon image will have to be created, etc.&lt;/p&gt;
&lt;p&gt;(Thanks to Atmasamarpan for all his help with this article)&lt;/p&gt;
&lt;/div&gt;
</description>
            <pubDate>Tue, 13 Feb 2007 04:16:09 </pubDate>
            <guid>http://www.vasudevaservice.com/blog/archive/2007/02/13/tips-for-faster-speed-in-plone</guid>
            <dc:creator>Shane Magee</dc:creator>
            
              <category>plone</category>
                          
            
         </item>
      
       
              
         <item>         
            <title>Benefits of Writing with Lists</title>
            <link>http://www.vasudevaservice.com/blog/archive/2007/02/07/benefits-of-writing-with-lists</link>
            <description>&lt;p&gt;The Advantages of Writing in Lists.&lt;/p&gt;
&lt;ol class="arabic simple"&gt;
&lt;li&gt;&lt;strong&gt;Easier to Read.&lt;/strong&gt; People don’t have time or the interest to read long sections of text. Writing by bullet points or numbers makes it easy to read and skim through. Picking up on the points which look most interesting.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Easier to Write.&lt;/strong&gt; Writing lists tends to be easier. Writing by bullet points means that you focus on one point at a time. It also tends to encourage simpler writing which is a good habit to encourage.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Discussion.&lt;/strong&gt; Lists provide an opportunity for discussion. For my next blog post I am going to choose my top 13 books that changed the world. It engages the reader because they start thinking what they would have chosen. If you want people to add comments to your blog this is a good strategy to employ.&lt;/li&gt;
&lt;/ol&gt;
</description>
            <pubDate>Wed, 07 Feb 2007 09:42:53 </pubDate>
            <guid>http://www.vasudevaservice.com/blog/archive/2007/02/07/benefits-of-writing-with-lists</guid>
            <dc:creator>Tejvan Pettinger</dc:creator>
            
              <category>blogging</category>
                          
            
         </item>
      
       
              
         <item>         
            <title>Interesting Links for building web traffic</title>
            <link>http://www.vasudevaservice.com/blog/archive/2007/02/07/interesting-links-for-building-web-traffic</link>
            <description>&lt;ul class="simple"&gt;
&lt;li&gt;&lt;a class="reference" href="/blog/archive/2007/02/07/benefits-of-writing-with-lists"&gt;7 Reasons to write in lists&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a class="reference" href="http://googlewebmastercentral.blogspot.com/2007/02/discover-your-links.html"&gt;Discover your links&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a class="reference" href="http://www.problogger.net/archives/category/writing-content/"&gt;Content Writing Tips&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a class="reference" href="http://googlewebmastercentral.blogspot.com/2006/12/deftly-dealing-with-duplicate-content.html"&gt;Duplicate content&lt;/a&gt; at Google blog&lt;/li&gt;
&lt;li&gt;&lt;a class="reference" href="http://googlewebmastercentral.blogspot.com/2006/12/building-link-based-popularity.html"&gt;Building link based popularity&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a class="reference" href="http://lorelle.wordpress.com/2007/02/02/wordpresscom-blog-bling-blockquotes-and-quotes/"&gt;Use of BlockQuotes&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
</description>
            <pubDate>Wed, 07 Feb 2007 07:40:29 </pubDate>
            <guid>http://www.vasudevaservice.com/blog/archive/2007/02/07/interesting-links-for-building-web-traffic</guid>
            <dc:creator>Tejvan Pettinger</dc:creator>
            
              <category>blogging</category>
                          
            
         </item>
      
       
              
         <item>         
            <title>Archetypes and ATContentTypes, part 2: Templates and customization slots</title>
            <link>http://www.vasudevaservice.com/blog/archive/2007/01/25/archetypes-and-atcontenttypes-part-2</link>
            <description>&lt;p&gt;We will now look at how these schemas are called by the edit templates, and point out slots and hooks which Archetypes have left for customization.&lt;/p&gt;
&lt;p&gt;Let us return to our &lt;em&gt;Image&lt;/em&gt; type: selecting this type in &lt;em&gt;portal_types&lt;/em&gt; and looking at properties will show that &lt;em&gt;atct_edit&lt;/em&gt; is the default editing form, as it is for all ATContent Types. There is only one line in &lt;em&gt;atct_edit&lt;/em&gt;, calling the &lt;em&gt;master&lt;/em&gt; macro in the &lt;em&gt;base_edit&lt;/em&gt; template. The main function of this macro is to call other macros for different parts of the page:  most of these macros are located in the &lt;em&gt;edit_macros&lt;/em&gt; file&amp;quot;&lt;/p&gt;
&lt;ul class="simple"&gt;
&lt;li&gt;the top slot gets filled by &lt;em&gt;edit_macros/topslot&lt;/em&gt;&lt;/li&gt;
&lt;li&gt;javascript is looked after by &lt;em&gt;archetypes_custom_js/macros/javascript_head&lt;/em&gt;&lt;/li&gt;
&lt;li&gt;css: &lt;em&gt;edit_macros/css&lt;/em&gt;&lt;/li&gt;
&lt;li&gt;header,description, body,footer all in &lt;em&gt;edit_macros&lt;/em&gt;.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;So, let's take a closer look at some of the macros in &lt;em&gt;edit_macros&lt;/em&gt;:&lt;/p&gt;
&lt;div class="section" id="macros-in-edit-macros"&gt;
&lt;h3&gt;Macros in edit_macros&lt;/h3&gt;
&lt;ul class="simple"&gt;
&lt;li&gt;&lt;strong&gt;header&lt;/strong&gt; generates document actions like print, rss ect via the document actions macro and generates a title for the edit form with the name  'Edit (Content Type)'&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;byline&lt;/strong&gt; generates the byline, via the &lt;em&gt;document_byline&lt;/em&gt; macro&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;archetypes_schemata_links&lt;/strong&gt;: not sure what this bit does yet :)&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;typedescription&lt;/strong&gt; returns the description of the content type, which will appear at the top of the page under the title. It can be edited in &lt;em&gt;portal_types&lt;/em&gt; without customizing, but the resulting edit will only appear in the 'add item' listng and not the edit form where you want it.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;body&lt;/strong&gt;:  This is where the main action happens: for us, the interesting part of this macro is:&lt;/li&gt;
&lt;/ul&gt;
&lt;pre class="literal-block"&gt;
&amp;lt;metal:block define-slot=&amp;quot;extra_top&amp;quot; /&amp;gt;

        &amp;lt;metal:block define-slot=&amp;quot;widgets&amp;quot;&amp;gt;
          &amp;lt;tal:fields repeat=&amp;quot;field fields&amp;quot;&amp;gt;
            &amp;lt;metal:fieldMacro use-macro=&amp;quot;python:here.widget(field.getName(), mode='edit')&amp;quot; /&amp;gt;
          &amp;lt;/tal:fields&amp;gt;
        &amp;lt;/metal:block&amp;gt;

        &amp;lt;metal:block define-slot=&amp;quot;extra_bottom&amp;quot; /&amp;gt;
&lt;/pre&gt;
&lt;p&gt;If we look at the above piece of code, it is essentially asking us to go through each field of the image schema and get its widget (For more on schemas and widgets, see part 1). Note the two slots 'extra-top' and 'extra-bottom' if you want to put something above or below the image widgets without changing the template.&lt;/p&gt;
&lt;p&gt;The body macro also contains a good bit to do with sending the form, and the buttons. It contains a block defining &lt;em&gt;Previous, Next&lt;/em&gt; (these automatically appear if there is more than one page in the edit form) &lt;em&gt;Save&lt;/em&gt; and &lt;em&gt;Cancel&lt;/em&gt; buttons. There is also a slot called 'extra-buttons' if you need to make any more buttons for your form, so you can make them in another template.&lt;/p&gt;
&lt;p&gt;Whilst Archetypes does have a range of customization slots, one cannot make any easily reversible customizations to the schema as one might with a page template, as the files containing the schema are not stored on the zodb.&lt;/p&gt;
&lt;p&gt;One is then left with the prospect of defining a new Archetype derived from your old one, either in a new product or as part of an existing one. Then in Extension/Install.py the portal_types tool can be manipulated to use the new type, or alternatively you can set that the old type can be just not globally allowed while the new type would be. Before you run into that course of action, there might be extra hooks for customization I havent found: for example, Villiam pointed out a post_validate hook for validators.&lt;/p&gt;
&lt;p&gt;I am very grateful to Villiam Segeda, our resident Archetypes expert, for teaching me what little I know.&lt;/p&gt;
&lt;/div&gt;
</description>
            <pubDate>Thu, 25 Jan 2007 04:33:08 </pubDate>
            <guid>http://www.vasudevaservice.com/blog/archive/2007/01/25/archetypes-and-atcontenttypes-part-2</guid>
            <dc:creator>Shane Magee</dc:creator>
            
              <category>plone</category>
            
            
              <category>programming</category>
                          
            
         </item>
      
       
              
         <item>         
            <title>How do they do the navigation on the plone.org site?</title>
            <link>http://www.vasudevaservice.com/blog/archive/2007/01/25/navigation</link>
            <description>&lt;p&gt;When you visit the plone site (&lt;a class="reference" href="http://plone.org"&gt;http://plone.org&lt;/a&gt;) you see that the side navigation bar (viewable at any page besides homepage) contains only the root folders, the item and its immediate ancestors. A very nice behaviour, and one I spent a while fiddling with navigation properties trying to make happen.&lt;/p&gt;
&lt;p&gt;But actually the solution is much simpler. Every version of Plone since 2.1 comes packaged with two identical states 'public draft' and 'published' - items in either of these two states are available to the general public. Why two identical states? Well, it does enable the user to choose which items he wants public but not available in navigation by putting the items he wants available in navigation 'published' and the ones he doesn't 'public draft', say. Then he can go to navigation properties in preferences, check filter workflow states, and put in published into the box below.&lt;/p&gt;
&lt;p&gt;That's what Plone have done on their site: in addition, only the folders at site root are published, and all other content is visible, so that it will only appear in navigation if the actual page is selected.&lt;/p&gt;
</description>
            <pubDate>Thu, 25 Jan 2007 04:29:08 </pubDate>
            <guid>http://www.vasudevaservice.com/blog/archive/2007/01/25/navigation</guid>
            <dc:creator>Shane Magee</dc:creator>
            
              <category>plone</category>
                          
            
         </item>
      
       
              
         <item>         
            <title>Hide  email address from spammers</title>
            <link>http://www.vasudevaservice.com/blog/archive/2007/01/13/hide-email-address-from-spammers</link>
            <description>&lt;p&gt;&lt;a class="reference" href="http://www.netmechanic.com/news/vol4/design_no21.htm"&gt;hide email&lt;/a&gt;&lt;/p&gt;
&lt;pre class="literal-block"&gt;
&amp;lt;p&amp;gt;Send your comments and questions Richard

&amp;lt;script language=javascript&amp;gt;

 &amp;lt;!--

 var contact = &amp;quot;Joe Blogs&amp;quot;

 var email = &amp;quot;joebloggs&amp;quot;

 var emailHost = &amp;quot;vasudevaservice.com&amp;quot;

 document.write(&amp;quot;&amp;lt;a href=&amp;quot; + &amp;quot;mail&amp;quot; + &amp;quot;to:&amp;quot; + email + &amp;quot;&amp;#64;&amp;quot; + emailHost+ &amp;quot;&amp;gt;&amp;quot; + contact + &amp;quot;&amp;lt;/a&amp;gt;&amp;quot; +   &amp;quot;.&amp;quot;)

 //--&amp;gt;

&amp;lt;/script&amp;gt;

&amp;lt;/p&amp;gt;
&lt;/pre&gt;
&lt;p&gt;NOte many plone sites have javascript automatically disenabled. to see what it looks like press more&lt;/p&gt;
</description>
            <pubDate>Sat, 13 Jan 2007 17:23:14 </pubDate>
            <guid>http://www.vasudevaservice.com/blog/archive/2007/01/13/hide-email-address-from-spammers</guid>
            <dc:creator>Tejvan Pettinger</dc:creator>
            
              <category>general</category>
                          
            
         </item>
      
       
              
         <item>         
            <title>Archetypes and ATContentTypes, part 1: The Archetype Schema</title>
            <link>http://www.vasudevaservice.com/blog/archive/2007/01/02/archetypes-and-atcontenttypes-part-1</link>
            <description>&lt;p&gt;All the default types in Plone - file, image, folder - are part of the ATContentTypes product, and are examples of &lt;em&gt;archetypes&lt;/em&gt;. Archetypes were integrated into Plone 2.1, and allow you to create content types easily by providing a range of readymade tools so you can generate edit forms without using any HTML.&lt;/p&gt;
&lt;p&gt;An example will perhaps best explain how Archetypes works - lets look at the familiar 'image' type. The edit form of an Archetype is generated using a &lt;em&gt;schema&lt;/em&gt;, and the schema for image can be found in &lt;em&gt;Products/ATContentTypes/content/image.py&lt;/em&gt;: here we've taken out some of the code to focus on the essentials:&lt;/p&gt;
&lt;pre class="literal-block"&gt;
ATImageSchema = ATContentTypeSchema.copy() + Schema((
  ImageField('image',
        required=True,
                ....(lots of other stuff here, to do with image sizing and such).....
        validators = (('isNonEmptyFile', V_REQUIRED),
                      ('checkImageMaxSize', V_REQUIRED)),
        widget = ImageWidget(
                   #description = &amp;quot;Select the image to be added by
                                   clicking the 'Browse' button.&amp;quot;,
                   #description_msgid = &amp;quot;help_image&amp;quot;,
                   description = &amp;quot;&amp;quot;,
                   label= &amp;quot;Image&amp;quot;,
                   label_msgid = &amp;quot;label_image&amp;quot;,
                   i18n_domain = &amp;quot;plone&amp;quot;,
                   show_content_type = False,)),

  ), marshall=PrimaryFieldMarshaller()
  )
&lt;/pre&gt;
&lt;p&gt;That's all a bit of a mouthful, so we'll break it up and isolate the essential parts:&lt;/p&gt;
&lt;pre class="literal-block"&gt;
ATImageSchema = ATContentTypeSchema.copy() + Schema((
     ImageField(
&lt;/pre&gt;
&lt;p&gt;Every schema contains a collection of &lt;strong&gt;fields&lt;/strong&gt;; in the edit form the &lt;em&gt;short name&lt;/em&gt; is one field , the &lt;em&gt;Title&lt;/em&gt; is another and so on... The reason we don't see the title, id, or description in the above schema is they are already defined in ATContentSchema (they are common to all types); the first line of the code joins ATContentTypeSchema to the schema we are creating above.&lt;/p&gt;
&lt;p&gt;For an image, there is only one extra field, the ImageField. Lets say we want another field to specify the camera the image was taken with; our schema will then look like:&lt;/p&gt;
&lt;pre class="literal-block"&gt;
ATImageSchema = ATContentTypeSchema.copy() + Schema((
      ImageField(   # all the stuff above
           ),

       StringField('camera',
                  required=1,
                  widget=TextAreaWidget(),),

   ), marshall=PrimaryFieldMarshaller()
       )
&lt;/pre&gt;
&lt;p&gt;Archetypes provides many different kinds of field you can include - TextField, BooleanField (for yes/no values) ect. In plone.org there is a &lt;a class="reference" href="http://plone.org/products/archetypes/documentation/manual/quickref/field-reference"&gt;list of available Archetypes fields....&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;OK, lets look at the arguments of ImageField:&lt;/p&gt;
&lt;pre class="literal-block"&gt;
ImageField('image',
       required=True,
               ....(lots of other stuff here).....
       validators = (('isNonEmptyFile', V_REQUIRED),
                     ('checkImageMaxSize', V_REQUIRED)),
       widget = ImageWidget(
                                # whatever goes here we'll explain
                                # when we talk about widgets
        )),

 )
&lt;/pre&gt;
&lt;p&gt;The first argument &lt;em&gt;'image'&lt;/em&gt; is the title of the field, the &lt;em&gt;required=True&lt;/em&gt; puts the little red 'required' dot beside the title. Now, the next two are important:&lt;/p&gt;
&lt;ul class="simple"&gt;
&lt;li&gt;&lt;strong&gt;validators&lt;/strong&gt;:  these are classes which check that whatever we've entered into the field satisfies a set of conditions, and it won't accept it if it doesn't. For example, ImageField calls instances of two validator classes: one of them makes sure the uploaded file isn't empty, and the other rejects the uploaded file if it is too large. There is some readymade validators at &lt;em&gt;Products/validation/validators&lt;/em&gt;, although quite often people have the need to add extra ones of their own.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;widget&lt;/strong&gt;: the widget is the graphical layout that the field will take; it defines how to render the field into HTML/XML. For example a StringWidget will set out a one-line box; a TextAreaWidget will set out a bigger box, like what is used for the Description. On plone.org you can see &lt;a class="reference" href="http://plone.org/documentation/tutorial/picking-archetypes-widgets/tutorial-all-pages"&gt;pictures of all the available Archetypes widgets&lt;/a&gt; ; it is very unlikely you will need to make your own. In many cases, the field type suggests what widget type to use:  an ImageField will use an ImageWidget, for example.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;The arguments of ImageWidget are quite straightforward:&lt;/p&gt;
&lt;pre class="literal-block"&gt;
widget = ImageWidget(
       #description = &amp;quot;Select the image to be added by clicking the 'Browse' button.&amp;quot;,
       #description_msgid = &amp;quot;help_image&amp;quot;,
       description = &amp;quot;&amp;quot;,
       label= &amp;quot;Image&amp;quot;,
       label_msgid = &amp;quot;label_image&amp;quot;,
       i18n_domain = &amp;quot;plone&amp;quot;,
       show_content_type = False,)),
&lt;/pre&gt;
&lt;p&gt;The _msgid label is used by the internationalization (i18n) mechanism to generate translations in other languages.&lt;/p&gt;
&lt;p&gt;Ok, one final thing to deal with, the &lt;strong&gt;marshaller&lt;/strong&gt;, this makes Archetype fields understandable to clients such as WebDAV.  As you can see above, the schema took two arguments, the field and the marshaller.&lt;/p&gt;
&lt;pre class="literal-block"&gt;
Schema (    (ImageField( all the stuff we discussed ),),
                                    marshall=PrimaryFieldMarshaller()
     )
&lt;/pre&gt;
&lt;p&gt;PrimaryFieldMarshaller is the most common marshaller used, apparently.&lt;/p&gt;
&lt;p&gt;Ok, so that's the first part of my ATContentTypes exploration; the second part will deal with the question I first asked when I saw a type schema: how does all this called by a template and end up on our screens?&lt;/p&gt;
</description>
            <pubDate>Tue, 02 Jan 2007 17:58:49 </pubDate>
            <guid>http://www.vasudevaservice.com/blog/archive/2007/01/02/archetypes-and-atcontenttypes-part-1</guid>
            <dc:creator>Shane Magee</dc:creator>
            
              <category>plone</category>
            
            
              <category>programming</category>
            
            
              <category>documentation</category>
                          
            
         </item>
      
       
              
         <item>         
            <title>Selecting content item as default view of a folder (including the /Members folder!)</title>
            <link>http://www.vasudevaservice.com/blog/archive/2006/12/29/selecting-content-item-as-default-view</link>
            <description>&lt;p&gt;I always wondered why the 'Display' tab containing the 'select content item as default view' was sometimes clickable and sometimes not. Well the answer is simple (it always is after you've found it): if you have an item in your folder called index_html, Plone will automatically recognise that as the default view item, and you have to rename it before you can access the 'Display' tab....&lt;/p&gt;
&lt;p&gt;This also goes for the Members folder. By default, index_html will bring up a 'search for members' template, which I never found very useful, and always wanted to replace with a nice smart folder. First go into /Members in the zmi, select index_html (it's in there somewhere amongst all the members), and rename it to something like index_html.old. Now, somewhere outside of Members, create the item you want to have as default view, and paste it into Members with title (guess) index_html.&lt;/p&gt;
&lt;p&gt;This is a rather contrived way of going about things, I admit: Atmasamarpan tells me there is an index_home python script which calls index_html as the default view for the Members Large Plone Folder (which I have yet to find). Rename this script and you can access the display tab as normal. (Note: if you dont rename the script and there is no index_html item, you will get a site error when you try to acess the Members folder in Plone),.&lt;/p&gt;
</description>
            <pubDate>Fri, 29 Dec 2006 06:03:11 </pubDate>
            <guid>http://www.vasudevaservice.com/blog/archive/2006/12/29/selecting-content-item-as-default-view</guid>
            <dc:creator>Shane Magee</dc:creator>
            
              <category>plone</category>
                          
            
         </item>
      
       
              
         <item>         
            <title>Inserting content of Plone document into Zope template</title>
            <link>http://www.vasudevaservice.com/blog/archive/2006/12/11/inserting-content-of-plone-document-into-zope-template</link>
            <description>&lt;p&gt;As explained in an recent article titled '&lt;a class="reference" href="http://plone.org/documentation/how-to/how-to-edit-zpt-content-through-plone"&gt;Edit ZPT content through Plone&lt;/a&gt; ' on plone.org, we can insert the content of a document called &lt;em&gt;my-document&lt;/em&gt;, say, by inserting the following into your template:&lt;/p&gt;
&lt;pre class="literal-block"&gt;
&amp;lt;tal:block tal:condition=&amp;quot;exists:here/footer-content/my_document&amp;quot;
             tal:replace=&amp;quot;structure here/footer-content/my_document/getText&amp;quot;&amp;gt;
              Document content here&amp;lt;/tal:block&amp;gt;
&lt;/pre&gt;
&lt;p&gt;Perhaps one of these days Plone can use this method so that we can edit footers and colophons directly through Plone; ive submitted a ticket to Plone &lt;a class="reference" href="http://dev.plone.org/plone/ticket/5993"&gt;here...&lt;/a&gt; ...&lt;/p&gt;
&lt;p&gt;Perhaps we could even extend it to things like bylines, although that's a harder kettle of fish as we're dealing with variables like creator and modification date. Any ideas, anyone?&lt;/p&gt;
</description>
            <pubDate>Mon, 11 Dec 2006 11:21:44 </pubDate>
            <guid>http://www.vasudevaservice.com/blog/archive/2006/12/11/inserting-content-of-plone-document-into-zope-template</guid>
            <dc:creator>Shane Magee</dc:creator>
            
              <category>plone</category>
                          
            
         </item>
      
       
              
         <item>         
            <title>Negotiating the Plone security maze</title>
            <link>http://www.vasudevaservice.com/blog/archive/2006/11/22/negotiating-the-plone-security-maze</link>
            <description>&lt;p&gt;If, like me, you have been trying to resolve permission problems by checking and unchecking boxes in the ZMI Security tab in a trial-and-error fashion, there is in fact an easier way (I never doubted Plone for an instant :) )&lt;/p&gt;
&lt;ul class="simple"&gt;
&lt;li&gt;Before going to the Security tab, you should first find the &lt;em&gt;Actions&lt;/em&gt; tab for the process you want to control permissions for. By default, things like the top navigation tabs and the buttons at the bottom of the folder listing are controlled in the &lt;em&gt;Actions&lt;/em&gt; tab of &lt;em&gt;portal_actions&lt;/em&gt;.&lt;/li&gt;
&lt;li&gt;Things like the &lt;em&gt;edit&lt;/em&gt;, &lt;em&gt;properties&lt;/em&gt; and &lt;em&gt;sharing&lt;/em&gt; tabs are defined seperately for each item type in portal_types: i.e to access the actions for an image, one would go to &lt;em&gt;portal_types-&amp;gt;image&lt;/em&gt; and click on the &lt;em&gt;Actions&lt;/em&gt; tab. (The &lt;em&gt;Content&lt;/em&gt; tab is defined globally in &lt;em&gt;portal_actions&lt;/em&gt;).&lt;/li&gt;
&lt;li&gt;Scroll down to see the action you want to change the permissions for, and you will see the permission you need to change (there are cases where you might want to change this permission: for example, to stop object owners from accessing the &lt;em&gt;properties&lt;/em&gt; tab, you would have to change the permission from 'modify portal content' to something like 'manage properties' and restrict that permission).&lt;/li&gt;
&lt;/ul&gt;
</description>
            <pubDate>Wed, 22 Nov 2006 08:07:26 </pubDate>
            <guid>http://www.vasudevaservice.com/blog/archive/2006/11/22/negotiating-the-plone-security-maze</guid>
            <dc:creator>Shane Magee</dc:creator>
            
              <category>plone</category>
                          
            
         </item>
      
       
              
         <item>         
            <title>Plone Screencasts </title>
            <link>http://www.vasudevaservice.com/blog/archive/2006/11/17/plone-screencasts</link>
            <description>&lt;p&gt;Plone have some screencasts which are an excellent introduction to Plone and how it works&lt;/p&gt;
&lt;p&gt;&lt;a class="reference" href="http://plone.org/about/movies"&gt;Plone Videos&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Includes Screencast &lt;a class="reference" href="http://plone.org/about/movies"&gt;Editing with Plone&lt;/a&gt;&lt;/p&gt;
&lt;blockquote&gt;
&amp;quot;How to use the Plone content management system to edit both images and text in a site. Demonstrates Plone's built-in image manipulation and rescaling, as well as its rich text editing capabilities.&amp;quot; 12 mins&lt;/blockquote&gt;
</description>
            <pubDate>Fri, 17 Nov 2006 13:19:06 </pubDate>
            <guid>http://www.vasudevaservice.com/blog/archive/2006/11/17/plone-screencasts</guid>
            <dc:creator>Tejvan Pettinger</dc:creator>
            
              <category>plone</category>
                          
            
         </item>
      
       
              
         <item>         
            <title>4 Second Rule for Websites</title>
            <link>http://www.vasudevaservice.com/blog/archive/2006/11/17/4-second-rule-for-websites</link>
            <description>&lt;div class="line-block"&gt;
&lt;div class="line"&gt;&lt;br /&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;div class="section" id="users-abandon-sites-that-take-longer-than-4-seconds-to-load"&gt;
&lt;h3&gt;Users abandon sites that take longer than 4 seconds to load&lt;/h3&gt;
&lt;p&gt;Shoppers are likely to abandon a website if it takes longer than four seconds to load, a survey suggests.&lt;/p&gt;
&lt;p&gt;The research by Akamai revealed users' dwindling patience with websites that take time to show up.&lt;/p&gt;
&lt;p&gt;It found 75% of the 1,058 people asked would not return to websites that took longer than four seconds to load.&lt;/p&gt;
&lt;p&gt;More at &lt;a class="reference" href="http://news.bbc.co.uk/1/hi/technology/6131668.stm"&gt;BBC&lt;/a&gt;&lt;/p&gt;
&lt;/div&gt;
</description>
            <pubDate>Fri, 17 Nov 2006 10:57:11 </pubDate>
            <guid>http://www.vasudevaservice.com/blog/archive/2006/11/17/4-second-rule-for-websites</guid>
            <dc:creator>Tejvan Pettinger</dc:creator>
            
              <category>general</category>
                          
            
         </item>
      
       
              
         <item>         
            <title>CMFLinkChecker</title>
            <link>http://www.vasudevaservice.com/blog/archive/2006/11/16/cmflinkchecker</link>
            <description>&lt;p&gt;This promises to be a very useful tool for webmasters of large sites or sites with many users. Sure, one could always check broken links using server states, but by having a link checking mechanism in the UI you can let each user in a multi-user site be responsible for keeping their own section 404-free.&lt;/p&gt;
&lt;p&gt;The CMFlinkchecker program comes in two parts; the user interface (CMFLinkchecker) and the bit that actually crawls the site (LMS). These are distributed as two seperate programs. You can however, just install CMFLinkChecker and then go to 'link management' in plone preferences panel and register your website to access LMS on a server kindly provided by the authors somewhere over in Germany. After a couple of goes (the server might have benn down) I eventually got through and was given an id and password via email to enter in the 'link monitoring server fields' in the aforementioned 'link management' page. After that, I srolled down to the bottom of the page, hit 'crawl my site for all links', and got the ball rolling....&lt;/p&gt;
&lt;p&gt;For a small site (around 200 links), about 20% of the links were evalusted straight away, the rest were queued up on the server and were ready the next time I logged in. The process probably goes a lot faster if you have LMS installed on your own server.&lt;/p&gt;
</description>
            <pubDate>Thu, 16 Nov 2006 10:19:26 </pubDate>
            <guid>http://www.vasudevaservice.com/blog/archive/2006/11/16/cmflinkchecker</guid>
            <dc:creator>Shane Magee</dc:creator>
            
              <category>3rd-party-products</category>
                          
            
         </item>
      
       
              
         <item>         
            <title>Looking at LinguaPlone</title>
            <link>http://www.vasudevaservice.com/blog/archive/2006/11/14/looking-at-linguaplone</link>
            <description>&lt;p&gt;&lt;a class="reference" href="http://plone.org/products/linguaplone"&gt;LinguaPlone&lt;/a&gt; is the standard multilingual translation solution for Plone, and is used to generate translations of websites like &lt;a class="reference" href="http://www.oxfam.org"&gt;Oxfam&lt;/a&gt; .&lt;/p&gt;
&lt;p&gt;Upon first hearing of LinguaPlone, I was expecting a scenario where the whole page - page body, tabs, portlets, the lot - would obediently translate given the necessary words and a couple of clicks of the mouse. Then again, the open source community was not made for demanding types like me who expects everything without putting in some spadework himself (I am only making my first forays into Python now...:)  )&lt;/p&gt;
&lt;p&gt;What LinguaPlone offers (so far) is a very easy way to translate the page body. Simply choose what languages you are going to have your site in in Preferences (they are pretty much all there), do up a page in your default language, and access the 'translate' tab at the top of the document to translate into the language of your choice. In addition, uninstalling Linguaplone doesn't affect this translated content, it only removes the links between the different translations, which can be restored by reinstalling the product.&lt;/p&gt;
&lt;p&gt;All the same, it's a little hard to know if LinguaPlone offers all that much more convenience and functionality over manually creating new content for each language yourself. I'm sure it does, else it would not be so widely used, but the lack of decent documentation doesnt help much to illumine me. For example, a cool thing would be if LinguaPlone used the IP address of your computer to automatically serve you up the content in your own language - its a rather intuitive thing and one might reasonably expect a multilingual solution to have this facility. It's not an easy thing to test (unless you have access to a private plane), and so I dont really know if it does this.....&lt;/p&gt;
&lt;p&gt;(If my interest in Linguaplone persists over the next couple of months, I promise I will document answers as I find them here)&lt;/p&gt;
&lt;p&gt;One thing that would really enhance LinguaPlone, in my view, is if translated objects could inherit the properties of the original object. Perhaps I want to use a couple of portlets in left_slots: in current LinguaPlone, I put the portlets in for a page, but they are not there for their translated counterpart. Not everyone will want this of course, but it would be nice if it were included as an option, along with an option to automatically update translation properties if the default properties are changed. Perhaps all the contents of the ZMI properties tab could even be displayed in the 2-column 'translate' page, and the user could pick which ones he wants to keep.&lt;/p&gt;
&lt;p&gt;The top navigation bar tabs are a known issue with Plone multilingual sites, but if property inheritance were allowed the subsite feature of our &lt;a class="reference" href="/products/vscore"&gt;vsCore&lt;/a&gt; product could then be enabled for those sites whose tabs bear the names of the content they point to.&lt;/p&gt;
</description>
            <pubDate>Tue, 14 Nov 2006 17:06:36 </pubDate>
            <guid>http://www.vasudevaservice.com/blog/archive/2006/11/14/looking-at-linguaplone</guid>
            <dc:creator>Shane Magee</dc:creator>
            
              <category>3rd-party-products</category>
                          
            
         </item>
      
       
              
         <item>         
            <title>Mozilla 2.0</title>
            <link>http://www.vasudevaservice.com/blog/archive/2006/10/25/mozilla-2.0</link>
            <description>&lt;p&gt;This week &lt;a class="reference" href="http://www.mozilla.com/en-US/"&gt;Mozilla&lt;/a&gt; released the latest version of its popular Firefox browsers. Among the main benefits of Firefox 2.0 include:&lt;/p&gt;
&lt;div class="line-block"&gt;
&lt;div class="line"&gt;&lt;br /&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;ul class="simple"&gt;
&lt;li&gt;Enhanced security Features new anti-phishing functionality, (identify's scam sites)&lt;/li&gt;
&lt;li&gt;Improved tabbed browsing.&lt;/li&gt;
&lt;li&gt;Recovers your opened tabs if computer unexpectedly crashes. This will also save a half finished blog entry. - could be very useful.&lt;/li&gt;
&lt;li&gt;More efficient use of memory. (Old versions could be heavy on memory use, causing my relatively small memory computer to close down) It is also worth pointing out that it is often &amp;quot;add on&amp;quot; products which use a lot of memory. Mozilla are trying to encourage these developers to use less.&lt;/li&gt;
&lt;/ul&gt;
&lt;div class="line-block"&gt;
&lt;div class="line"&gt;&lt;br /&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;very slowly internet explorer seems to be catching up with mozilla in terms of features. IE 7 has (for the first time) tabbed browsing and also boasts improved security settings. It will be interesting to see whether Mozilla is able to gain more market share.&lt;/p&gt;
</description>
            <pubDate>Wed, 25 Oct 2006 13:55:48 </pubDate>
            <guid>http://www.vasudevaservice.com/blog/archive/2006/10/25/mozilla-2.0</guid>
            <dc:creator>Tejvan Pettinger</dc:creator>
            
              <category>mozilla</category>
                          
            
         </item>
      
       
              
         <item>         
            <title>How Viewers read a web page</title>
            <link>http://www.vasudevaservice.com/blog/archive/2006/10/21/how-viewers-read-a-web-page</link>
            <description>&lt;p&gt;Interesting blog entry about how viewers read a screen. &lt;a class="reference" href="http://www.typepad.com/t/trackback/4994214"&gt;What I learned from Eye Tracking&lt;/a&gt;  Using an eye tracking programme the video plots how people scan across a screen. Often people go quickly from one thing to the next. There is little evidence of people actually reading the text. Most people are scanning for a subheading or picture that interests them.&lt;/p&gt;
&lt;p&gt;See also &lt;a class="reference" href="http://www.problogger.net/archives/2006/05/31/lessons-from-eye-tracking/"&gt;Pro Blogger&lt;/a&gt;&lt;/p&gt;
&lt;div class="line-block"&gt;
&lt;div class="line"&gt;&lt;br /&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;div class="section" id="what-people-look-at"&gt;
&lt;h3&gt;What people look at:&lt;/h3&gt;
&lt;ul class="simple"&gt;
&lt;li&gt;Headings&lt;/li&gt;
&lt;li&gt;pictures (including thumbnail&lt;/li&gt;
&lt;li&gt;Buttons and Menus&lt;/li&gt;
&lt;li&gt;Lists are popular - blocks of text aren't.&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;
</description>
            <pubDate>Sat, 21 Oct 2006 18:02:21 </pubDate>
            <guid>http://www.vasudevaservice.com/blog/archive/2006/10/21/how-viewers-read-a-web-page</guid>
            <dc:creator>Tejvan Pettinger</dc:creator>
            
              <category>blogging</category>
            
            
              <category>design</category>
                          
            
         </item>
      
       
              
         <item>         
            <title>Good Documentation - some musings</title>
            <link>http://www.vasudevaservice.com/blog/archive/2006/10/19/good-documentation-some-musings</link>
            <description>&lt;p&gt;A 'speed is better than perfection' philosophy might be applied to many areas of life, but documentation is not one of them. Unfortunately the standard of documentation needed so that 90% of people can follow it is, well, 90% perfect.&lt;/p&gt;
&lt;p&gt;It actually doesnt take all that much longer to write good documentation once you sit back and think for a moment about what it was like when you had to perform the task for the first time yourself. Its no coincidence that much of the better documentation written on this site comes from things the documenter just recently found out how to do.&lt;/p&gt;
&lt;p&gt;Documentation doesnt have to be austere, the tone can be warm and conversational, especially if the user is not all that au fait with computers.&lt;/p&gt;
&lt;p&gt;However the most important things are still the obvious ones: check after each sentence and see if if you have relayed to the user exactly what he needs to do (and where to find things - screenshots can be of enormous help) and lastly, get your completely computer illiterate auntie/uncle/person-dragged-in-off-the-street to try using your documentation!&lt;/p&gt;
</description>
            <pubDate>Thu, 19 Oct 2006 11:07:45 </pubDate>
            <guid>http://www.vasudevaservice.com/blog/archive/2006/10/19/good-documentation-some-musings</guid>
            <dc:creator>Shane Magee</dc:creator>
            
              <category>documentation</category>
                          
            
         </item>
      
       
              
         <item>         
            <title>Two directives: sidebar and figure pt.2</title>
            <link>http://www.vasudevaservice.com/blog/archive/2006/10/14/two-directives-sidebar-and-figure-pt.2</link>
            <description>&lt;h2 class="title"&gt;Sidebars&lt;/h2&gt;
&lt;p&gt;We recently covered the use here of two very handy features of reStructured Text (reST): namely the &lt;strong&gt;sidebar&lt;/strong&gt; and &lt;strong&gt;figure&lt;/strong&gt; directives. Sidebars and figures are very useful features for adding additional content styles to documents using reST, for example web diaries created using the EasyBlog product...&lt;/p&gt;
</description>
            <pubDate>Sat, 14 Oct 2006 14:54:08 </pubDate>
            <guid>http://www.vasudevaservice.com/blog/archive/2006/10/14/two-directives-sidebar-and-figure-pt.2</guid>
            <dc:creator>John Gillespie</dc:creator>
            
              <category>restructuredtext</category>
                          
            
         </item>
      
       
              
         <item>         
            <title>Error reporting and screenshots</title>
            <link>http://www.vasudevaservice.com/blog/archive/2006/10/11/error-reporting-and-screenshots</link>
            <description>&lt;p&gt;Here is a very good article on bug reporting, discovered by Atmasamarpan:&lt;/p&gt;
&lt;p&gt;&lt;a class="reference" href="http://www.chiark.greenend.org.uk/~sgtatham/bugs.html"&gt;http://www.chiark.greenend.org.uk/~sgtatham/bugs.html&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;It certainly helped me sympathise with poor developers and curb my linguistic excesses when reporting problems.&lt;/p&gt;
&lt;p&gt;Whenever possible, screenshots really help to pinpoint the problem by making the developer or Plone admin see what you're seeing. Below are some instructions for screenshots for both Windows and Mac.....&lt;/p&gt;
&lt;div class="section" id="windows"&gt;
&lt;h3&gt;1. Windows&lt;/h3&gt;
&lt;p&gt;You can capture the screen and paste it into any graphics program: by pressing the 'print screen button' (up there somewhere to the right of F12). This appears to do nothing when you press it, but the screen is then stored in memory. One can then open any graphics program like Photoshop or even Microsoft Paint and paste in the image. (For Photoshop one should first create a new document)&lt;/p&gt;
&lt;p&gt;If you dont want to save the whole screen, pressing 'Alt' and 'Print Screen' together will capture only the window you have open.&lt;/p&gt;
&lt;p&gt;This is a slightly clumsy way to do it; there are freeware programs out there which do the job much quicker (and which personally I'm happy enough with, for example MWSnap) but I understand the words 'windows' + 'freeware' together can be enough to send a chill up the stoutest of spines......&lt;/p&gt;
&lt;/div&gt;
&lt;div class="section" id="mac"&gt;
&lt;h3&gt;2. Mac&lt;/h3&gt;
&lt;p&gt;The keyboard shortcuts are:&lt;/p&gt;
&lt;div class="line-block"&gt;
&lt;div class="line"&gt;&lt;em&gt;Apple-Shift-3&lt;/em&gt;: Capture the entire screen&lt;/div&gt;
&lt;div class="line"&gt;&lt;em&gt;Apple-Shift-4&lt;/em&gt;: Capture a self-selected portion of the screen&lt;/div&gt;
&lt;div class="line"&gt;&lt;em&gt;Apple-Shift-4&lt;/em&gt; then Space: Capture a window&lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;Both options automatically create an image for you named &amp;quot;Picture 1.png&amp;quot; on your desktop.&lt;/p&gt;
&lt;p&gt;There is also an application named &amp;quot;Grab&amp;quot; in the Utilities folder which allows screen captures with more options. Grabs features can also be accessed from the &amp;quot;File&amp;quot; menu within the application Preview.&lt;/p&gt;
&lt;p&gt;Further in-depth information on screen captures in Mac OSX 10.4 can be found here: &lt;a class="reference" href="http://www.macworld.com/weblogs/macgems/2005/09/tigerscreenshots/index.php"&gt;http://www.macworld.com/weblogs/macgems/2005/09/tigerscreenshots/index.php&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;(thanks to John-Paul for the info)&lt;/p&gt;
&lt;/div&gt;
</description>
            <pubDate>Wed, 11 Oct 2006 11:15:31 </pubDate>
            <guid>http://www.vasudevaservice.com/blog/archive/2006/10/11/error-reporting-and-screenshots</guid>
            <dc:creator>Shane Magee</dc:creator>
            
              <category>documentation</category>
                          
            
         </item>
      
       
              
         <item>         
            <title>More unearthed tips....</title>
            <link>http://www.vasudevaservice.com/blog/archive/2006/10/11/more-unearthed-tips</link>
            <description>&lt;p&gt;Again from my email clear out, I have found a few more tips, this time suggested by Priyadarshan.....&lt;/p&gt;
&lt;div class="section" id="drag-and-drop-item-reordering-in-plone-2-5"&gt;
&lt;h3&gt;Drag and drop item reordering in Plone 2.5&lt;/h3&gt;
&lt;p&gt;You can just reorder the order items have in a folder just by dragging and dropping them around. This is of course of great usefulness, since the order in a folder dictates the order in the navigation.&lt;/p&gt;
&lt;/div&gt;
&lt;div class="section" id="making-a-static-copy-of-a-plone-site"&gt;
&lt;h3&gt;Making a static copy of a Plone Site&lt;/h3&gt;
&lt;p&gt;This is an excellent recipe to make a static copy of a Plone site:
&lt;a class="reference" href="http://www.zopelabs.com/cookbook/1103609775"&gt;http://www.zopelabs.com/cookbook/1103609775&lt;/a&gt;&lt;/p&gt;
&lt;/div&gt;
&lt;div class="section" id="searching-for-code-in-google"&gt;
&lt;h3&gt;Searching for Code in Google&lt;/h3&gt;
&lt;p&gt;&lt;a class="reference" href="http://www.google.com/codesearch"&gt;http://www.google.com/codesearch&lt;/a&gt; allows searches for source code
on the web. Allows filtering for programming language, license etc.&lt;/p&gt;
&lt;/div&gt;
</description>
            <pubDate>Wed, 11 Oct 2006 11:06:25 </pubDate>
            <guid>http://www.vasudevaservice.com/blog/archive/2006/10/11/more-unearthed-tips</guid>
            <dc:creator>Shane Magee</dc:creator>
            
              <category>plone</category>
            
            
              <category>programming</category>
                          
            
         </item>
      
       
              
         <item>         
            <title>Plone Navigation and Google Images</title>
            <link>http://www.vasudevaservice.com/blog/archive/2006/10/10/plone-navigation-and-google-images</link>
            <description>&lt;p&gt;I was cleaning out my mail account today and discovered this rather interesting tip from Richard which he divulged to me decades ago...if you want to boost the standing of an image on your Plone site in Google Images, one way would be to make images viewable in navigation (via preferences -&amp;gt; navigation settings).&lt;/p&gt;
&lt;p&gt;This is by no means an aesthetic solution; however you can always use workflow to filter out images you do and don't want displayed in navigation.&lt;/p&gt;
</description>
            <pubDate>Tue, 10 Oct 2006 11:31:18 </pubDate>
            <guid>http://www.vasudevaservice.com/blog/archive/2006/10/10/plone-navigation-and-google-images</guid>
            <dc:creator>Shane Magee</dc:creator>
            
              <category>plone</category>
                          
            
         </item>
      
       
              
         <item>         
            <title>ReStructured Text Guide</title>
            <link>http://www.vasudevaservice.com/blog/archive/2006/10/06/restructured-text-guid</link>
            <description>&lt;div class="line-block"&gt;
&lt;div class="line"&gt;&lt;br /&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;Another &lt;a class="reference" href="/plone_basics/restructured-text"&gt;Guide to reStructured text&lt;/a&gt; which consists of the 7 functions I find most useful (plus three others which Shane found useful but was too lazy to write his own article).&lt;/p&gt;
&lt;p&gt;Not comprehensive but good to make a start.&lt;/p&gt;
&lt;div class="line-block"&gt;
&lt;div class="line"&gt;&lt;br /&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;Also, for a listing of links to other articles and guides on restructured text, see our  &lt;a class="reference" href="/blog/categories/restructuredtext"&gt;ReStructured Text blog category&lt;/a&gt;&lt;/p&gt;
</description>
            <pubDate>Fri, 06 Oct 2006 03:49:43 </pubDate>
            <guid>http://www.vasudevaservice.com/blog/archive/2006/10/06/restructured-text-guid</guid>
            <dc:creator>Tejvan Pettinger</dc:creator>
            
              <category>documentation</category>
            
            
              <category>restructuredtext</category>
                          
            
         </item>
      
       
              
         <item>         
            <title>Changing to reStructured Text</title>
            <link>http://www.vasudevaservice.com/blog/archive/2006/10/02/changing-to-restructured-text</link>
            <description>&lt;p&gt;We've written lofty paeans in praise of reStructured Text without bothering to tell people how to select it; we've now updated our &lt;a class="reference" href="/plone_basics/changing_your_content_editor"&gt;Changing your Content Editor&lt;/a&gt; page to do the needful...&lt;/p&gt;
&lt;p&gt;BTW, the excellent &lt;a class="reference" href="http://www.vasudevaservice.com/blog/archive/2006/09/18/restructuredtext-cheat-sheet"&gt;reStructured Text primer&lt;/a&gt; is a bit scarce on adding links; we've also updated the &lt;a class="reference" href="http://www.vasudevaservice.com/plone_basics/linking-to-other-pages"&gt;adding links&lt;/a&gt; page too...&lt;/p&gt;
</description>
            <pubDate>Mon, 02 Oct 2006 13:03:45 </pubDate>
            <guid>http://www.vasudevaservice.com/blog/archive/2006/10/02/changing-to-restructured-text</guid>
            <dc:creator>Shane Magee</dc:creator>
            
              <category>restructuredtext</category>
                          
            
         </item>
      
       
              
         <item>         
            <title>Polaroid effect using css and reST</title>
            <link>http://www.vasudevaservice.com/blog/archive/2006/10/02/polaroid-effect-using-css-and-rest</link>
            <description>&lt;p&gt;Those who are not familiar restructured text may initially bemoan it's lack of power and flexibility when compared to XHTML, but as often the case in life, initial appearances can be deceiving.&lt;/p&gt;
&lt;p&gt;Although the use of CSS for styling and presentation is &amp;quot;best practice&amp;quot; in XHTML, it is not yet mandatory, which allows anyone with knowledge of such &amp;quot;deprecated&amp;quot; tags as &amp;quot;align=center&amp;quot; or &amp;quot;font&amp;quot;, to &lt;em&gt;illegally&lt;/em&gt; wreck havoc with your beautiful CMS-based site.&lt;/p&gt;
&lt;p&gt;Outside of a mandatory 2 month course in basic XHTML and CSS, one solution which desperate webmasters have often deployed is to force site editors and contributors to work with WYSIWYG editors configured to strip out any and all illegal tags. Not only is this a somewhat draconian solution, and  immensely frustrating from a user point of view, but it still doesn't bring your site any closer to being beautifully or correctly formatted. Just not illegally so.&lt;/p&gt;
&lt;p&gt;And don't get me started on tables...&lt;/p&gt;
</description>
            <pubDate>Mon, 02 Oct 2006 06:59:50 </pubDate>
            <guid>http://www.vasudevaservice.com/blog/archive/2006/10/02/polaroid-effect-using-css-and-rest</guid>
            <dc:creator>John Gillespie</dc:creator>
            
              <category>restructuredtext</category>
                          
            
         </item>
      
       
              
         <item>         
            <title>Editing old pages in reSt</title>
            <link>http://www.vasudevaservice.com/blog/archive/2006/09/25/editing-old-pages</link>
            <description>&lt;p&gt;One problem with changing from HTML (or a content editor) to reStructured Text in Plone is that the text editor doesnt convert your old HTML docs to reStructured Text.&lt;/p&gt;
&lt;p&gt;However, my experience so far is that if you copy the text of the page (not the code), click on the edit tab, delete the HTML code and paste the content of the page back in, it does a pretty good job of keeping the layout of the page. Paragraphs, bullet points and numbered lists are largely mantained. Of course, links images and preformatted text all have to be put back, but what can you do...&lt;/p&gt;
</description>
            <pubDate>Mon, 25 Sep 2006 18:14:03 </pubDate>
            <guid>http://www.vasudevaservice.com/blog/archive/2006/09/25/editing-old-pages</guid>
            <dc:creator>Shane Magee</dc:creator>
            
              <category>restructuredtext</category>
                          
            
         </item>
      
       
              
         <item>         
            <title>Creating proper internal links</title>
            <link>http://www.vasudevaservice.com/blog/archive/2006/09/22/internal-links</link>
            <description>&lt;div class="section" id="internal-links"&gt;
&lt;h3&gt;Internal Links&lt;/h3&gt;
&lt;p&gt;Plone has been standardising internal links without a trailing slash &amp;quot;/&amp;quot; at the end. It is good to follow that standard, for both SEO reasons and data collection.&lt;/p&gt;
&lt;p&gt;Links to pages and images should be like this:&lt;/p&gt;
&lt;p&gt;/plone_basics/adding_internal_links, and &lt;strong&gt;NOT&lt;/strong&gt; like this:&lt;/p&gt;
&lt;p&gt;/plone_basics/adding_internal_links/ (in the first case, the terminating &amp;quot;/&amp;quot; is not there)&lt;/p&gt;
&lt;ul class="simple"&gt;
&lt;li&gt;See also &lt;a class="reference" href="/plone_basics"&gt;Plone Basics&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;We also have an updated page on &lt;a class="reference" href="/plone_basics/adding_internal_links"&gt;internal links&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Note 1: when linking in blog entries which can have different urls it is best to add the full link like e.g  /blog/archive/2006/08/26/atimage-tips&lt;/p&gt;
&lt;p&gt;Note 2: Plone wysiwyg content editors can automatically change the format of links to:
../../blog/e.t.c which is very bad. It is advisable to either use reStrucutredText, or Dreamweaver if you really need to use HTML still.&lt;/p&gt;
&lt;/div&gt;
&lt;div class="section" id="images"&gt;
&lt;h3&gt;Images&lt;/h3&gt;
&lt;p&gt;Images are the same:  .. image:: /images/vasudevaserver.gif&lt;/p&gt;
&lt;p&gt;This is bad: /images/vasudevaserver.gif/&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;The bottom line is: Never add a trailing slash!&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Also, please make sure images always have the type of file at the end (.jpg or .gif)&lt;/p&gt;
&lt;div align="center" class="align-center"&gt;&lt;img alt="vasudevaserver" class="align-center" src="/images/vasudevaserver.gif" /&gt;&lt;/div&gt;
&lt;/div&gt;
</description>
            <pubDate>Fri, 22 Sep 2006 10:05:40 </pubDate>
            <guid>http://www.vasudevaservice.com/blog/archive/2006/09/22/internal-links</guid>
            <dc:creator>Tejvan Pettinger</dc:creator>
            
              <category>plone</category>
            
            
              <category>documentation</category>
            
            
              <category>help</category>
                          
            
         </item>
      
       
              
         <item>         
            <title>Please read: "WYSIWYG Considered Harmful"</title>
            <link>http://www.vasudevaservice.com/blog/archive/2006/09/18/please-read-wysiwyg-considered-harmful</link>
            <description>&lt;p&gt;A really good article: &lt;a class="reference" href="http://kopsis.blogspot.com/2004/09/wysiwyg-considered-harmful.html"&gt;http://kopsis.blogspot.com/2004/09/wysiwyg-considered-harmful.html&lt;/a&gt;&lt;/p&gt;
</description>
            <pubDate>Mon, 18 Sep 2006 22:30:37 </pubDate>
            <guid>http://www.vasudevaservice.com/blog/archive/2006/09/18/please-read-wysiwyg-considered-harmful</guid>
            <dc:creator>Priyadarshan Bontempi</dc:creator>
            
              <category>restructuredtext</category>
                          
            
         </item>
      
       
              
         <item>         
            <title>A reStructuredText Primer</title>
            <link>http://www.vasudevaservice.com/blog/archive/2006/09/18/restructuredtext-cheat-sheet</link>
            <description>&lt;p&gt;This is an on-going post. Please forgive the &amp;quot;work-in-progress&amp;quot; feel.&lt;/p&gt;
&lt;div class="contents topic" id="contents"&gt;
&lt;p class="topic-title first"&gt;Contents&lt;/p&gt;
&lt;ul class="simple"&gt;
&lt;li&gt;&lt;a class="reference" href="#structure" id="id14"&gt;Structure&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a class="reference" href="#text-styles" id="id15"&gt;Text styles&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a class="reference" href="#lists" id="id16"&gt;Lists&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a class="reference" href="#preformatting-code-samples" id="id17"&gt;Preformatting (code samples)&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a class="reference" href="#sections" id="id18"&gt;Sections&lt;/a&gt;&lt;ul&gt;
&lt;li&gt;&lt;a class="reference" href="#document-title-subtitle" id="id19"&gt;Document Title / Subtitle&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a class="reference" href="#images" id="id20"&gt;Images&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a class="reference" href="#what-next" id="id21"&gt;What Next?&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;
&lt;p&gt;The text below contains links that look like &amp;quot;(&lt;a class="reference" href="quickref.html"&gt;quickref&lt;/a&gt;)&amp;quot;.  These
are relative links that point to the &lt;a class="reference" href="quickref.html"&gt;Quick reStructuredText&lt;/a&gt; user
reference.  If these links don't work, please refer to the &lt;a class="reference" href="http://docutils.sourceforge.net/docs/user/rst/quickref.html"&gt;master
quick reference&lt;/a&gt; document.&lt;/p&gt;
&lt;div class="section" id="structure"&gt;
&lt;h3&gt;&lt;a class="toc-backref" href="#id14"&gt;Structure&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;From the outset, let me say that &amp;quot;Structured Text&amp;quot; is probably a bit
of a misnomer.  It's more like &amp;quot;Relaxed Text&amp;quot; that uses certain
consistent patterns.  These patterns are interpreted by a HTML
converter to produce &amp;quot;Very Structured Text&amp;quot; that can be used by a web
browser.&lt;/p&gt;
&lt;p&gt;The most basic pattern recognised is a &lt;strong&gt;paragraph&lt;/strong&gt; (&lt;a class="reference" href="quickref.html#paragraphs"&gt;quickref&lt;/a&gt;).
That's a chunk of text that is separated by blank lines (one is
enough).  Paragraphs must have the same indentation -- that is, line
up at their left edge.  Paragraphs that start indented will result in
indented quote paragraphs. For example:&lt;/p&gt;
&lt;pre class="literal-block"&gt;
This is a paragraph.  It's quite
short.

   This paragraph will result in an indented block of
   text, typically used for quoting other text.

This is another one.
&lt;/pre&gt;
&lt;p&gt;Results in:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;This is a paragraph.  It's quite
short.&lt;/p&gt;
&lt;blockquote&gt;
This paragraph will result in an indented block of
text, typically used for quoting other text.&lt;/blockquote&gt;
&lt;p&gt;This is another one.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;/div&gt;
&lt;div class="section" id="text-styles"&gt;
&lt;h3&gt;&lt;a class="toc-backref" href="#id15"&gt;Text styles&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;(&lt;a class="reference" href="quickref.html#inline-markup"&gt;quickref&lt;/a&gt;)&lt;/p&gt;
&lt;p&gt;Inside paragraphs and other bodies of text, you may additionally mark
text for &lt;em&gt;italics&lt;/em&gt; with &amp;quot;&lt;tt class="docutils literal"&gt;&lt;span class="pre"&gt;*italics*&lt;/span&gt;&lt;/tt&gt;&amp;quot; or &lt;strong&gt;bold&lt;/strong&gt; with
&amp;quot;&lt;tt class="docutils literal"&gt;&lt;span class="pre"&gt;**bold**&lt;/span&gt;&lt;/tt&gt;&amp;quot;.&lt;/p&gt;
&lt;p&gt;If you want something to appear as a fixed-space literal, use
&amp;quot;&lt;tt class="docutils literal"&gt;&lt;span class="pre"&gt;``double&lt;/span&gt; &lt;span class="pre"&gt;back-quotes``&lt;/span&gt;&lt;/tt&gt;&amp;quot;.  Note that no further fiddling is done
inside the double back-quotes -- so asterisks &amp;quot;&lt;tt class="docutils literal"&gt;&lt;span class="pre"&gt;*&lt;/span&gt;&lt;/tt&gt;&amp;quot; etc. are left
alone.&lt;/p&gt;
&lt;p&gt;If you find that you want to use one of the &amp;quot;special&amp;quot; characters in
text, it will generally be OK -- reStructuredText is pretty smart.
For example, this * asterisk is handled just fine.  If you actually
want text *surrounded by asterisks* to &lt;strong&gt;not&lt;/strong&gt; be italicised, then
you need to indicate that the asterisk is not special.  You do this by
placing a backslash just before it, like so &amp;quot;&lt;tt class="docutils literal"&gt;&lt;span class="pre"&gt;\*&lt;/span&gt;&lt;/tt&gt;&amp;quot; (&lt;a class="reference" href="quickref.html#escaping"&gt;quickref&lt;/a&gt;), or
by enclosing it in double back-quotes (inline literals), like this:&lt;/p&gt;
&lt;pre class="literal-block"&gt;
``\*``
&lt;/pre&gt;
&lt;/div&gt;
&lt;div class="section" id="lists"&gt;
&lt;h3&gt;&lt;a class="toc-backref" href="#id16"&gt;Lists&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;Lists of items come in three main flavours: &lt;strong&gt;enumerated&lt;/strong&gt;,
&lt;strong&gt;bulleted&lt;/strong&gt; and &lt;strong&gt;definitions&lt;/strong&gt;.  In all list cases, you may have as
many paragraphs, sublists, etc. as you want, as long as the left-hand
side of the paragraph or whatever aligns with the first line of text
in the list item.&lt;/p&gt;
&lt;p&gt;Lists must always start a new paragraph -- that is, they must appear
after a blank line.&lt;/p&gt;
&lt;dl class="docutils"&gt;
&lt;dt&gt;&lt;strong&gt;bulleted&lt;/strong&gt; lists (&lt;a class="reference" href="quickref.html#bullet-lists"&gt;quickref&lt;/a&gt;)&lt;/dt&gt;
&lt;dd&gt;&lt;p class="first"&gt;Just like enumerated lists, start the line off with a bullet point
character - either &amp;quot;-&amp;quot;, &amp;quot;+&amp;quot; or &amp;quot;*&amp;quot;:&lt;/p&gt;
&lt;pre class="literal-block"&gt;
* a bullet point using &amp;quot;*&amp;quot;

  - a sub-list using &amp;quot;-&amp;quot;

    + yet another sub-list

  - another item
&lt;/pre&gt;
&lt;p&gt;Results in:&lt;/p&gt;
&lt;ul class="last simple"&gt;
&lt;li&gt;a bullet point using &amp;quot;*&amp;quot;&lt;ul&gt;
&lt;li&gt;a sub-list using &amp;quot;-&amp;quot;&lt;ul&gt;
&lt;li&gt;yet another sub-list&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;another item&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/dd&gt;
&lt;dt&gt;&lt;strong&gt;definition&lt;/strong&gt; lists (&lt;a class="reference" href="quickref.html#definition-lists"&gt;quickref&lt;/a&gt;)&lt;/dt&gt;
&lt;dd&gt;&lt;p class="first"&gt;Unlike the other two, the definition lists consist of a term, and
the definition of that term.  The format of a definition list is:&lt;/p&gt;
&lt;pre class="literal-block"&gt;
what
  Definition lists associate a term with a definition.

*how*
  The term is a one-line phrase, and the definition is one or more
  paragraphs or body elements, indented relative to the term.
  Blank lines are not allowed between term and definition.
&lt;/pre&gt;
&lt;p&gt;Results in:&lt;/p&gt;
&lt;dl class="last docutils"&gt;
&lt;dt&gt;what&lt;/dt&gt;
&lt;dd&gt;Definition lists associate a term with a definition.&lt;/dd&gt;
&lt;dt&gt;&lt;em&gt;how&lt;/em&gt;&lt;/dt&gt;
&lt;dd&gt;The term is a one-line phrase, and the definition is one or more
paragraphs or body elements, indented relative to the term.
Blank lines are not allowed between term and definition.&lt;/dd&gt;
&lt;/dl&gt;
&lt;/dd&gt;
&lt;/dl&gt;
&lt;/div&gt;
&lt;div class="section" id="preformatting-code-samples"&gt;
&lt;h3&gt;&lt;a class="toc-backref" href="#id17"&gt;Preformatting (code samples)&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;(&lt;a class="reference" href="quickref.html#literal-blocks"&gt;quickref&lt;/a&gt;)&lt;/p&gt;
&lt;p&gt;To just include a chunk of preformatted, never-to-be-fiddled-with
text, finish the prior paragraph with &amp;quot;&lt;tt class="docutils literal"&gt;&lt;span class="pre"&gt;::&lt;/span&gt;&lt;/tt&gt;&amp;quot;.  The preformatted
block is finished when the text falls back to the same indentation
level as a paragraph prior to the preformatted block.  For example:&lt;/p&gt;
&lt;pre class="literal-block"&gt;
An example::

    Whitespace, newlines, blank lines, and all kinds of markup
      (like *this* or \this) is preserved by literal blocks.
  Lookie here, I've dropped an indentation level
  (but not far enough)

no more example
&lt;/pre&gt;
&lt;p&gt;Results in:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;An example:&lt;/p&gt;
&lt;pre class="literal-block"&gt;
  Whitespace, newlines, blank lines, and all kinds of markup
    (like *this* or \this) is preserved by literal blocks.
Lookie here, I've dropped an indentation level
(but not far enough)
&lt;/pre&gt;
&lt;p&gt;no more example&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Note that if a paragraph consists only of &amp;quot;&lt;tt class="docutils literal"&gt;&lt;span class="pre"&gt;::&lt;/span&gt;&lt;/tt&gt;&amp;quot;, then it's removed
from the output:&lt;/p&gt;
&lt;pre class="literal-block"&gt;
::

    This is preformatted text, and the
    last &amp;quot;::&amp;quot; paragraph is removed
&lt;/pre&gt;
&lt;p&gt;Results in:&lt;/p&gt;
&lt;pre class="literal-block"&gt;
This is preformatted text, and the
last &amp;quot;::&amp;quot; paragraph is removed
&lt;/pre&gt;
&lt;/div&gt;
&lt;div class="section" id="sections"&gt;
&lt;h3&gt;&lt;a class="toc-backref" href="#id18"&gt;Sections&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;(&lt;a class="reference" href="quickref.html#section-structure"&gt;quickref&lt;/a&gt;)&lt;/p&gt;
&lt;p&gt;To break longer text up into sections, you use &lt;strong&gt;section headers&lt;/strong&gt;.
These are a single line of text (one or more words) with adornment: an
underline alone, or an underline and an overline together, in dashes
&amp;quot;&lt;tt class="docutils literal"&gt;&lt;span class="pre"&gt;-----&lt;/span&gt;&lt;/tt&gt;&amp;quot;, equals &amp;quot;&lt;tt class="docutils literal"&gt;&lt;span class="pre"&gt;======&lt;/span&gt;&lt;/tt&gt;&amp;quot;, tildes &amp;quot;&lt;tt class="docutils literal"&gt;&lt;span class="pre"&gt;~~~~~~&lt;/span&gt;&lt;/tt&gt;&amp;quot; or any of the
non-alphanumeric characters &lt;tt class="docutils literal"&gt;&lt;span class="pre"&gt;=&lt;/span&gt; &lt;span class="pre"&gt;-&lt;/span&gt; &lt;span class="pre"&gt;`&lt;/span&gt; &lt;span class="pre"&gt;:&lt;/span&gt; &lt;span class="pre"&gt;'&lt;/span&gt; &lt;span class="pre"&gt;&amp;quot;&lt;/span&gt; &lt;span class="pre"&gt;~&lt;/span&gt; &lt;span class="pre"&gt;^&lt;/span&gt; &lt;span class="pre"&gt;_&lt;/span&gt; &lt;span class="pre"&gt;*&lt;/span&gt; &lt;span class="pre"&gt;+&lt;/span&gt; &lt;span class="pre"&gt;#&lt;/span&gt; &lt;span class="pre"&gt;&amp;lt;&lt;/span&gt; &lt;span class="pre"&gt;&amp;gt;&lt;/span&gt;&lt;/tt&gt; that you
feel comfortable with.  An underline-only adornment is distinct from
an overline-and-underline adornment using the same character.  The
underline/overline must be at least as long as the title text.  Be
consistent, since all sections marked with the same adornment style
are deemed to be at the same level:&lt;/p&gt;
&lt;pre class="literal-block"&gt;
Chapter 1 Title
===============

Section 1.1 Title
-----------------

Subsection 1.1.1 Title
~~~~~~~~~~~~~~~~~~~~~~

Section 1.2 Title
-----------------

Chapter 2 Title
===============
&lt;/pre&gt;
&lt;p&gt;This results in the following structure, illustrated by simplified
pseudo-XML:&lt;/p&gt;
&lt;pre class="literal-block"&gt;
&amp;lt;section&amp;gt;
    &amp;lt;title&amp;gt;
        Chapter 1 Title
    &amp;lt;section&amp;gt;
        &amp;lt;title&amp;gt;
            Section 1.1 Title
        &amp;lt;section&amp;gt;
            &amp;lt;title&amp;gt;
                Subsection 1.1.1 Title
    &amp;lt;section&amp;gt;
        &amp;lt;title&amp;gt;
            Section 1.2 Title
&amp;lt;section&amp;gt;
    &amp;lt;title&amp;gt;
        Chapter 2 Title
&lt;/pre&gt;
&lt;p&gt;(Pseudo-XML uses indentation for nesting and has no end-tags.  It's
not possible to show actual processed output, as in the other
examples, because sections cannot exist inside block quotes.  For a
concrete example, compare the section structure of this document's
source text and processed output.)&lt;/p&gt;
&lt;p&gt;Note that section headers are available as link targets, just using
their name.  To link to the &lt;a class="reference" href="#lists"&gt;Lists&lt;/a&gt; heading, I write &amp;quot;&lt;tt class="docutils literal"&gt;&lt;span class="pre"&gt;Lists_&lt;/span&gt;&lt;/tt&gt;&amp;quot;.  If
the heading has a space in it like &lt;a class="reference" href="#text-styles"&gt;text styles&lt;/a&gt;, we need to quote
the heading &amp;quot;&lt;tt class="docutils literal"&gt;&lt;span class="pre"&gt;`text&lt;/span&gt; &lt;span class="pre"&gt;styles`_&lt;/span&gt;&lt;/tt&gt;&amp;quot;.&lt;/p&gt;
&lt;div class="section" id="document-title-subtitle"&gt;
&lt;h4&gt;&lt;a class="toc-backref" href="#id19"&gt;Document Title / Subtitle&lt;/a&gt;&lt;/h4&gt;
&lt;p&gt;The title of the whole document is distinct from section titles and
may be formatted somewhat differently (e.g. the HTML writer by default
shows it as a centered heading).&lt;/p&gt;
&lt;p&gt;To indicate the document title in reStructuredText, use a unique adornment
style at the beginning of the document.  To indicate the document subtitle,
use another unique adornment style immediately after the document title.  For
example:&lt;/p&gt;
&lt;pre class="literal-block"&gt;
================
 Document Title
================
----------
 Subtitle
----------

Section Title
=============

...
&lt;/pre&gt;
&lt;p&gt;Note t