<?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"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	xmlns:georss="http://www.georss.org/georss" xmlns:geo="http://www.w3.org/2003/01/geo/wgs84_pos#" xmlns:media="http://search.yahoo.com/mrss/"
	>

<channel>
	<title>Primitive root mod p &#187; Computers</title>
	<atom:link href="http://zetazeros.wordpress.com/category/computers/feed/" rel="self" type="application/rss+xml" />
	<link>http://zetazeros.wordpress.com</link>
	<description>Transire suum pectus mundoque potiri</description>
	<lastBuildDate>Sun, 28 Jun 2009 19:00:03 +0000</lastBuildDate>
	<generator>http://wordpress.com/</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<cloud domain='zetazeros.wordpress.com' port='80' path='/?rsscloud=notify' registerProcedure='' protocol='http-post' />
<image>
		<url>http://www.gravatar.com/blavatar/6acf60a92eca76a31e257e6ea757a6c1?s=96&#038;d=http://s.wordpress.com/i/buttonw-com.png</url>
		<title>Primitive root mod p &#187; Computers</title>
		<link>http://zetazeros.wordpress.com</link>
	</image>
			<item>
		<title>Functional Programming in Python</title>
		<link>http://zetazeros.wordpress.com/2008/04/26/functional-programming-in-python/</link>
		<comments>http://zetazeros.wordpress.com/2008/04/26/functional-programming-in-python/#comments</comments>
		<pubDate>Sat, 26 Apr 2008 12:37:31 +0000</pubDate>
		<dc:creator>Nikolas Karalis</dc:creator>
				<category><![CDATA[Programming]]></category>

		<guid isPermaLink="false">http://zetazeros.wordpress.com/?p=43</guid>
		<description><![CDATA[Recently, I decided to learn how to use the functional programming tools provided by Python.
Truth is, it&#8217;s interestingly strong.
The whole concept consists of using 3 built-in functions (map, filter, reduce), lambda functions and of course the beloved List Comprehensions.
In order of appearance :
map (function, sequence) : It applies function on every item of the sequence.
You [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=zetazeros.wordpress.com&blog=2454022&post=43&subd=zetazeros&ref=&feed=1" />]]></description>
			<content:encoded><![CDATA[<div class='snap_preview'><br /><p>Recently, I decided to learn how to use the <a href="http://en.wikipedia.org/wiki/Functional_programming" target="_blank">functional programming</a> tools provided by Python.</p>
<p>Truth is, it&#8217;s interestingly strong.</p>
<p>The whole concept consists of using <a href="http://docs.python.org/tut/node7.html" target="_blank">3 built-in functions</a> (map, filter, reduce), lambda functions and of course the beloved List Comprehensions.</p>
<p><em><strong>In order of appearance :</strong></em></p>
<p><em>map (function, sequence)</em> : It applies <em>function </em>on every item of the <em>sequence.</em></p>
<p>You can even provide a function which takes two arguments and use it like this :</p>
<p><em>map (function, seq1, seq2)</em></p>
<p><em>filter (function, sequence) : </em>It returns a sequence of the items which have a <em>function (Item) == True value.</em></p>
<p><em>reduce (function, sequence) : </em>It applies the function (2 arguments) to the first two items of the sequence, and then to the result and the third etc&#8230;</p>
<p><em><strong>List comprehensions :</strong></em></p>
<p>This a powerful feature of Python.</p>
<p>I will explain it by an example :</p>
<p>&gt;&gt;&gt; a=range(10)<br />
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]</p>
<p>&gt;&gt;&gt; [x**3 for x in a]<br />
[0, 1, 8, 27, 64, 125, 216, 343, 512, 729]<br />
<em><strong>Lambda functions :</strong></em></p>
<p>With lambda functions you can create anonymous functions on the fly.</p>
<p>For example, the normal definition of a function is :</p>
<p>def f(n): return n**3</p>
<p>With lambda functions :</p>
<p>f = lambda n: n**3</p>
<p>In both cases, we use like this :</p>
<p>&gt;&gt;&gt; f(5)<br />
125<br />
An example of using lambda functions with the map function would be like this :</p>
<p>&gt;&gt;&gt; a=range(10)</p>
<p>&gt;&gt;&gt; map(lambda x: x**3, a)<br />
[0, 1, 8, 27, 64, 125, 216, 343, 512, 729</p>
<p>This is exactly the same as the example in list comprehensions.</p>
<p>So, with all the above we have a whole new range of tools for dealing with lists.</p>
<img alt="" border="0" src="http://feeds.wordpress.com/1.0/categories/zetazeros.wordpress.com/43/" /> <img alt="" border="0" src="http://feeds.wordpress.com/1.0/tags/zetazeros.wordpress.com/43/" /> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/zetazeros.wordpress.com/43/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/zetazeros.wordpress.com/43/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/zetazeros.wordpress.com/43/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/zetazeros.wordpress.com/43/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/zetazeros.wordpress.com/43/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/zetazeros.wordpress.com/43/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/zetazeros.wordpress.com/43/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/zetazeros.wordpress.com/43/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/zetazeros.wordpress.com/43/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/zetazeros.wordpress.com/43/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=zetazeros.wordpress.com&blog=2454022&post=43&subd=zetazeros&ref=&feed=1" /></div>]]></content:encoded>
			<wfw:commentRss>http://zetazeros.wordpress.com/2008/04/26/functional-programming-in-python/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/ac835e4864e2210f0f49ef54fdc00b02?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">nikolaskaralis</media:title>
		</media:content>
	</item>
		<item>
		<title>Seismology, Snow &amp; Procrastination</title>
		<link>http://zetazeros.wordpress.com/2008/02/18/seismology-snow-procrastination/</link>
		<comments>http://zetazeros.wordpress.com/2008/02/18/seismology-snow-procrastination/#comments</comments>
		<pubDate>Sun, 17 Feb 2008 23:29:19 +0000</pubDate>
		<dc:creator>Nikolas Karalis</dc:creator>
				<category><![CDATA[/dev/random]]></category>
		<category><![CDATA[Programming]]></category>

		<guid isPermaLink="false">http://zetazeros.wordpress.com/?p=35</guid>
		<description><![CDATA[I haven&#8217;t updated my blog for a while. No specific reason&#8230; I was just procrastinating since exams were coming and I didn&#8217;t have much to say.
The latest news from Greece are the earthquakes and the snow (and of course my exams   ).
The last few days, 2 big earthquakes (6.2 R and 6.9 R) [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=zetazeros.wordpress.com&blog=2454022&post=35&subd=zetazeros&ref=&feed=1" />]]></description>
			<content:encoded><![CDATA[<div class='snap_preview'><br /><p>I haven&#8217;t updated my blog for a while. No specific reason&#8230; I was just procrastinating since exams were coming and I didn&#8217;t have much to say.</p>
<p>The latest news from Greece are the earthquakes and the snow (and of course my exams <img src='http://s.wordpress.com/wp-includes/images/smilies/icon_razz.gif' alt=':-P' class='wp-smiley' />  ).</p>
<p>The last few days, 2 big earthquakes (6.2 R and 6.9 R) shaked  Southern Greece and last night, it began snowing in Athens!</p>
<p>This happens once every one or two years, so  it is big news</p>
<p>So last night, a small earthquake reminded me of the passionate discussions about the earthquakes and since i didn&#8217;t have much to do because of the snow and my constant last month procrastination, i decided to build a database of the Greek Earthquakes of the last few years.</p>
<p>So, a little bit of coding and a few hours later, I proudly (:P) present my <a href="http://papaya.hep.ntua.gr/projects/seismology/" target="_blank">Greek Seismological Database</a><a href="http://papaya.hep.ntua.gr/projects/seismology/" target="_blank"> (click here to visit)</a>.</p>
<p><font color="#ff9900"> EDIT : A new addition : It is automatically updated when a new earthquake happens&#8230;</font></p>
<p>I end this post, with a few photos from Athens in white.</p>
<p><font color="#ffffff">*******</font></p>
<p><font color="#ffffff">*******</font><br />
<a href="http://img139.imageshack.us/img139/8669/dsc00250jp9.jpg" target="_blank"><img src="http://img139.imageshack.us/img139/8669/dsc00250jp9.jpg" height="240" width="320" /></a><a href="http://img86.imageshack.us/img86/8679/dsc00251uu6.jpg" target="_blank"><img src="http://img86.imageshack.us/img86/8679/dsc00251uu6.jpg" height="240" width="320" /></a><a href="http://img84.imageshack.us/img84/9779/dsc00252wc5.jpg" target="_blank"><img src="http://img84.imageshack.us/img84/9779/dsc00252wc5.jpg" height="240" width="180" /></a></p>
<img alt="" border="0" src="http://feeds.wordpress.com/1.0/categories/zetazeros.wordpress.com/35/" /> <img alt="" border="0" src="http://feeds.wordpress.com/1.0/tags/zetazeros.wordpress.com/35/" /> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/zetazeros.wordpress.com/35/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/zetazeros.wordpress.com/35/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/zetazeros.wordpress.com/35/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/zetazeros.wordpress.com/35/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/zetazeros.wordpress.com/35/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/zetazeros.wordpress.com/35/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/zetazeros.wordpress.com/35/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/zetazeros.wordpress.com/35/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/zetazeros.wordpress.com/35/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/zetazeros.wordpress.com/35/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=zetazeros.wordpress.com&blog=2454022&post=35&subd=zetazeros&ref=&feed=1" /></div>]]></content:encoded>
			<wfw:commentRss>http://zetazeros.wordpress.com/2008/02/18/seismology-snow-procrastination/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/ac835e4864e2210f0f49ef54fdc00b02?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">nikolaskaralis</media:title>
		</media:content>

		<media:content url="http://img139.imageshack.us/img139/8669/dsc00250jp9.jpg" medium="image" />

		<media:content url="http://img86.imageshack.us/img86/8679/dsc00251uu6.jpg" medium="image" />

		<media:content url="http://img84.imageshack.us/img84/9779/dsc00252wc5.jpg" medium="image" />
	</item>
		<item>
		<title>Thesis Database and Python CGI uploading.</title>
		<link>http://zetazeros.wordpress.com/2008/01/28/thesis-database-and-python-cgi-uploading/</link>
		<comments>http://zetazeros.wordpress.com/2008/01/28/thesis-database-and-python-cgi-uploading/#comments</comments>
		<pubDate>Mon, 28 Jan 2008 16:39:13 +0000</pubDate>
		<dc:creator>Nikolas Karalis</dc:creator>
				<category><![CDATA[Programming]]></category>

		<guid isPermaLink="false">http://zetazeros.wordpress.com/?p=34</guid>
		<description><![CDATA[Before a few days I had the idea that it would be really nice if we could have a database of greek theses and dissertations, about mathematics and science in general. From what i know, there are a few databases around, mostly for Electrical Engineering and Computer Science dissertations. So, I thought that it would [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=zetazeros.wordpress.com&blog=2454022&post=34&subd=zetazeros&ref=&feed=1" />]]></description>
			<content:encoded><![CDATA[<div class='snap_preview'><br /><p>Before a few days I had the idea that it would be really nice if we could have a database of greek theses and dissertations, about mathematics and science in general. From what i know, there are a few databases around, mostly for Electrical Engineering and Computer Science dissertations. So, I thought that it would be a good opportunity for me to exercise my CGI and Python Web scripting skills.</p>
<p>And here I am, presenting the <a href="http://papaya.hep.ntua.gr/projects/thesisdb/" target="_blank">Thesis Database project</a>. I hope that it will be useful and people will contribute.</p>
<div style="text-align:center;"></div>
<div style="text-align:center;"><img src="http://papaya.hep.ntua.gr/projects/thesisdb/divinity.jpg" height="204" width="300" /></div>
<p>But while coding the CGI backbone, I had a few problems to solve, so since i had to come up with the solutions (couldn&#8217;t find anything useful online), i decided to post them here, for future reference. I will also give the basic idea of how a python cgi uploading script works. The focus is on security of the code.</p>
<p>So, the following is a very simple html form, which will be used as the user interface for the upload.</p>
<p>We suppose that the cgi script is called upload.py and is placed inside the $Web root$/cgi-bin/ directory.</p>
<p><b>upload.html</b></p>
<blockquote><p><font color="#339966">&lt;html&gt;</font></p>
<p><font color="#339966">&lt;head&gt;</font> <font color="#339966">&lt;title&gt;Upload Example&lt;/title&gt; </font> <font color="#339966">&lt;/head&gt;</font></p>
<p><font color="#339966">&lt;body&gt;</font> <font color="#339966">&lt;div align=&#8221;center&#8221;&gt; </font> <font color="#339966"> </font></p>
<p><font color="#339966">&lt;form action=&#8221;/cgi-bin/upload.py&#8221; method=&#8221;POST&#8221; enctype=&#8221;multipart/form-data&#8221;&gt;</font> <font color="#339966"> </font></p>
<p><font color="#339966">File : &lt;input name=&#8221;file&#8221; type=&#8221;file&#8221; size=&#8221;35&#8243;&gt;&lt;BR&gt;<br />
&lt;P&gt;&lt;input name=&#8221;submit&#8221; type=&#8221;submit&#8221; value=&#8221;Upload&#8221;&gt;</font></p>
<p><font color="#339966">&lt;/div&gt; </font> <font color="#339966">&lt;/body&gt; </font> <font color="#339966">&lt;/html&gt;</font></p></blockquote>
<p><span id="more-34"></span></p>
<blockquote></blockquote>
<p><font color="#000000"><b>upload.py</b></font></p>
<blockquote><p><font color="#339966">import cgi, sys, os</font></p>
<p><font color="#339966"> try :</font></p>
<p><font color="#339966">    form = cgi.FieldStorage() #parse query </font></p>
<p><font color="#339966">    fileitem = form["file"] </font></p>
<p><font color="#339966">     filename=os.path.join(&#8216;/tmp&#8217;,<span class="syntax18"></span>os.path.<span class="syntax6">basename</span>(fileitem.filename))  # We suppose we save it in the /tmp directory (should set the right permissions in the folder) and we manipulate the filename so that we avoid directory traversal attacks.</font></p>
<p><font color="#339966">    if os.access(filename,0) :   # Check if the file already exists. Important in order to secure our database.</font></p>
<p><font color="#339966">            print &#8216;Filename  already exists&#8217; </font></p>
<p><font color="#339966">             sys.exit()</font></p>
<p><font color="#339966">    fout = file(filename, &#8216;wb&#8217;)  # We write the file, in parts of 100 Kb. This is used to make sure we can handle larger file, without using all the memory and crashing the system.</font></p>
<p><font color="#339966">    for i in range(103):  # This is used to set the upload file size limit. 103 is for about 10 MB upload limit.</font></p>
<p><font color="#339966">         part = fileitem.file.read(100000)<br />
if not part: break<br />
fout.write (part)<br />
if fileitem.file.read(100000): # If the file is larger than the limit, we remove the already uploaded part of the file. </font></p>
<p><font color="#339966">        print &#8216;The file you tried to upload is too large.&#8217;</font></p>
<p><font color="#339966">        os.remove(filename)<br />
sys.exit()</font></p>
<p><font color="#339966">    fout.close()<br />
print &#8216;You have successfully uploaded the file.&#8217;</font></p>
<p><font color="#339966">    except: print &#8216;A problem occurred. Please try again.&#8217;</font></p></blockquote>
<p><b>Comments :</b></p>
<p>1) The important (non trivial) parts of this code,  is the file size checking and handling and the checking for the existence of the file before editing/deleting it.</p>
<p>2) Whenever you see print above, in the string you should include html code, which i didn&#8217;t do in order to make the code presented here more compact. If you don&#8217;t do this, the chances that your program will work with an older browser is much less.</p>
<p>3) It is a good idea to use a general output html template, which will be edited each time you print something.</p>
<p>4) When coding it is very useful to use the following :<br />
<font color="#339966">import cgitb</font></p>
<p><font color="#339966">cgitb.enable()</font></p>
<p>This will print the error output in your browser, so you will know what is wrong with your problem, but you should not include it in the final version, since it can give out many of your code&#8217;s details.</p>
<blockquote></blockquote>
<img alt="" border="0" src="http://feeds.wordpress.com/1.0/categories/zetazeros.wordpress.com/34/" /> <img alt="" border="0" src="http://feeds.wordpress.com/1.0/tags/zetazeros.wordpress.com/34/" /> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/zetazeros.wordpress.com/34/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/zetazeros.wordpress.com/34/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/zetazeros.wordpress.com/34/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/zetazeros.wordpress.com/34/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/zetazeros.wordpress.com/34/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/zetazeros.wordpress.com/34/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/zetazeros.wordpress.com/34/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/zetazeros.wordpress.com/34/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/zetazeros.wordpress.com/34/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/zetazeros.wordpress.com/34/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=zetazeros.wordpress.com&blog=2454022&post=34&subd=zetazeros&ref=&feed=1" /></div>]]></content:encoded>
			<wfw:commentRss>http://zetazeros.wordpress.com/2008/01/28/thesis-database-and-python-cgi-uploading/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/ac835e4864e2210f0f49ef54fdc00b02?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">nikolaskaralis</media:title>
		</media:content>

		<media:content url="http://papaya.hep.ntua.gr/projects/thesisdb/divinity.jpg" medium="image" />
	</item>
		<item>
		<title>Introduction to Algorithms (Greek Translation)</title>
		<link>http://zetazeros.wordpress.com/2008/01/13/introduction-to-algorithms-greek-translation/</link>
		<comments>http://zetazeros.wordpress.com/2008/01/13/introduction-to-algorithms-greek-translation/#comments</comments>
		<pubDate>Sun, 13 Jan 2008 17:09:16 +0000</pubDate>
		<dc:creator>Nikolas Karalis</dc:creator>
				<category><![CDATA[Computers]]></category>

		<guid isPermaLink="false">http://zetazeros.wordpress.com/2008/01/13/introduction-to-algorithms-greek-translation/</guid>
		<description><![CDATA[The following post is written in Greek. It is my complains about the Greek translation of the classic book : &#8220;Introduction to Algorithms&#8220;, T. Cormen et al.
Αυτές τις μέρες και με αφορμή κάποιες ασκήσεις Αλγορίθμων και γραφημάτων, σκέφτηκα να εκμεταλευτώ την ελληνική μετάφραση του κλασικού βιβλίου Αλγορίθμων των Cormen, Leiserson, Rivest, Stein απο MIT Press, [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=zetazeros.wordpress.com&blog=2454022&post=25&subd=zetazeros&ref=&feed=1" />]]></description>
			<content:encoded><![CDATA[<div class='snap_preview'><br /><p>The following post is written in Greek. It is my complains about the Greek translation of the classic book : &#8220;<a href="http://mitpress.mit.edu/algorithms/" target="_blank">Introduction to Algorithms</a>&#8220;, T. Cormen et al.</p>
<p>Αυτές τις μέρες και με αφορμή κάποιες ασκήσεις Αλγορίθμων και γραφημάτων, σκέφτηκα να εκμεταλευτώ την ελληνική μετάφραση του κλασικού βιβλίου Αλγορίθμων των Cormen, Leiserson, Rivest, Stein απο MIT Press, που εκδόθηκε πέρυσι στην Ελλάδα απο τις Πανεπιστημιακές Εκδόσεις Κρήτης (ΠΕΚ).</p>
<div style="text-align:center;"><img src="http://www.cup.gr/images/covers_big/algor%20B.jpg" height="208" width="147" /></div>
<p>Οι ΠΕΚ είναι κατα τη γνώμη μου απο τις καλύτερες εκδόσεις στην Ελλάδα, με πλήθος αξιόλογων βιβλίων. Και είχα χαρεί πολύ για την μετάφραση αυτού του πολύ καλού βιβλίου. Αλλά πραγματικά, είναι μια απο τις χειρότερες μεταφράσεις βιβλίων που έχω διαβάσει ποτέ.</p>
<p>Όπως αναφέρεται στον πρόλογο του επιμελήτη :</p>
<p>&#8220;Μία απο τις κύριες μέριμνες των ΠΕΚ είναι η προσεκτική χρήση της ελληνικής γλώσσας&#8230; Ένα απο τα σημαντικά προβλήματα που έπρεπε να επιλυθούν στη συγκεκριμένη έκδοση ήταν η εύστοχη απόδοση στα ελληνικά της σχετικής επιστημονικής ορολογίας, και η συνεπής τήρηση των όποιων ορολογικών επιλογών καθ&#8217; όλη την υπο έκδοση σειρά.&#8221;</p>
<p>Και τα κατάφεραν. Μετέφρασαν κάθε αγγλική λέξη στα ελληνικά, και μάλιστα σε λέξεις που προσωπικά δεν έχω ξανακούσει να χρησιμοποιούνται. Και γίνεται σε τέτοια έκταση που μοιάζει με αυτόματη μετάφραση του Google. Φυσικά δεν κρίνω την ορθή χρήση</p>
<p>των ελληνικών απο τον μεταφραστή αλλά την υπερβολική και (κατά τη γνώμη μου) ενοχλητική και λανθασμένη μετάφραση των επιστημονικών όρων. Πραγματικά λυπάμαι τον άνθρωπο που θα δοκιμάσει να χρησιμοποιήσει αυτό το βιβλίο για να μάθει αλγόριθμους. Προσωπική μου εκτίμηση είναι οτι καλύτερα να αγοράσει κάποιος την αγγλική έκδοση (η οποία κοστιζει 55 ευρώ) παρά την ελληνική (της οποίας ο πρώτος τόμος μόνο κοστίζει 40).</p>
<p>Δεν θα έμπαινα στον κόπο να γράψω για αυτό το θέμα, αλλά κάθε φορά που ανοίγω αυτό το βιβλίο, με πιάνει πονοκέφαλος απο την ακατανόητη μετάφραση.</p>
<img alt="" border="0" src="http://feeds.wordpress.com/1.0/categories/zetazeros.wordpress.com/25/" /> <img alt="" border="0" src="http://feeds.wordpress.com/1.0/tags/zetazeros.wordpress.com/25/" /> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/zetazeros.wordpress.com/25/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/zetazeros.wordpress.com/25/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/zetazeros.wordpress.com/25/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/zetazeros.wordpress.com/25/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/zetazeros.wordpress.com/25/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/zetazeros.wordpress.com/25/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/zetazeros.wordpress.com/25/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/zetazeros.wordpress.com/25/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/zetazeros.wordpress.com/25/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/zetazeros.wordpress.com/25/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=zetazeros.wordpress.com&blog=2454022&post=25&subd=zetazeros&ref=&feed=1" /></div>]]></content:encoded>
			<wfw:commentRss>http://zetazeros.wordpress.com/2008/01/13/introduction-to-algorithms-greek-translation/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/ac835e4864e2210f0f49ef54fdc00b02?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">nikolaskaralis</media:title>
		</media:content>

		<media:content url="http://www.cup.gr/images/covers_big/algor%20B.jpg" medium="image" />
	</item>
		<item>
		<title>Python Hacking</title>
		<link>http://zetazeros.wordpress.com/2008/01/07/python-hacking/</link>
		<comments>http://zetazeros.wordpress.com/2008/01/07/python-hacking/#comments</comments>
		<pubDate>Mon, 07 Jan 2008 03:43:09 +0000</pubDate>
		<dc:creator>Nikolas Karalis</dc:creator>
				<category><![CDATA[Programming]]></category>

		<guid isPermaLink="false">http://zetazeros.wordpress.com/2008/01/07/python-hacking/</guid>
		<description><![CDATA[

Efficiency Tips 

In this post, i will try to collect tips and tricks for efficient Python programming. Feel free to contribute.
I will update every once in a while, so check back&#8230;

Fastest string conversion :

&#62;&#62;&#62; a=123
&#62;&#62;&#62; `a` 
'123'

 Fastest string concatenation :

&#62;&#62;&#62; ''.join['a','b','c'] 
Efficiency comparison
Optimization Anecdote (Guido van Rossum)

Generator Functions

&#62;&#62;&#62; a=[1,2,3]
&#62;&#62;&#62; b=[x**2 for x in a] [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=zetazeros.wordpress.com&blog=2454022&post=20&subd=zetazeros&ref=&feed=1" />]]></description>
			<content:encoded><![CDATA[<div class='snap_preview'><br /><div style="text-align:center;"><a href="http://www.python.org" target="_blank"><img src="http://www.python.org/images/python-logo.gif" alt="" width="211" height="71" /></a></div>
<div style="text-align:center;">
<h1><strong>Efficiency Tips </strong></h1>
</div>
<p>In this post, i will try to collect tips and tricks for efficient Python programming. Feel free to contribute.</p>
<p>I will update every once in a while, so check back&#8230;</p>
<ul>
<li><strong>Fastest string conversion :</strong></li>
</ul>
<pre><span style="color:#008000;">&gt;&gt;&gt; a=123</span></pre>
<pre><span style="color:#008000;">&gt;&gt;&gt; `a` </span></pre>
<pre><span style="color:#008000;">'123'</span></pre>
<ul>
<li><strong> Fastest string concatenation :</strong></li>
</ul>
<pre><span style="color:#008000;">&gt;&gt;&gt; ''.join['a','b','c'] </span></pre>
<p><a href="http://www.skymind.com/~ocrow/python_string/" target="_blank">Efficiency comparison</a></p>
<p><a href="http://www.python.org/doc/essays/list2str.html" target="_blank">Optimization Anecdote (Guido van Rossum)</a></p>
<ul>
<li><strong>Generator Functions</strong></li>
</ul>
<pre><span style="color:#008000;">&gt;&gt;&gt; a=[1,2,3]</span></pre>
<pre><span style="color:#008000;">&gt;&gt;&gt; b=[x**2 for x in a] </span></pre>
<pre><span style="color:#008000;">b=[1,4,9]</span></pre>
<ul>
<li><strong> Timing a process :</strong></li>
</ul>
<pre><span style="color:#008000;">from time import clock</span></pre>
<pre><span style="color:#008000;">t=clock()</span></pre>
<pre><span style="color:#008000;">... </span></pre>
<pre><span style="color:#008000;">t=clock()-t</span></pre>
<p><span id="more-20"></span></p>
<ul>
<li><strong>100% CPU Usage Simple Script :</strong></li>
</ul>
<pre><span style="color:#008000;">while True : pass</span></pre>
<ul>
<li><strong>Hash and MD5</strong></li>
</ul>
<pre><span style="color:#008000;">&gt;&gt;&gt; a='123'
&gt;&gt;&gt; hash(a)
1911471187</span></pre>
<pre><span style="color:#008000;">&gt;&gt;&gt; md5(a).digest ()</span></pre>
<pre><span style="color:#008000;">' ,\xb9b\xacY\x07[\x96K\x07\x15-#Kp'</span></pre>
<ul>
<li><strong>Code Optimization</strong></li>
</ul>
<pre><span style="color:#008000;">import psyco </span></pre>
<pre><span style="color:#008000;">..</span></pre>
<pre><span style="color:#008000;">psyco.full()</span></pre>
<ul>
<li><strong>Compact Code</strong></li>
</ul>
<p>If possible, try to define less functions, and keep their code in your main function. This of course, reduces code readability and reusability, but it can sometimes (and in extreme cases) give you a slight performance gain. In addition to that, try not to use to many &#8220;dots&#8221;.</p>
<p>e.g. : Instead of using :</p>
<pre><span style="color:#008000;">&gt;&gt;&gt;'123'.replace('1','2')</span></pre>
<p>better use :</p>
<pre><span style="color:#008000;">&gt;&gt;&gt; rep=str.replace</span></pre>
<pre><span style="color:#008000;">&gt;&gt;&gt; rep('123','1','2')</span></pre>
<ul>
<li><strong>Urllib</strong></li>
</ul>
<p>There is a very easy way to open and post data to a URL.</p>
<pre><span style="color:#008000;">&gt;&gt;&gt; import urllib
&gt;&gt;&gt; params = urllib.urlencode({'spam': 1, 'eggs': 2, 'bacon': 0})
&gt;&gt;&gt; f = urllib.urlopen("http://www.musi-cal.com/cgi-bin/query", params)
&gt;&gt;&gt; print f.read()</span></pre>
<ul>
<li>File handling</li>
</ul>
<p>The easiest way to open a file.</p>
<pre><span style="color:#008000;">&gt;&gt;&gt; f=open('testfile.txt')</span>
<span style="color:#008000;">&gt;&gt;&gt; f=open('testfile.txt','w') #Open a file to write.</span></pre>
<p><strong> </strong></p>
<h1>Useful Links</h1>
<p><strong><a href="http://www.cython.org/" target="_blank">Compiled Python</a></strong><a href="http://www.cython.org/" target="_blank"><br />
</a></p>
<p><a href="http://www.sagemath.org" target="_blank"><strong>Sage</strong></a></p>
<p><a href="https://networkx.lanl.gov/" target="_blank"><strong>NetworkX</strong></a></p>
<p><strong><a href="http://www.pythonware.com/products/pil/" target="_blank">PIL </a></strong></p>
<p><strong><a href="http://www.pygame.org/" target="_blank">Pygame</a></strong></p>
<p><strong><a href="http://psyco.sourceforge.net/" target="_blank">Psyco</a></strong></p>
<p><strong><a href="http://starship.python.net/crew/mhammond/win32/Downloads.html" target="_blank">Win32 Extensions</a> </strong></p>
<p><strong><a href="http://matplotlib.sourceforge.net/" target="_blank">Matplotlib</a> </strong></p>
<p><strong><a href="http://numpy.scipy.org/" target="_blank">Numpy</a></strong></p>
<p><strong><a href="http://www.scipy.org/" target="_blank">SciPy</a></strong></p>
<p><strong><a href="http://videocapture.sourceforge.net/" target="_blank">VideoCapture</a></strong></p>
<p><a href="http://www.swig.org/" target="_blank"><strong>Swig</strong></a></p>
<p><strong><a href="http://www.onlamp.com/topics/python/scientific" target="_blank">ONLamp Scientific Python</a></strong></p>
<p><strong><a href="http://picket.8m.com/programs/" target="_blank">MCI Interface</a></strong></p>
<p><strong><a href="http://www.reportlab.org/rl_toolkit.html" target="_blank">ReportLab</a></strong></p>
<p><strong><a href="http://pybrary.net/pyPdf/" target="_blank">PyPdf</a></strong></p>
<img alt="" border="0" src="http://feeds.wordpress.com/1.0/categories/zetazeros.wordpress.com/20/" /> <img alt="" border="0" src="http://feeds.wordpress.com/1.0/tags/zetazeros.wordpress.com/20/" /> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/zetazeros.wordpress.com/20/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/zetazeros.wordpress.com/20/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/zetazeros.wordpress.com/20/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/zetazeros.wordpress.com/20/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/zetazeros.wordpress.com/20/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/zetazeros.wordpress.com/20/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/zetazeros.wordpress.com/20/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/zetazeros.wordpress.com/20/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/zetazeros.wordpress.com/20/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/zetazeros.wordpress.com/20/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=zetazeros.wordpress.com&blog=2454022&post=20&subd=zetazeros&ref=&feed=1" /></div>]]></content:encoded>
			<wfw:commentRss>http://zetazeros.wordpress.com/2008/01/07/python-hacking/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/ac835e4864e2210f0f49ef54fdc00b02?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">nikolaskaralis</media:title>
		</media:content>

		<media:content url="http://www.python.org/images/python-logo.gif" medium="image" />
	</item>
		<item>
		<title>Deleting duplicate lines from file</title>
		<link>http://zetazeros.wordpress.com/2008/01/05/deleting-duplicate-lines-from-file/</link>
		<comments>http://zetazeros.wordpress.com/2008/01/05/deleting-duplicate-lines-from-file/#comments</comments>
		<pubDate>Sat, 05 Jan 2008 20:27:11 +0000</pubDate>
		<dc:creator>Nikolas Karalis</dc:creator>
				<category><![CDATA[Programming]]></category>

		<guid isPermaLink="false">http://zetazeros.wordpress.com/2008/01/05/deleting-duplicate-lines-from-file/</guid>
		<description><![CDATA[I&#8217;ve been fighting with a computational problem for many days, but i haven&#8217;t even come close to an acceptable solution.
The problem statement :
Given a file of n lines, return the index number of the duplicate lines (where index line is 0 for the first line, 1 for the 2nd etc.)
It may sound trivial, even silly, [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=zetazeros.wordpress.com&blog=2454022&post=19&subd=zetazeros&ref=&feed=1" />]]></description>
			<content:encoded><![CDATA[<div class='snap_preview'><br /><p>I&#8217;ve been fighting with a computational problem for many days, but i haven&#8217;t even come close to an acceptable solution.</p>
<p>The problem statement :</p>
<p><b>Given a file of n lines, return the index number of the duplicate lines (where index line is 0 for the first line, 1 for the 2nd etc.)</b></p>
<p>It may sound trivial, even silly, but i can assure you it is not. It can be relatively simple for small number of lines.</p>
<p>But as n raises, the problem becomes exponentially harder.</p>
<p>When i first faced the problem, i had to deal with a few hundred thousands of lines.  So, i came up with a simple  python code to do it.</p>
<p>When the first difficulties appeared, i came up with a faster solution.</p>
<pre><i><b><font color="#008000">  def duplicates(sequence):
	visited={}
	dupl=[]
	for x in sequence:
		if x in visited: dupl.append(x)
		visited[x]=1
	return dupl</font></b></i></pre>
<p>However, now that i have to find the duplicate lines in files with 15 million. 26 million and more, it is impossible to use this code, since it returns memory errors.</p>
<p>So i found another idea, which is REALLY slow for now.</p>
<ol>
<li>Sort the file with the windows or unix command : <i><b>sort</b></i></li>
<li>Use unix command <i><b>uniq</b><b> -d</b></i>, to get a list of the duplicated lines.</li>
<li>Use unix command <i><b>grep -n</b></i>, on the unsorted file for every line in the previous list, to get which lines are duplicated.</li>
<li>Use a simple python script to parse the result and get only the the integers we are interested in.</li>
</ol>
<p>However, the grep part is REALLY slow for huge files. So, my problem remains. However, i reduced the problem from removing duplicated from a file, to simply getting fast the index of a line in a file or equivalently, fast iteration and comparison of the file lines.</p>
<p>After extended digging in the Internet, i was not able to find any efficient algorithm or implementation.</p>
<img alt="" border="0" src="http://feeds.wordpress.com/1.0/categories/zetazeros.wordpress.com/19/" /> <img alt="" border="0" src="http://feeds.wordpress.com/1.0/tags/zetazeros.wordpress.com/19/" /> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/zetazeros.wordpress.com/19/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/zetazeros.wordpress.com/19/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/zetazeros.wordpress.com/19/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/zetazeros.wordpress.com/19/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/zetazeros.wordpress.com/19/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/zetazeros.wordpress.com/19/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/zetazeros.wordpress.com/19/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/zetazeros.wordpress.com/19/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/zetazeros.wordpress.com/19/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/zetazeros.wordpress.com/19/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=zetazeros.wordpress.com&blog=2454022&post=19&subd=zetazeros&ref=&feed=1" /></div>]]></content:encoded>
			<wfw:commentRss>http://zetazeros.wordpress.com/2008/01/05/deleting-duplicate-lines-from-file/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/ac835e4864e2210f0f49ef54fdc00b02?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">nikolaskaralis</media:title>
		</media:content>
	</item>
		<item>
		<title>OpenBSD &amp; Security</title>
		<link>http://zetazeros.wordpress.com/2008/01/05/openbsd-security/</link>
		<comments>http://zetazeros.wordpress.com/2008/01/05/openbsd-security/#comments</comments>
		<pubDate>Sat, 05 Jan 2008 19:36:57 +0000</pubDate>
		<dc:creator>Nikolas Karalis</dc:creator>
				<category><![CDATA[Computers]]></category>

		<guid isPermaLink="false">http://zetazeros.wordpress.com/2008/01/05/openbsd-security/</guid>
		<description><![CDATA[I&#8217;ve spent the last few days setting up a new OpenBSD server, focusing on the security aspects.
I&#8217;m not a security expert, but during this days I&#8217;ve learned a few things which i would like to share.
So, I will describe these security tips, without getting into much detail, from general to special. For more details on [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=zetazeros.wordpress.com&blog=2454022&post=15&subd=zetazeros&ref=&feed=1" />]]></description>
			<content:encoded><![CDATA[<div class='snap_preview'><br /><p>I&#8217;ve spent the last few days setting up a new <a href="http://www.openbsd.org" target="_blank">OpenBSD</a> server, focusing on the security aspects.</p>
<p>I&#8217;m not a security expert, but during this days I&#8217;ve learned a few things which i would like to share.</p>
<p>So, I will describe these security tips, without getting into much detail, from general to special. For more details on these, just google or ask me.</p>
<p>Firstly, why OpenBSD?</p>
<p>Well, i had no experience with this OS, so i thought to give it a try. Furthermore, OpenBSD is (generally?) considered to be (one of) the most secure systems around. So, why not?</p>
<p>1) When connecting remotely to your server, always do that with <b>SSH2</b>.</p>
<p>2) You should not login over SSH as <b>root</b>. Create an account, add it to the <b>wheel</b> group so that you can<br />
<b>su</b> with it, and change the <i>PermitRootLogin</i> option to <i>no</i> in <b><i>/etc/ssh/ssh_config </i></b><i>.</i></p>
<p>3) Use long passwords. You can even set the min. password length as you wish.</p>
<p>4) Always use the latest release, and always<b> patch </b>as soon as possible your system, when a patch is available.</p>
<p>5) Enable only the needed services, and check thoroughly for open ports. e.g. Disable the <b>inetd</b> and <b>sendmail</b> f you don&#8217;t need them.</p>
<p>6) After you finish your configurations, change your <b>security level</b> to 2. This is the highest possible, but be aware that this can make administration more difficult.</p>
<p>7) Change your web server&#8217;s <b>directives</b>, so that you don&#8217;t show to people which server you use.</p>
<p>8 ) Enable your swap partition encryption (this is enabled by default).</p>
<p>9) Use <a href="http://www.openbsd.org/faq/pf/" target="_blank">pf</a> (packet filter) to create strict rules for your firewall. For example, block all incoming traffic, and only enable the few services that you really need. In addition to that, use <b>antispoof </b>and packet normalization (<b>scrub</b>) rules.</p>
<p>10) In your pf rules, include rules against bruteforcing. With this, you can avoid DoS (Denial of Service) attacks.</p>
<p>11)  Block incoming traffic based on ip, for example allow ssh logins only from your local network or what fits your needs.</p>
<p>12) Try to fool <b>nmap</b> (using pf), so that you not reveal which of your ports are open, and which OS you are using and also log the scanning attempts.</p>
<p>13) Change the <b>sysctl.conf</b> flags, so that your system reboots automatically during a kernel panic.</p>
<p>14) Use <a href="http://www.free-x.ch/pub/proposal.txt" target="_blank">file flags</a> like <b>schg</b>, <b>sappnd</b> and <b>uappnd</b> to disable deletion and editing of specific files and directories, like <b>/var/log</b>.</p>
<p>15) Keep a track of your files&#8217; checksums, and your downloads&#8217; checksums.</p>
<p>16) Use <a href="http://www.snort.org/">snort</a> (or other NIDS and Host IDS) in addition to the pf and system logging to prevent and identify security breaches and attempted attacks.</p>
<p>17) You can use <a href="http://www.honeyd.org" target="_blank">honeyd</a> to create virtual hosts and honey traps  for the script kiddies.</p>
<p>18) Use <a href="http://www.linuxsecurity.com/content/view/117369/49/" target="_blank">SaDoor</a> for  remote stealth administration.</p>
<p>19) If possible (if you are administering the router used), use <b>static ARP</b> in your network, to avoid ARP poisoning attacks.</p>
<p align="center"><img src="http://www.openbsd101.com/images/daemon.jpg" height="150" width="150" /></p>
<img alt="" border="0" src="http://feeds.wordpress.com/1.0/categories/zetazeros.wordpress.com/15/" /> <img alt="" border="0" src="http://feeds.wordpress.com/1.0/tags/zetazeros.wordpress.com/15/" /> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/zetazeros.wordpress.com/15/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/zetazeros.wordpress.com/15/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/zetazeros.wordpress.com/15/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/zetazeros.wordpress.com/15/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/zetazeros.wordpress.com/15/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/zetazeros.wordpress.com/15/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/zetazeros.wordpress.com/15/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/zetazeros.wordpress.com/15/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/zetazeros.wordpress.com/15/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/zetazeros.wordpress.com/15/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=zetazeros.wordpress.com&blog=2454022&post=15&subd=zetazeros&ref=&feed=1" /></div>]]></content:encoded>
			<wfw:commentRss>http://zetazeros.wordpress.com/2008/01/05/openbsd-security/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/ac835e4864e2210f0f49ef54fdc00b02?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">nikolaskaralis</media:title>
		</media:content>

		<media:content url="http://www.openbsd101.com/images/daemon.jpg" medium="image" />
	</item>
		<item>
		<title>Facebook!</title>
		<link>http://zetazeros.wordpress.com/2007/09/08/facebook/</link>
		<comments>http://zetazeros.wordpress.com/2007/09/08/facebook/#comments</comments>
		<pubDate>Sat, 08 Sep 2007 16:40:18 +0000</pubDate>
		<dc:creator>Nikolas Karalis</dc:creator>
				<category><![CDATA[Computers]]></category>

		<guid isPermaLink="false">http://zetazeros.wordpress.com/2007/09/08/facebook/</guid>
		<description><![CDATA[The last few months, facebook is open for everyone and not only university students.
I am generally opposed to these websites, but Facebook is one of a kind.
It is aesthetically nice, easy to use and extremely popular (at least in North America).
I tried it, and now i&#8217;m using it all the time.
I found so many friends [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=zetazeros.wordpress.com&blog=2454022&post=13&subd=zetazeros&ref=&feed=1" />]]></description>
			<content:encoded><![CDATA[<div class='snap_preview'><br /><p>The last few months, facebook is open for everyone and not only university students.</p>
<p>I am generally opposed to these websites, but Facebook is one of a kind.<br />
It is aesthetically nice, easy to use and extremely popular (at least in North America).</p>
<p>I tried it, and now i&#8217;m using it all the time.</p>
<p>I found so many friends of mine from around the world, that we hadn&#8217;t talked in so many years&#8230;</p>
<p>So, <a href="http://www.facebook.com/p/Nikolas_Karalis/646347546">Facebook me!</a></p>
<p>Here, is a link to an interesting article regarding Facebook :</p>
<p><a href="http://money.cnn.com/2007/05/24/technology/facebook.fortune/index.htm?postversion=2007052917">Facebook&#8217;s plan to hook up the world</a></p>
<img alt="" border="0" src="http://feeds.wordpress.com/1.0/categories/zetazeros.wordpress.com/13/" /> <img alt="" border="0" src="http://feeds.wordpress.com/1.0/tags/zetazeros.wordpress.com/13/" /> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/zetazeros.wordpress.com/13/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/zetazeros.wordpress.com/13/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/zetazeros.wordpress.com/13/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/zetazeros.wordpress.com/13/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/zetazeros.wordpress.com/13/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/zetazeros.wordpress.com/13/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/zetazeros.wordpress.com/13/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/zetazeros.wordpress.com/13/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/zetazeros.wordpress.com/13/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/zetazeros.wordpress.com/13/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=zetazeros.wordpress.com&blog=2454022&post=13&subd=zetazeros&ref=&feed=1" /></div>]]></content:encoded>
			<wfw:commentRss>http://zetazeros.wordpress.com/2007/09/08/facebook/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/ac835e4864e2210f0f49ef54fdc00b02?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">nikolaskaralis</media:title>
		</media:content>
	</item>
		<item>
		<title>Learn Genetics</title>
		<link>http://zetazeros.wordpress.com/2007/06/13/learn-genetics/</link>
		<comments>http://zetazeros.wordpress.com/2007/06/13/learn-genetics/#comments</comments>
		<pubDate>Tue, 12 Jun 2007 23:03:39 +0000</pubDate>
		<dc:creator>Nikolas Karalis</dc:creator>
				<category><![CDATA[Computers]]></category>

		<guid isPermaLink="false">http://zetazeros.wordpress.com/2007/06/13/learn-genetics/</guid>
		<description><![CDATA[I just found a great website&#8230; It is hosted at University of Utah.
It has many entertaining and educative Flash presentations of how Genetics works.
http://learn.genetics.utah.edu/
Special thanks to primelude for sending me one of these files&#8230;  
       <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=zetazeros.wordpress.com&blog=2454022&post=6&subd=zetazeros&ref=&feed=1" />]]></description>
			<content:encoded><![CDATA[<div class='snap_preview'><br /><p>I just found a great website&#8230; It is hosted at University of Utah.</p>
<p>It has many entertaining and educative Flash presentations of how Genetics works.</p>
<p><a href="http://learn.genetics.utah.edu/" target="_blank" title="Learn.Genetics">http://learn.genetics.utah.edu/</a></p>
<p>Special thanks to <a href="http://higgs-boson.blogspot.com/" target="_blank">primelude</a> for sending me one of these files&#8230; <img src='http://s.wordpress.com/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> </p>
<img alt="" border="0" src="http://feeds.wordpress.com/1.0/categories/zetazeros.wordpress.com/6/" /> <img alt="" border="0" src="http://feeds.wordpress.com/1.0/tags/zetazeros.wordpress.com/6/" /> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/zetazeros.wordpress.com/6/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/zetazeros.wordpress.com/6/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/zetazeros.wordpress.com/6/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/zetazeros.wordpress.com/6/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/zetazeros.wordpress.com/6/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/zetazeros.wordpress.com/6/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/zetazeros.wordpress.com/6/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/zetazeros.wordpress.com/6/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/zetazeros.wordpress.com/6/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/zetazeros.wordpress.com/6/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=zetazeros.wordpress.com&blog=2454022&post=6&subd=zetazeros&ref=&feed=1" /></div>]]></content:encoded>
			<wfw:commentRss>http://zetazeros.wordpress.com/2007/06/13/learn-genetics/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/ac835e4864e2210f0f49ef54fdc00b02?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">nikolaskaralis</media:title>
		</media:content>
	</item>
	</channel>
</rss>