<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DZone Snippets: seo code</title>
    <link>http://snippets.dzone.com/posts</link>
    <pubDate>Sun, 18 May 2008 04:19:50 GMT</pubDate>
    <description>DZone Snippets: seo code</description>
    <item>
      <title>Make your model play nice with SEO</title>
      <link>http://snippets.dzone.com/posts/show/4967</link>
      <description>&lt;code&gt;&lt;br /&gt;## config/initializers/string_extensions.rb&lt;br /&gt;&lt;br /&gt;require 'unicode'&lt;br /&gt;&lt;br /&gt;class String&lt;br /&gt;  def to_slug&lt;br /&gt;    str = Unicode.normalize_KD(self).gsub(/[^\x00-\x7F]/n,'')&lt;br /&gt;    str = str.gsub(/\W+/, '-').gsub(/^-+/,'').gsub(/-+$/,'').downcase&lt;br /&gt;  end&lt;br /&gt;&lt;br /&gt;  def numeric?&lt;br /&gt;    if self =~ /^\d+$/&lt;br /&gt;      self.to_i&lt;br /&gt;    elsif self =~ /^\d+([,\.]\d+)?$/&lt;br /&gt;      self.tr(',','.').to_f&lt;br /&gt;    else&lt;br /&gt;      false&lt;br /&gt;    end&lt;br /&gt;  end&lt;br /&gt;end&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;## app/models/article.rb&lt;br /&gt;&lt;br /&gt;# string :title&lt;br /&gt;# text   :body&lt;br /&gt;# string :permalink&lt;br /&gt;class Article &lt; ActiveRecord::Base&lt;br /&gt;  before_save :set_permalink&lt;br /&gt;&lt;br /&gt;  # article_path(@article)&lt;br /&gt;  # &gt;&gt; /article/5&lt;br /&gt;  # article_path(@article.permalink)&lt;br /&gt;  # /article/pink-ferret&lt;br /&gt;  def self.find(*args)&lt;br /&gt;    if args.first.is_a?(String) and !args.first.numeric?&lt;br /&gt;      find_by_permalink(args.shift,*args) or raise ActiveRecord::RecordNotFound&lt;br /&gt;    else&lt;br /&gt;      super&lt;br /&gt;    end&lt;br /&gt;  end&lt;br /&gt;&lt;br /&gt;  # article_path(@article)&lt;br /&gt;  # &gt;&gt; /article/5-pink-ferret&lt;br /&gt;  def to_param&lt;br /&gt;    "#{id}-#{permalink}"&lt;br /&gt;  end&lt;br /&gt;&lt;br /&gt;  private&lt;br /&gt;  def set_permalink&lt;br /&gt;    self.permalink = title.to_slug&lt;br /&gt;  end&lt;br /&gt;end&lt;br /&gt;&lt;/code&gt;</description>
      <pubDate>Wed, 09 Jan 2008 15:13:08 GMT</pubDate>
      <guid>http://snippets.dzone.com/posts/show/4967</guid>
      <author>jerome ()</author>
    </item>
    <item>
      <title>Create strings for SEO-friendly URLs</title>
      <link>http://snippets.dzone.com/posts/show/4579</link>
      <description>this method returns string, which is perfect for SEO-friendly URLs. &lt;br /&gt;&lt;br /&gt;features: &lt;br /&gt;- converts every improper character to a hyphen&lt;br /&gt;- returns a lowercase string&lt;br /&gt;&lt;br /&gt;I POSTED AN EVEN BETTER METHOD ON MY BLOG: http://tinyurl.com/2vurbq&lt;br /&gt;&lt;br /&gt;&lt;code&gt;&lt;br /&gt;def create_callname (title)&lt;br /&gt;	title.downcase.gsub(/[^a-z0-9]+/i, '-')&lt;br /&gt;end&lt;br /&gt;&lt;/code&gt;</description>
      <pubDate>Thu, 27 Sep 2007 11:53:58 GMT</pubDate>
      <guid>http://snippets.dzone.com/posts/show/4579</guid>
      <author>labuschin (Martin Labuschin)</author>
    </item>
    <item>
      <title>Google PageRank Ruby Checker</title>
      <link>http://snippets.dzone.com/posts/show/3284</link>
      <description>&lt;code&gt;&lt;br /&gt;#!/usr/bin/env ruby&lt;br /&gt;# -*- coding: utf-8 -*-&lt;br /&gt;# $Id: google-pr.rb,v b205c14e4ef5 2007-01-15 13:53 +0300 $&lt;br /&gt;# (C) 2006-2007 under terms of LGPL v2.1 &lt;br /&gt;# by Vsevolod S. Balashov &lt;vsevolod@balashov.name&gt;&lt;br /&gt;# based on 3rd party code snippets (see comments)&lt;br /&gt;&lt;br /&gt;require 'uri'&lt;br /&gt;require 'open-uri'&lt;br /&gt;&lt;br /&gt;module SEO&lt;br /&gt;&lt;br /&gt;  # http://blog.outer-court.com/archive/2004_06_27_index.html#108834386239051706&lt;br /&gt;  class GooglePR&lt;br /&gt;&lt;br /&gt;    def initialize(uri)&lt;br /&gt;      @uri = uri&lt;br /&gt;    end&lt;br /&gt;&lt;br /&gt;    M=0x100000000 # modulo for unsigned int 32bit(4byte)&lt;br /&gt;&lt;br /&gt;    def m1(a,b,c,d)&lt;br /&gt;      (((a+(M-b)+(M-c))%M)^(d%M))%M # mix/power mod&lt;br /&gt;    end&lt;br /&gt;&lt;br /&gt;    def i2c(i)&lt;br /&gt;      [i&amp;0xff, i&gt;&gt;8&amp;0xff, i&gt;&gt;16&amp;0xff, i&gt;&gt;24&amp;0xff]&lt;br /&gt;    end&lt;br /&gt;&lt;br /&gt;    def c2i(s,k=0)&lt;br /&gt;      ((s[k+3].to_i*0x100+s[k+2].to_i)*0x100+s[k+1].to_i)*0x100+s[k].to_i&lt;br /&gt;    end&lt;br /&gt;&lt;br /&gt;    def mix(a,b,c)&lt;br /&gt;      a = a%M; b = b%M; c = c%M&lt;br /&gt;      a = m1(a,b,c, c &gt;&gt; 13); b = m1(b,c,a, a &lt;&lt;  8); c = m1(c,a,b, b &gt;&gt; 13)&lt;br /&gt;      a = m1(a,b,c, c &gt;&gt; 12); b = m1(b,c,a, a &lt;&lt; 16); c = m1(c,a,b, b &gt;&gt;  5)&lt;br /&gt;      a = m1(a,b,c, c &gt;&gt;  3); b = m1(b,c,a, a &lt;&lt; 10); c = m1(c,a,b, b &gt;&gt; 15)&lt;br /&gt;      [a, b, c]&lt;br /&gt;    end&lt;br /&gt;&lt;br /&gt;    def old_cn(iurl = 'info:' + @uri)&lt;br /&gt;      a = 0x9E3779B9; b = 0x9E3779B9; c = 0xE6359A60&lt;br /&gt;      len = iurl.size &lt;br /&gt;      k = 0&lt;br /&gt;      while (len &gt;= k + 12) do&lt;br /&gt;        a += c2i(iurl,k); b += c2i(iurl,k+4); c += c2i(iurl,k+8)&lt;br /&gt;        a, b, c = mix(a, b, c)&lt;br /&gt;        k = k + 12&lt;br /&gt;      end&lt;br /&gt;      a += c2i(iurl,k); b += c2i(iurl,k+4); c += (c2i(iurl,k+8) &lt;&lt; 8) + len&lt;br /&gt;      a,b,c = mix(a,b,c)&lt;br /&gt;      return c&lt;br /&gt;    end&lt;br /&gt;&lt;br /&gt;    def cn&lt;br /&gt;      ch = old_cn&lt;br /&gt;      ch = ((ch/7) &lt;&lt; 2) | ((ch-(ch/13).floor*13)&amp;7)&lt;br /&gt;      new_url = []&lt;br /&gt;      20.times { i2c(ch).each { |i| new_url &lt;&lt; i }; ch -= 9 }&lt;br /&gt;      ('6' + old_cn(new_url).to_s).to_i&lt;br /&gt;    end&lt;br /&gt;&lt;br /&gt;    def request_uri&lt;br /&gt;      # http://www.bigbold.com/snippets/posts/show/1260 + _ -&gt; %5F&lt;br /&gt;      "http://toolbarqueries.google.com/search?client=navclient-auto&amp;hl=en&amp;ch=#{cn}&amp;ie=UTF-8&amp;oe=UTF-8&amp;features=Rank&amp;q=info:#{URI.escape(@uri, /[^-.!~*'()a-zA-Z\d]/)}"&lt;br /&gt;    end&lt;br /&gt; &lt;br /&gt;    def page_rank(uri = @uri)&lt;br /&gt;      @uri = uri if uri != @uri&lt;br /&gt;      open(request_uri) { |f| return $1.to_i if f.string =~ /Rank_1:\d:(\d+)/ }&lt;br /&gt;      nil&lt;br /&gt;    end&lt;br /&gt;&lt;br /&gt;    private :m1, :i2c, :c2i, :mix, :old_cn&lt;br /&gt;    attr_accessor :uri&lt;br /&gt;  end&lt;br /&gt;&lt;br /&gt;end&lt;br /&gt;&lt;br /&gt;if __FILE__ == $0 and 1 == ARGV.size&lt;br /&gt;  puts SEO::GooglePR.new(ARGV[0]).page_rank&lt;br /&gt;end&lt;br /&gt;&lt;/code&gt;</description>
      <pubDate>Mon, 15 Jan 2007 15:59:31 GMT</pubDate>
      <guid>http://snippets.dzone.com/posts/show/3284</guid>
      <author>sevkin (Vsevolod Balashov)</author>
    </item>
    <item>
      <title>geourl</title>
      <link>http://snippets.dzone.com/posts/show/2605</link>
      <description>// add website to geourl&lt;br /&gt;// long desciption on http://geourl.org/add.html&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;code&gt;&lt;br /&gt;#1 get coordinates&lt;br /&gt;&lt;br /&gt;#2 add meta tags to head&lt;br /&gt;&lt;meta name="ICBM" content="XXX.XXXXX, YYY.YYYYY"&gt;&lt;br /&gt;&lt;meta name="DC.title" content="THE NAME OF YOUR SITE"&gt;&lt;br /&gt;&lt;br /&gt;#3 ping http://geourl.org/ping/&lt;br /&gt;&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;// lots of backlinks&lt;br /&gt;// but no change in pagerank (in 3 month)</description>
      <pubDate>Sat, 16 Sep 2006 19:36:02 GMT</pubDate>
      <guid>http://snippets.dzone.com/posts/show/2605</guid>
      <author>ovhaag (Oliver Haag)</author>
    </item>
    <item>
      <title>301 example.com to www.example.com</title>
      <link>http://snippets.dzone.com/posts/show/220</link>
      <description>&lt;code&gt;RewriteEngine On&lt;br /&gt;&lt;br /&gt;RewriteCond %{HTTP_HOST} !^(.*)\.example\.com$ [NC]&lt;br /&gt;RewriteRule ^(.*)$ http://www.example.com/$1 [R=301,L]&lt;/code&gt;</description>
      <pubDate>Sat, 23 Apr 2005 18:01:08 GMT</pubDate>
      <guid>http://snippets.dzone.com/posts/show/220</guid>
      <author>Syam (Syam Kumar R.)</author>
    </item>
  </channel>
</rss>
