<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	>

<channel>
	<title>Codeode</title>
	<atom:link href="http://www.codeode.com/feed" rel="self" type="application/rss+xml" />
	<link>http://www.codeode.com</link>
	<description>- we kill spam for pleasure -</description>
	<pubDate>Wed, 14 May 2014 04:04:14 +0000</pubDate>
	<generator>http://wordpress.org/?v=2.5.1</generator>
	<language>en</language>
			<item>
		<title>uclassify.com - we need beta testers!!!</title>
		<link>http://www.codeode.com/uclassify-we-need-beta-testers</link>
		<comments>http://www.codeode.com/uclassify-we-need-beta-testers#comments</comments>
		<pubDate>Sun, 28 Sep 2008 17:10:28 +0000</pubDate>
		<dc:creator>jon</dc:creator>
		
		<category><![CDATA[uclassify.com]]></category>

		<category><![CDATA[classifier]]></category>

		<category><![CDATA[text]]></category>

		<category><![CDATA[web service]]></category>

		<guid isPermaLink="false">http://www.codeode.com/?p=139</guid>
		<description><![CDATA[Text classification for everyone!
My great passion for text classification has lead to a new web service - uclassify.com. A text classifier is used to automatically categorize documents, exactly the way Cactus Spam Filter successfully has been doing for years now!
The only difference is that you don&#8217;t have to be a rocket scientist to write your [...]]]></description>
			<content:encoded><![CDATA[<h3>Text classification for everyone!</h3>
<p>My great passion for text classification has lead to a new web service - <a title="uClassify.com" href="http://www.uclassify.com">uclassify.com</a>. A text classifier is used to automatically categorize documents, exactly the way Cactus Spam Filter successfully has been doing for years now!</p>
<p>The only difference is that you don&#8217;t have to be a rocket scientist to write your own classifiers any longer. Anyone with basic programming skills can do it by using our xml api!</p>
<p>Ahh yes, it&#8217;s free and you are allowed to make money using the service!!</p>
<h3>Sites that already are using uclassify.com</h3>
<p><a title="typealyzer.com" href="http://www.typealyzer.com/" target="_blank">typealyzer.com</a> - Analyzes the personality of a blog<br />
<a title="genderanalyzer.com" href="http://www.genderanalyzer.com/" target="_blank">genderanalyzer.com</a> - Tries to figure out if a blog is written by a man and woman<br />
<a title="ofaust.com" href="http://www.ofaust.com/" target="_blank">ofaust.com</a> - Matches texts agains classical authors such as Plato, Shakespeare, Tolstoy etc.</p>
<p>Web developers, <a href="http://www.uclassify.com/" target="_blank" title="uclassify.com">start classifying</a> and be a pioneer of Web 3.0!</p>
]]></content:encoded>
			<wfw:commentRss>http://www.codeode.com/uclassify-we-need-beta-testers/feed</wfw:commentRss>
		</item>
		<item>
		<title>Privacy Mantra v2.05 released!</title>
		<link>http://www.codeode.com/privacy-mantra-v205-released</link>
		<comments>http://www.codeode.com/privacy-mantra-v205-released#comments</comments>
		<pubDate>Thu, 10 Jul 2008 14:21:01 +0000</pubDate>
		<dc:creator>jon</dc:creator>
		
		<category><![CDATA[Privacy Mantra]]></category>

		<guid isPermaLink="false">http://www.codeode.com/?p=138</guid>
		<description><![CDATA[Just wanted to annouce that I have just released a new version of Privacy Mantra. This upgrade has a few minor fixes and one major bug fix. Some users may have experienced the following assert when starting Privacy Mantra: 
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;
Privacy Mantra Error
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;
An unexpected Exception occured. Please help us to improve this product by e-mailing us [...]]]></description>
			<content:encoded><![CDATA[<p>Just wanted to annouce that I have just released a new version of Privacy Mantra. This upgrade has a few minor fixes and one major bug fix. Some users may have experienced the following assert when starting Privacy Mantra: <span id="more-138"></span></p>
<p>&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;<br />
Privacy Mantra Error<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;<br />
An unexpected Exception occured. Please help us to improve this product by e-mailing us this message.<br />
You can press CTRL+C to copy it. E-mail:</p>
<p>Privacy Mantra v2.04<br />
Could convert the wide string to a normal string.<br />
Method: PrivacyApp::InitInstance<br />
..\..\..\..\source\products\privacy\privacy.cpp (301)<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;<br />
ОК  <br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;</p>
<p>This bug has been bugging me for quite a while since I&#8217;ve not been able to recrate it locally.  Finally I was able to track it down with <strong>great testing help by Piotr Nawratowicz</strong> (Poland), thank you very much! I really appreciate it! So one less bug, yay. Lol, even the error message in the assert was wrong  &#8220;Could convert&#8221; should of course be &#8220;Could not convert&#8221;.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.codeode.com/privacy-mantra-v205-released/feed</wfw:commentRss>
		</item>
		<item>
		<title>Wonderful People</title>
		<link>http://www.codeode.com/wonderful-people</link>
		<comments>http://www.codeode.com/wonderful-people#comments</comments>
		<pubDate>Wed, 18 Jun 2008 23:52:48 +0000</pubDate>
		<dc:creator>jon</dc:creator>
		
		<category><![CDATA[Site]]></category>

		<guid isPermaLink="false">http://www.codeode.com/?p=135</guid>
		<description><![CDATA[I have just implemented a list of Wonderful People, a list of donators. Any contributor, regardless of amount, can choose to appear with their full name on this list, optionally with a link to a homepage. As I write this, the list is empty, who will be the first to enter the list of Wonderful [...]]]></description>
			<content:encoded><![CDATA[<p>I have just implemented a list of <a href="/donations/index.html">Wonderful People</a>, a list of donators. Any contributor, regardless of amount, can choose to appear with their full name on this list, optionally with a link to a homepage. As I write this, the list is empty, who will be the first to enter the list of Wonderful People?</p>
<p>If you are a previous donator and wish to appear on this list, please let me know!</p>
]]></content:encoded>
			<wfw:commentRss>http://www.codeode.com/wonderful-people/feed</wfw:commentRss>
		</item>
		<item>
		<title>Problem to include php files from wordpress page or post</title>
		<link>http://www.codeode.com/include-php-wordpress</link>
		<comments>http://www.codeode.com/include-php-wordpress#comments</comments>
		<pubDate>Wed, 18 Jun 2008 23:20:42 +0000</pubDate>
		<dc:creator>jon</dc:creator>
		
		<category><![CDATA[WordPress]]></category>

		<guid isPermaLink="false">http://www.codeode.com/?p=134</guid>
		<description><![CDATA[I just installed a plugin that allows me to run scripts directly from WordPress pages and posts called exec_php. It worked great as long as I didn&#8217;t try to include or require php files.
Problem
For example, these snippets to include and require the existing file Log.php in a page or post
&#60;?php include(&#8221;http://www.codeode.com/scripts/Log.php&#8221;); ?&#62; or &#60;?php require_once(&#8221;/scripts/Log.php&#8221;); [...]]]></description>
			<content:encoded><![CDATA[<p>I just installed a plugin that allows me to run scripts directly from WordPress pages and posts called <a href="http://bluesome.net/post/2005/08/18/50/">exec_php</a>. It worked great as long as I didn&#8217;t try to include or require php files.<span id="more-134"></span></p>
<h3>Problem</h3>
<p>For example, these snippets to include and require the existing file Log.php in a page or post</p>
<p>&lt;?php include(&#8221;http://www.codeode.com/scripts/Log.php&#8221;); ?&gt; or &lt;?php require_once(&#8221;/scripts/Log.php&#8221;); ?&gt;</p>
<p>would generate the following warnings:</p>
<p><strong>Warning</strong>:  Unknown(): URL file-access is disabled in the server configuration in <strong>/mnt/local/home/codeode/codeode.com/wp-content/plugins/exec-php/includes/runtime.php(42) : eval()’d code</strong> on line <strong>4</strong></p>
<p><strong>Warning</strong>:  Unknown(http://www.codeode.com/scripts/Log.php): failed to open stream: no suitable wrapper could be found in <strong>/mnt/local/home/codeode/codeode.com/wp-content/plugins/exec-php/includes/runtime.php(42) : eval()’d code</strong> on line <strong>4</strong></p>
<p><strong>Warning</strong>:  Unknown(http://www.codeode.com/scripts/Log.php): failed to open stream: no suitable wrapper could be found in <strong>/mnt/local/home/codeode/codeode.com/wp-content/plugins/exec-php/includes/runtime.php(42) : eval()’d code</strong> on line <strong>4</strong></p>
<p><strong>Warning</strong>:  (null)() [<a href="../function.include">function.include</a>]: Failed opening ‘http://www.codeode.com/scripts/Log.php’ for inclusion (include_path=’.:/usr/local/lib/php’) in <strong>/mnt/local/home/codeode/codeode.com/wp-content/plugins/exec-php/includes/runtime.php(42) : eval()’d code</strong> on line <strong>4</strong></p>
<p>Ok, as a WordPress rookie I am not completly sure why this is happening in the first place, anyone?</p>
<p>I started to search for solutions to the problem, but couldn&#8217;t find any good ones, only cumbersome that indicated me into changing the php.ini.</p>
<h3>Solution</h3>
<p>I ended up looking into WordPress code and found that they internally are using a variable called ABSPATH. This worked for me with WordPress 2.5.1:</p>
<p><strong>&lt;?php require_once(ABSPATH . &#8220;/scripts/Log.php&#8221;); ?&gt;</strong></p>
<p>I hope this post helps someone out there <img src='http://www.codeode.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /></p>
]]></content:encoded>
			<wfw:commentRss>http://www.codeode.com/include-php-wordpress/feed</wfw:commentRss>
		</item>
		<item>
		<title>Techniques to eliminate spam</title>
		<link>http://www.codeode.com/techniques-to-eliminate-spam</link>
		<comments>http://www.codeode.com/techniques-to-eliminate-spam#comments</comments>
		<pubDate>Mon, 16 Jun 2008 12:23:24 +0000</pubDate>
		<dc:creator>jon</dc:creator>
		
		<category><![CDATA[Anti Spam]]></category>

		<guid isPermaLink="false">http://codeode.dreamhosters.com/?p=124</guid>
		<description><![CDATA[There are several approaches which deal with spam. This section briefly summarizes some common methods to avoid spam and briefly describes the spam filtering techniques used at present. 
Hiding the e-mail address
 The simplest approach to avoid spam is to keep the e-mail address hidden from spammers. The email address can be revealed only to [...]]]></description>
			<content:encoded><![CDATA[<p>There are several approaches which deal with spam. This section briefly summarizes some common methods to avoid spam and briefly describes the spam filtering techniques used at present. <span id="more-124"></span></p>
<h3>Hiding the e-mail address</h3>
<p> The simplest approach to avoid spam is to keep the e-mail address hidden from spammers. The email address can be revealed only to trusted parties. For communication with less trusted parties a temporary e-mail account can be used. If the e-mail address is published on a web page it can be disguised for e-mail spiders by inserting a tag that is requested to be removed before replying. Robots will collect the e-mail address with the tag, while humans will understand that the tag has to be removed in order to retrieve the correct e-mail address. For most users this method is insufficient. Firstly, it is time consuming to implement techniques that will keep the e-mail address safe, and secondly, the disguised address could not only mislead robots, but also the inattentive human. Once the e-mail address is exposed, there is no further protection against spam.</p>
<h3>Pattern matching, whitelists and blacklists</h3>
<p> This is a content-based pattern matching approach where the incoming e-mail is matched against some patterns and classified as either spam or legitimate. Many e-mail programs have this feature which is often referred to as “message rules” or “message filters”. This technique mostly consists of a plain string matching. Whitelists and blacklists, which basically are lists of friends and foes, fall into this category. Whenever an incoming e-mail is matched against an entry in the whitelist, the rule is to allow that e-mail through. However whenever an e-mail has a match against the blacklist, it is classified as a spam. This method can reduce spam up to a certain level and requires constant updating as spam evolves. It is time consuming to determine what rules to use and it is hard to obtain good results with this technique. In Mertz D. 2002 some simple rules are presented. The author claims that he was capable of catching about 80% of all spam he received. However, he also stated that the rules used had, unfortunately, relatively high false positive rates. Basically, this technique is a simpler version of the more sophisticated “rule based filters” which are discussed below.</p>
<h3>Rule based filters</h3>
<p> This is a popular content-based method deployed by spam filtering software such as <a target="_blank" href="http://www.spamassassin.org/index.html">SpamAssassin</a>. Rule-based filters apply a set of rules to every incoming email. If there is a match, the e-mail is assigned a score that indicates spaminess or non-spaminess. If the total score exceeds a threshold the e-mail is classified as spam. The rules are generally built up by regular expressions and they come with the software. The rule set must be updated regularly as spam changes, in order for the filtering of spam to be successful. Updates are retrieved via the Internet. The tests results from the comparison of anti-spam programs presented in Holden 2003 show that SpamAssasin finds about 80% of all spam, while statistical filters (discussed later) find close to 99% of all spam. The advantage of rule-based filters is that they require no training to perform reasonably well. Rules are implemented by humans and they can be very complex. Before a newly written rule is ready for use, it requires extensive testing to make sure it only classifies spam as spam and not legitimate messages as spam. Another disadvantage of this technique is the need for frequent updates of the rules. Once the spammer finds the way to deceive the filter, the spam messages will get through all filters with the same set of rules.</p>
<h3>Statistical filters</h3>
<p> In Sahami et al. 1998, it is shown that it is possible to achieve remarkable results by using a statistical spam classifier. Since then many statistical filters have appeared. The reason for this is simple; they are easy to implement, have a very good performance and require a little maintenance. Statistical filters require training on both spam and non-spam messages and will gradually become more efficient. They are trained personally on the legitimate and spam e-mails of the user. Hence it is very hard for a spammer to deceive the filter.</p>
<h3>E-mail verification</h3>
<p> E-mail verification is a challenge–response system that automatically sends out a one-time verification e-mail to the sender. The only way for an e-mail to pass through the filter is if the sender successfully responds to the challenge. The challenge in the verification e-mail is often a hyperlink for the sender to click. When this link is clicked, all e-mails from that sender are allowed through. <a target="_blank" href="http://www.bluebottle.com/">Bluebottle</a> and <a target="_blank" href="http://www.digiportal.com/index.html">ChoiceMail </a> are two such systems. The advantage of this method is able to filter almost 100% of the spam. However, there are two drawbacks associated with this method. The sender is required to respond to the challenge which necessitates extra care. If this challenge is not recognized the e-mail will be lost. Verifications can also be lost due to technical obstacles such as firewalls and other e-mail response systems. It can also cause problems for automated e-mail responses such as online orders and newsletters. The verification e-mail also generates more traffic.</p>
<h3>Distributed blacklists of spam sources</h3>
<p> These filters use a distributed blacklist to determine whether or not an incoming e-mail is spam. The distributed blacklist resides on the Internet and is frequently being updated by the users of the filter. If a spam passes through a filter, the user reports the e-mail to the blacklist. The blacklist is updated and will now protect other users from the sender of that specific e-mail. This class of blacklists keeps a record of known spam sources, such as IP numbers that allow SMTP relaying. The problem involved in using a filter entirely relying on these blacklists is that it will generally classify many legitimate e-mails as spam (false positive). Another downside is the time taken for the networked based lookup. These solutions may be useful for companies assuming that all their e- mail communications are with other serious non-listed businesses. Companies offering this service include <a target="_blank" href="http://mailabuse.com">Mail Abuse Prevention System LLC (MAPSSM)</a> and <a target="_blank" href="http://www.spamcop.net/">Spamcop</a>.</p>
<h3>Distributed blacklist of spam signatures</h3>
<p> These blacklists work in a same manner to that described in previous paragraph. The difference is that these blacklists consist of spam message signatures instead of spam sources. When a user receives a spam, that user can report the message signature (typically a hash code of the e-mail) to the blacklist. In this way, one user will be able to warn all other users that a certain message is spam. To avoid non-spam being added to a distributed blacklist, many different users must have reported the same signature. Spammers have found an easy way to fool these filters; they simply add a random string to every spam. This will prevent the e-mail from being detected in the blacklist. However spam fighters attempt to overcome this problem by adapting their signature algorithms to allow some random noise. The advantage being that these kinds of filters rarely classify legitimate messages as spam. The greatest disadvantage is they are not able to recall much of the spam. <a target="_blank" href="http://razor.sourceforge.net/">Vipul’s Razor</a> uses such a blacklist and states that it catches 60%-90% of all incoming spam. Another disadvantage is the time taken for the network lookup.</p>
<h3>Money e-mail stamps</h3>
<p> The idea of e-mail stamps is not new, having been discussed since 1992, but it is not until recently that major companies have considered using it to combat spam. The sender would have to pay a small fee for the stamp. This fee could be minor for legitimate e-mail senders, while it could destroy business for spammers that send millions of e-mails daily. There are two stamp types; money stamps and proof-of-work stamps (discussed later). <a target="_blank" href="http://www.goodmailsystems.com/">GoodmailSystems</a> is developing a system for money stamps. The basic idea is to insert a unique encrypted id to the header of each sent e-mail. If the recipient ISP is also participating in the system, the id is sent to Goodmail where it is decrypted. Goodmail will now be able to identify and charge the sender of the e-mail. Today there are many issues requiring solutions before such a system can be deployed. Who receives the money? Where is tax paid? Who are allowed to sell stamps? Since this is a centralized solution, what about scalability? It would also be the end of many legitimate newsletters.</p>
<h3>Proof-of-work e-mail stamps</h3>
<p> At the beginning of 2004, Bill Gates, Microsoft’s chairman, suggested that the spam problem could be solved within two years by adding a proof-of-work stamp to each e-mail. <a target="_blank" href="http://www.camram.org/">Camram</a> is a system that uses proof-of-work stamps. Instead of taking a micro fee from the sender, a cheat-proof mathematical puzzle is sent. The puzzle requires a certain amount of computational power to be solved (matter of seconds). When a solution is found, it is sent back to the receiver and the e-mail is allowed to pass to the receiver. The puzzle Camram is using is called <a target="_blank" href="http://www.hashcash.org/">Hashcash</a>. Whether it is money or proof-of-work e-mail stamps, many oppose the idea, not only because emailing should be free, but also because it will not solve the spam problem. To make this approach effective, most ISP’s would have to join the stamp program. As long as there are ISP’s that are not integrated into the stamp system, spammers could use their servers for mass e-mailing. It could then still be possible for the legitimate e-mailers to pay to send e-mails, while spam is still flooding into the inboxes of users. Many non-profit legitimate mass e-mailers will probably have to abandon their newsletters due to the sending cost. Historically, spammers have been able to deceive most of the other anti spam filters and this could also be the case with the stamp system.</p>
<h3>Legal measures</h3>
<p> In recent years many nations have introduced anti-spam laws, in December 2003, president George W. Bush signed the <a target="_blank" href="http://www.ftc.gov/bcp/conline/pubs/buspubs/canspam.shtm">CAN-SPAM</a> act, the Controlling the Assault of Non-Solicited Pornography and Marketing Act. The law prohibits the use of forged header information in bulk commercial email. It also requires spam to include opt-out instructions. Violations can result in fines of $250 per e-mail, capped at $6 million. In April 2004 the first four spammers were charged under the CANSPAM law. The trial is still on, but if the court manages to send out a strong message, this could deter some spammers. The European Union introduced an anti-spam law on the 31st of October 2003 called “The Directive on Privacy and Electronic Communications”. This new law requires that companies gain consent before they send out commercial e-mails. Many argue that this law is toothless since most of the spam comes from the outside of EU. In the long-run legislation can be used to slowdown the spam flood to some extent, but it will require an international movement. Legislation will not be able to solve the spam problem by itself, at least not in the near future.</p>
<h3>Conclusion</h3>
<p> The most commonly used methods for eliminating spam were described in this chapter. Perhaps legislation is the best option in the long run. However, it requires a world wide effort and this process could be slow. Presently users need to protect themselves and for the moment statistical filters are the most promising method for this purpose. They have superior performance, can adapt automatically as spam changes and in many cases are computationally efficient.</p>
<h3>References</h3>
<ul>
<li>Mertz, D., (2002), <a target="_blank" href="http://www.ibm.com/developerworks/linux/library/l-spamf.html#author1">Spam filtering techniques</a>, 2004-02-03.</li>
<li>Holden, S. (2003), <a href="http://freshmeat.net/articles/view/964/">Spam Filters</a>, 2004-03-18.</li>
<li>Sahami, M., Dumais S., Heckerman D., and Horvitz, E. (1998), A Bayesian approach to filtering junk e-mail. Learning for Text Categorization. Papers from the AAAI Workshop, Madison Wisconsin, pp. 55–62. AAAI Technical Report WS-98-05.</li>
<li>Graham, P. (2002), <a href="http://www.paulgraham.com/spam.html">A plan for spam</a>, 2003-11-13</li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://www.codeode.com/techniques-to-eliminate-spam/feed</wfw:commentRss>
		</item>
		<item>
		<title>Welcome to the new homepage</title>
		<link>http://www.codeode.com/welcome</link>
		<comments>http://www.codeode.com/welcome#comments</comments>
		<pubDate>Sat, 14 Jun 2008 19:45:04 +0000</pubDate>
		<dc:creator>jon</dc:creator>
		
		<category><![CDATA[Site]]></category>

		<guid isPermaLink="false">http://codeode.dreamhosters.com/?p=111</guid>
		<description><![CDATA[It&#8217;s Saturday evening, people are cheering outside my window and I am not sure why. For a few days I have been occupied with moving Codeode.com to new server. While doing this I decided to upgrade the entire homepage and move it to WordPress. Easy Peasy. I thought. Preserving link structure turned out to be [...]]]></description>
			<content:encoded><![CDATA[<p>It&#8217;s Saturday evening, people are cheering outside my window and I am not sure why. For a few days I have been occupied with moving Codeode.com to new server. While doing this I decided to upgrade the entire homepage and move it to WordPress. Easy Peasy. I thought. Preserving link structure turned out to be a hairy mess (luckily not as hairy as my chest).</p>
<p>The idea is to have a more live and interactive site that is easy to update and get feedback on. Oh, I think the screaming is about a football game, Sweden VS Spain. It seems like we lost. Crap.</p>
<p>Feel free to comment on the new site, any feedback is appreciated (not spam though, lol, I may have to integrate <a href="/spamfilter/index.html">Cactus Spam Filter</a> into WordPress if Akismet isn&#8217;t doing it good enough.)</p>
<p>/Jon</p>
]]></content:encoded>
			<wfw:commentRss>http://www.codeode.com/welcome/feed</wfw:commentRss>
		</item>
	</channel>
</rss>
