<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DZone Snippets: rewriting code</title>
    <link>http://snippets.dzone.com/posts</link>
    <pubDate>Sat, 17 May 2008 23:40:18 GMT</pubDate>
    <description>DZone Snippets: rewriting code</description>
    <item>
      <title>Redirect all HTTP requests to HTTPS with ISAPI Rewrite</title>
      <link>http://snippets.dzone.com/posts/show/3866</link>
      <description>To redirect all HTTP requests to HTTPS with ISAPI Rewrite you can use the following rewriting rules in your httpd.ini file:&lt;br /&gt;&lt;br /&gt;&lt;code&gt;&lt;br /&gt;# redirect all http requests  to https&lt;br /&gt;RewriteCond  %HTTPS (?!on).*&lt;br /&gt;RewriteCond Host: (.*)&lt;br /&gt;RewriteRule (.*) https\://$1$2 [I,RP]&lt;br /&gt;&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;Thanks to &lt;a href="http://www.ivanuzunov.net/" title="Ivan Uzunov"&gt;Ivan Uzunov&lt;/a&gt;</description>
      <pubDate>Tue, 24 Apr 2007 08:25:44 GMT</pubDate>
      <guid>http://snippets.dzone.com/posts/show/3866</guid>
      <author>volume4 (Schalk Neethling)</author>
    </item>
    <item>
      <title>Text synonymizer in Perl - unintelligent text rewriter</title>
      <link>http://snippets.dzone.com/posts/show/1915</link>
      <description>Very scrappy and silly, but you get some funny results. It uses the great Lingua::EN::Tagger for POS (Parts of Speech) tagging.&lt;br /&gt;&lt;br /&gt;&lt;code&gt;use WordNet::QueryData;&lt;br /&gt;use Lingua::EN::Tagger;&lt;br /&gt;&lt;br /&gt;my $t = new Lingua::EN::Tagger;&lt;br /&gt;my $wn = WordNet::QueryData-&gt;new;&lt;br /&gt;&lt;br /&gt;my $text;&lt;br /&gt;&lt;br /&gt;open (FH, "&lt;" . $ARGV[0]);&lt;br /&gt;while (&lt;FH&gt;) { $text .= $_; }&lt;br /&gt;close (FH);&lt;br /&gt;&lt;br /&gt;my $tagged = $t-&gt;add_tags($text);&lt;br /&gt;&lt;br /&gt;while ($tagged =~ /\&lt;(.+?)\&gt;(\w+)\&lt;.+?\&gt;/g) {&lt;br /&gt;        my $sense = $1;&lt;br /&gt;        my $word = $2;&lt;br /&gt;        my $newsense = "";&lt;br /&gt;        $newsense = "n" if ($sense =~ /nn/i);&lt;br /&gt;        $newsense = "a" if ($sense =~ /jj/i);&lt;br /&gt;        $newsense = "v" if ($sense =~ /vb/i);&lt;br /&gt;        if ($newsense) {&lt;br /&gt;                foreach ($wn-&gt;querySense($word . "#" . $newsense . "#1" , "syns")) {&lt;br /&gt;                        s/\#.+//;&lt;br /&gt;                        next if (/$word/);&lt;br /&gt;                        $text =~ s/$word/$_/;&lt;br /&gt;                        last;&lt;br /&gt;                }&lt;br /&gt;        }&lt;br /&gt;&lt;br /&gt;};&lt;br /&gt;&lt;br /&gt;print $text;&lt;br /&gt;exit;&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;Or to do it to a Web page / URL, use HTML::Parser like so:&lt;br /&gt;&lt;br /&gt;&lt;code&gt;use WordNet::QueryData;&lt;br /&gt;use Lingua::EN::Tagger;&lt;br /&gt;use HTML::Parser;&lt;br /&gt;use LWP::Simple;&lt;br /&gt;&lt;br /&gt;my $t = new Lingua::EN::Tagger;&lt;br /&gt;my $wn = WordNet::QueryData-&gt;new;&lt;br /&gt;my $p = HTML::Parser-&gt;new( text_h =&gt; [\&amp;text, "text"] );&lt;br /&gt;&lt;br /&gt;$p-&gt;parse(get("http://www.petercooper.co.uk/"));&lt;br /&gt;&lt;br /&gt;exit;&lt;br /&gt;&lt;br /&gt;sub text {&lt;br /&gt;        my $text = shift;&lt;br /&gt;        $text =~ s/\s+/\ /g;&lt;br /&gt;        if ($text =~ /\w{5}/) {        &lt;br /&gt;                print "WAS: " . $text . "\n\n";&lt;br /&gt;                print "BECOMES: " . &amp;synonymize($text) . "\n\n\n\n";&lt;br /&gt;        }&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;sub synonymize {&lt;br /&gt;        my $text = shift;&lt;br /&gt;&lt;br /&gt;        my $tagged = $t-&gt;add_tags($text);&lt;br /&gt;&lt;br /&gt;        while ($tagged =~ /\&lt;(.+?)\&gt;(\w+)\&lt;.+?\&gt;/g) {&lt;br /&gt;        my $sense = $1;&lt;br /&gt;        my $word = $2;&lt;br /&gt;        my $newsense = "";&lt;br /&gt;        $newsense = "n" if ($sense =~ /nn/i);&lt;br /&gt;        $newsense = "a" if ($sense =~ /jj/i);&lt;br /&gt;        $newsense = "v" if ($sense =~ /vb/i);&lt;br /&gt;        if ($newsense) {&lt;br /&gt;                foreach ($wn-&gt;querySense($word . "#" . $newsense . "#1" , "syns")) {&lt;br /&gt;                        s/\#.+//;&lt;br /&gt;                        next if (/$word/);&lt;br /&gt;                        $text =~ s/$word/$_/;&lt;br /&gt;                        last;&lt;br /&gt;                }&lt;br /&gt;        }&lt;br /&gt;&lt;br /&gt;        };&lt;br /&gt;        return $text;&lt;br /&gt;}&lt;/code&gt;</description>
      <pubDate>Fri, 14 Apr 2006 19:59:52 GMT</pubDate>
      <guid>http://snippets.dzone.com/posts/show/1915</guid>
      <author>peter (Peter Cooperx)</author>
    </item>
  </channel>
</rss>
