﻿<?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/"
> <channel><title>GreekTuts</title> <atom:link href="http://greektuts.net/feed/" rel="self" type="application/rss+xml" /><link>http://greektuts.net</link> <description>Ελληνικά Βοηθήματα</description> <lastBuildDate>Mon, 30 Jan 2012 13:52:21 +0000</lastBuildDate> <language>en</language> <sy:updatePeriod>hourly</sy:updatePeriod> <sy:updateFrequency>1</sy:updateFrequency> <generator>http://wordpress.org/?v=3.3.1</generator> <item><title>SEO Book &#8211; Κατεβάστε το Δωρεάν !</title><link>http://greektuts.net/seo-book-free-download/</link> <comments>http://greektuts.net/seo-book-free-download/#comments</comments> <pubDate>Thu, 26 Jan 2012 09:59:03 +0000</pubDate> <dc:creator>Pantso</dc:creator> <category><![CDATA[SEO]]></category> <category><![CDATA[alex]]></category> <category><![CDATA[seo]]></category> <category><![CDATA[seo book]]></category> <category><![CDATA[αλέξανδρος ίτσιος]]></category> <guid
isPermaLink="false">http://greektuts.net/?p=5664</guid> <description><![CDATA[Βρήκαμε και σας παρουσιάζουμε ένα καταπληκτικό δωρεάν e-book από τον Αλέξανδρο Ίτσιο, που θα μας βοηθήσει να κάνουμε επιτυχές link building και θα μας δείξει αρκετές τεχνικές για το SEO της σελίδας μας]]></description> <content:encoded><![CDATA[<p>Το βιβλίο διατίθεται απολύτως δωρεάν στην σελίδα του συγγραφέα, και το μόνο που έχετε να κάνετε για να το αποκτίσετε είναι να γραφτείτε στην λίστα email του συγγραφέα. Μπορείτε να <strong> <a
title="SEO Book" href="http://www.seoprojects.gr/seo-book-seo-ebook-biblio-seo/" target="_blank">κατεβάσετε το βιβλίο από εδώ</a></strong>!</p><p>Λίγα λόγια από τους συγγραφείς του βιβλίου:</p><h1><strong>Σε ποιους απευθύνεται αυτό το Ebook</strong></h1><p>Σε αντίθεση με τους περισσότερους οδηγούς seo που κυκλοφορούν αυτή τη στιγμή στην Ελλάδα, δεν θα μπω στις περιττές και βαρετές λεπτομέρειες για το πώς να κάνετε onpage ή offpage seo, ούτε θα περιαυτολογήσω πάνω σε θεωρητικά κομμάτια, όπως τι είναι το seo, κλπ κλπ. Αυτή τη στιγμή υπάρχουν αμέτρητοι παρόμοιοι οδηγοί seo που μπορείτε να βρείτε στο Google, τόσο σε Ελλάδα, όσο και στο εξωτερικό.</p><ul><li>Affiliates.</li><li>Επιχειρηματίες που έχουν ή σκοπεύουν να δημιουργήσουν μια online επιχείρηση.</li><li>SEOists που θέλουν να μάθουν βελτιωμένες τακτικές.</li><li>Ερασιτέχνες bloggers που θέλουν να εμφανίσουν την ιστοσελίδα τους σε υψηλότερες θέσεις.</li><li>Marketers, οι οποίοι μόλις μπήκατε στο παιχνίδι του online PR και θέλετε να κερδίσετε από αυτό.</li></ul><h2>Μάθετε τις πιο αποτελεσματικές τακτικές link building, μέσα από το SEO βιβλίο μας (SEO Book)</h2><p>Είμαι σίγουρος ότι αρκετοί από εσάς έχετε διαβάσει αρκετά βιβλία πάνω στο seo, τα οποία όμως σας βοήθησαν ελάχιστα ή και καθόλου. Για κάποια από αυτά επίσης πληρώσατε ένα σεβαστό ποσό για να τα αγοράσετε. Αυτό που διαπιστώσατε, είναι πως στις περισσότερες περιπτώσεις αναφέρουν γενικά και αόριστα πράγματα, τα οποία ελάχιστη σχέση έχουν με την πραγματικότητα. Σίγουρα ο χώρος του ελληνικού διαδικτύου βρίθει από αμέτρητα τέτοια παραδείγματα. Δυστυχώς, λόγω του γεγονότος ότι δεν υπάρχουν αρκετοί seoists, υπάρχει μια προσπάθεια να αποκρυφτούν διάφορες τακτικές ή να υπάρξει παραπλάνηση προς το ευρύ κοινό.</p><p>Εγώ και η ομάδα μου λοιπόν, αποφασίσαμε να δημιουργήσουμε αυτό το blog, το οποίο αναφέρει προχωρημένες τακτικές seo και link building. Επίσης, δημιουργήσαμε τον παρακάτω οδηγό seo, ο οποίος σας παρουσιάζει βήμα βήμα, αποτελεσματικές μεθόδους link building, οι οποίες μπορούν να συντρίψουν και τον πιο σκληρό ανταγωνισμό.</p><p><strong>Λίγα λόγια για τον συγγραφέα…</strong></p><p>Πριν ξεκινήσω να σας αναλύω πως μπορείτε να κατακτήσετε την κορυφή του Google, καλό θα ήταν να πω δυο λόγια για το ποιος είμαι. Ονομάζομαι Αλέξανδρος Ίτσιος και είμαι ο ιδρυτής της <a
href="http://www.seoprojects.gr/">SEO Projects</a>, μιας επαγγελματικής εταιρίας προώθησης και βελτιστοποίησης ιστοσελίδων. Στη διάρκεια της καριέρας μου, έχω αναλάβει και επιτύχει πολυάριθμα seo projects.</p><p>Εκτός από την SEO Projects, συνεργάζομαι με τη <a
href="http://www.stigmahost.com/">StigmaHost</a> και την <a
href="http://www.e-xtnd.it/">e-xtnd.it</a>. Είμαι επίσης ένας από τους διαχειριστές και ιδρυτικό μέλος του <a
href="http://ifeed.gr/">Ifeed.gr</a>, της πρώτης ελληνικής κοινότητας internet marketing.  Θα με βρείτε συχνά να γράφω και σε άλλες κοινότητες, όπως το <a
href="http://www.wordpress-gr.org/">wordpress-gr.org</a> (Ελληνική κοινότητα wordpress), το <a
href="http://www.wdf.gr/">wdf.gr</a> (web design forum) στα οποία επίσης είμαι διαχειριστής και στο <a
href="http://w24.gr/">w24.gr</a>, ένα από τα κορυφαία ελληνικά forums για webmasters και internet marketers, στο οποίο και είμαι moderator.</p><p><strong>Μπορείτε να <a
title="SEO Book" href="http://www.seoprojects.gr/seo-book-seo-ebook-biblio-seo/" target="_blank">κατεβάσετε το βιβλίο από εδώ</a></strong></p> ]]></content:encoded> <wfw:commentRss>http://greektuts.net/seo-book-free-download/feed/</wfw:commentRss> <slash:comments>6</slash:comments> </item> <item><title>Κερδίστε 10 FBOX1</title><link>http://greektuts.net/germanos-fbox1-giveaway/</link> <comments>http://greektuts.net/germanos-fbox1-giveaway/#comments</comments> <pubDate>Tue, 17 Jan 2012 10:30:30 +0000</pubDate> <dc:creator>Pantso</dc:creator> <category><![CDATA[Διαγωνισμοί]]></category> <category><![CDATA[fbox1]]></category> <category><![CDATA[germanos]]></category> <category><![CDATA[giveaway]]></category> <category><![CDATA[γερμανός]]></category> <category><![CDATA[διαγωνισμός]]></category> <guid
isPermaLink="false">http://greektuts.net/?p=5655</guid> <description><![CDATA[Έχουμε στα χέρια μας 10 FBOX1 για 10 τυχερούς φίλους μας! Με το FBOX1 του Γερμανού, μπορείτε να κάνετε το προφίλ σας στο Facebook μοναδικό ! Διαβάστε περισσότερα για τον διαγωνισμό και πώς θα πάρετε μέρος]]></description> <content:encoded><![CDATA[<p>Το GERMANOS F-BOX1 είναι μια εφαρμογή που εγκαθίσταται στα Pages του Facebook και παρέχει την δυνατότητα να τα παραμετροποιήσεις σύμφωνα με τα δικά σας θέλω και ανάγκες. Μπορείτε πλέον να δημιουργήσετε ένα Page εντελώς διαφοροποιημένο και προσωποποιημένο από όλα τα υπόλοιπα, προκαλώντας μια ευχάριστη έκπληξη στους επισκέπτες σας. Επιπλέον, σας δίνεται η δυνατότητα να το τροποποιήσετε μόνοι σας αλλάζοντας χρώμα, κείμενα, φωτογραφίες, ύφος και στυλ ανά πάσα στιγμή!</p><p>&nbsp;</p><blockquote><p><a
href="http://static.greektuts.net/uploads/2012/01/fbox.png"><img
class="aligncenter size-full wp-image-5656" title="fbox" src="http://static.greektuts.net/uploads/2012/01/fbox.png" alt="" width="540" height="651" /></a></p></blockquote><h1>Οδηγίες Συμμετοχής</h1><p>Το μόνο που έχετε να κάνετε είναι να<strong> κάνετε like στην σελίδα μας στο Facebook</strong> (<a
title="GreekTuts Facebook Page" href="https://www.facebook.com/GreekTuts" target="_blank">https://www.facebook.com/GreekTuts</a>)</p><p>Όλοι οι φίλοι μας στο Facebook έχουν την δυνατότητα να κάνουν δικό τους το μοναδικό application από τον Γερμανό! <strong>Αν έχετε ήδη κάνει Like στην σελίδα μας στο παρελθόν, τότε συμμετέχετε αυτόματα</strong> !</p><p>O διαγωνισμός θα διαρκέσει μέχρι την <strong>Κυριακή 29 Ιανουαρίου στις 16:00</strong> και αμέσως θα γίνει κλήρωση ανάμεσα στους φίλους μας στο Facebook! Οι 10 νικητές θα ειδοποιηθούν άμεσα για την παραλαβή των κωδικών τους, για να εγκαταστήσουν το FBOX1 στην σελίδα τους.</p><p><a
title="FBOX1" href="https://www.facebook.com/germanosapps?sk=app_153284594738391" target="_blank">Διαβάστε περισσότερα για το FBOX1</a></p><h1>UPDATE:</h1><p>Οι νικητές έχουν ανακοινωθεί ! Διαβάστε περισσότερα στο <a
title="GreekTuts Facebook Page" href="https://www.facebook.com/GreekTuts" target="_blank">Facebook Page μας</a></p> ]]></content:encoded> <wfw:commentRss>http://greektuts.net/germanos-fbox1-giveaway/feed/</wfw:commentRss> <slash:comments>12</slash:comments> </item> <item><title>Καλή Χρονιά</title><link>http://greektuts.net/happy-new-year-2012/</link> <comments>http://greektuts.net/happy-new-year-2012/#comments</comments> <pubDate>Fri, 30 Dec 2011 10:55:37 +0000</pubDate> <dc:creator>Pantso</dc:creator> <category><![CDATA[Νέα]]></category> <guid
isPermaLink="false">http://greektuts.net/?p=5636</guid> <description><![CDATA[Όλοι μας στο GreekTuts σας ευχόμαστε μια καλή και δημιουργική χρονιά γεμάτη επιτυχίες και χαρές ! Σας ευχαριστούμε όλους για την αγάπη που μας δείχνετε και σας υποσχόμαστε ότι το 2012 θα είναι μια χρονιά σταθμός για την ιστοσελίδα μας]]></description> <content:encoded><![CDATA[<blockquote><p><img
class="aligncenter size-full wp-image-5637" title="happynewyear" src="http://static.greektuts.net/uploads/2011/12/happynewyear.png" alt="" width="540" height="495" /></p></blockquote> ]]></content:encoded> <wfw:commentRss>http://greektuts.net/happy-new-year-2012/feed/</wfw:commentRss> <slash:comments>0</slash:comments> </item> <item><title>Kατασκευή eshop με το Magenius</title><link>http://greektuts.net/dnhost-magenius-eshop/</link> <comments>http://greektuts.net/dnhost-magenius-eshop/#comments</comments> <pubDate>Fri, 16 Dec 2011 18:50:55 +0000</pubDate> <dc:creator>Pantso</dc:creator> <category><![CDATA[Νέα]]></category> <category><![CDATA[dnhost]]></category> <category><![CDATA[eshop]]></category> <category><![CDATA[Kατασκευή eshop με το Magenius]]></category> <category><![CDATA[magenius]]></category> <category><![CDATA[magento]]></category> <category><![CDATA[δελτίο τύπου]]></category> <guid
isPermaLink="false">http://greektuts.net/?p=5630</guid> <description><![CDATA[Η dnHost αναγνωρίζοντας την ανάγκη που υπάρχει στην Ελληνική αγορά για επιπλέον τρόπους προώθησης προϊόντων και υπηρεσιών σε ένα πιο επαγγελματικό επίπεδο, δημιούργησε την υπηρεσία κατασκευής eshop «Magenius».]]></description> <content:encoded><![CDATA[<p>Η νέα αυτή υπηρεσία της <a
title="dnHost" href="http://dnhost.gr/" target="_blank">dnHost</a> βασίζεται στην open source λύση ηλεκτρονικού εμπορίου «<strong>Magento ecommerce»</strong>, <span
style="text-decoration: underline;">την πιο διαδεδομένη λύση</span> για <strong>δημιουργία eshop</strong> από τις μεγαλύτερες εταιρίες (Nokia, Samsung, Ford, Lenovo) στον κόσμο.</p><p>Προσαρμόσαμε το Magento πλήρως στις Ελληνικές ανάγκες και τα eshop που δημιουργούμε, φιλοξενούνται σε <span
style="text-decoration: underline;">ειδικά ρυθμισμένους servers</span> για το καλύτερο δυνατό αποτέλεσμα για τους πελάτες μας.</p><p>Διαπιστώσαμε την απαίτηση της αγοράς, το eshop να σχεδιάζεται με βάση τις ανάγκες της επιχείρησης και όχι οι ανάγκες της επιχείρησης να περιορίζονται στις δυνατότητες του εκάστοτε eshop.</p><blockquote><p><img
class="aligncenter size-full wp-image-5632" title="magenius" src="http://static.greektuts.net/uploads/2011/12/magenius.jpg" alt="" width="540" height="495" /></p></blockquote><p>Έτσι σας δίνουμε την ελευθερία να επιλέξετε και να διαμορφώσετε (μαζί με το σχεδιαστικό τμήμα μας) την εμφάνιση του ηλεκτρονικού καταστήματός σας, έτσι ώστε να ταιριάζει ακριβώς στο ύφος και τις ανάγκες της επιχείρησής σας.</p><p>Όμως δε σταματάμε εδώ, μιας και <strong>αναβαθμίσαμε την ήδη υψηλή ποιότητα της τεχνικής υποστήριξης</strong> που παρέχουμε, εμπλουτίζοντας της με την υποστήριξη σε θέματα <strong>διαδικτυακού marketing</strong> και <strong>διαφήμισης</strong> για τους πελάτες μας.</p><p>Η dnHost, τα 11 χρόνια παρουσίας της στην Ελληνική αγορά, προσφέρει ποιοτικές υπηρεσίες χωρίς να επαναπαύεται στις επιτυχίες της, δημιουργώντας <strong>καινοτόμα εργαλεία</strong> διαχείρισης του διαδικτύου προς όφελος σας.</p><p>Χτίζοντας σε αυτή τη <strong>μακροχρόνια σχέση εμπιστοσύνης</strong> που έχουμε μαζί σας, συνεχίζουμε με τις ίδιες αρχές, προσθέτοντας στις ήδη υπάρχουσες υπηρεσίες μας μια νέα, την <strong><span
style="text-decoration: underline;">δημιουργία eshop</span></strong> με το <a
title="Magenius" href="http://www.magenius.gr/" target="_blank"><strong>Magenius</strong></a>!</p> ]]></content:encoded> <wfw:commentRss>http://greektuts.net/dnhost-magenius-eshop/feed/</wfw:commentRss> <slash:comments>1</slash:comments> </item> <item><title>WordPress SEO μέρος 3ο: Ping Services, Sitemaps</title><link>http://greektuts.net/wordpress-seo-part3-ping-services-sitemaps/</link> <comments>http://greektuts.net/wordpress-seo-part3-ping-services-sitemaps/#comments</comments> <pubDate>Thu, 15 Dec 2011 16:58:28 +0000</pubDate> <dc:creator>kostasmoser</dc:creator> <category><![CDATA[SEO]]></category> <category><![CDATA[Wordpress]]></category> <category><![CDATA[Συμβουλές]]></category> <category><![CDATA[moser]]></category> <category><![CDATA[pingback]]></category> <category><![CDATA[pingback links]]></category> <category><![CDATA[seo]]></category> <category><![CDATA[sitemap]]></category> <category><![CDATA[wordpress seo]]></category> <category><![CDATA[wp seo]]></category> <guid
isPermaLink="false">http://greektuts.net/?p=5616</guid> <description><![CDATA[Αφού λοιπόν είδαμε μερικά γενικά πράγματα για το SEO και κάποιες πρώτες ρυθμίσεις ή ενέργειες που πρέπει να κάνουμε στην αρχή, σήμερα θα ασχοληθούμε με τρεις ακόμη λειτουργίες.]]></description> <content:encoded><![CDATA[<p>Τα ping services μας τα προσφέρει το WordPress γλυτώνοντας μας από τον χρόνο που θα χρειαζόταν να κάνουμε ping διάφορες ιστοσελίδες που συλλέγουν υλικό κάθε φορά που δημοσιεύουμε ένα νέο άρθρο. Όσων αφορά τα sitemaps θα δούμε πως μπορούμε με την χρήση plugin να δημιουργήσουμε sitemaps σε μορφές που είναι αποδεκτές από τις μηχανές αναζήτησης.</p><h1>WordPress Ping Services</h1><p>Το WordPress κάθε φορά που δημοσιεύουμε ένα νέο άρθρο &#8220;ειδοποιεί&#8221; κάποιες ιστοσελίδες (όπως το Techonarati για παράδειγμα) πως υπάρχει νέο υλικό στο blog μας. Μέσω αυτής της διαδικασίας μειώνεται στο ελάχιστο ο χρόνος που θα χρειαστούν οι μηχανές αναζήτησης να εντοπίσουν το νέο άρθρο και να το εμφανίζουν στα αποτελέσματά τους.</p><p>Εδώ ας κάνουμε μία μικρή παρένθεση, ξεκαθαρίζοντας πως το Wordress (ή και κάποιες ιστοσελίδες που κάνουν ping όπως το ping-o-matic) δεν καταχωρεί το νέο σας υλικό στις μηχανές αναζήτησης! Πολλοί μπερδεύονται και αν διαβάσατε κάπου κάτι αντίστοιχο να έχετε υπόψη πως δεν ισχύει. Αυτό που κάνει το WordPress και οι αντίστοιχες ιστοσελίδες είναι να ειδοποιεί κάποια μεγάλα directories πως υπάρχει νέο υλικό ώστε μπείτε στην λίστα για να επισκεφτεί το robot και να κάνει index την νέα σας σελίδα.</p><p>Για να δείτε ποια services χρησιμοποιεί το WordPress αρκεί να μεταβείτε το μενού Ρυθμίσεις -&gt; Σύνταξη. Εκεί θα βρείτε το πεδίο με το όνομα Ενημέρωση υπηρεσιών που μπορείτε να προσθέσετε εσείς όποια υπηρεσία θέλετε. Ακολουθεί μια προτεινόμενη λίστα υπηρεσιών που θα σας καλύψει</p><p>(απλά κάντε την αντιγραφή και επικόλληση και στο τέλος πατήστε στο κουμπί Αποθήκευση αλλαγών).</p><blockquote><p><a
href="http://static.greektuts.net/uploads/2011/12/ping-services.jpg"><img
class="aligncenter size-full wp-image-5617" title="ping-services" src="http://static.greektuts.net/uploads/2011/12/ping-services.jpg" alt="" width="540" height="220" /></a></p></blockquote><pre>http://xping.pubsub.com/ping
http://www.blogdigger.com/RPC2
http://topicexchange.com/RPC2
http://rpc.weblogs.com/RPC2
http://rpc.technorati.com/rpc/ping
http://rpc.icerocket.com:10080/
http://rpc.blogrolling.com/pinger
http://pinger.blogflux.com/rpc
http://ping.weblogalot.com/rpc.php
http://ping.syndic8.com/xmlrpc.php
http://ping.cocolog-nifty.com/xmlrpc
http://ping.bloggers.jp/rpc
http://ping.blo.gs/
http://coreblog.org/ping
http://blogdb.jp/xmlrpc/
http://api.moreover.com/RPC2
http://api.moreover.com/ping
http://api.feedster.com/ping
http://blogsearch.google.com/ping/RPC2
http://api.my.yahoo.com/rss/ping
http://ping.feedburner.com
http://1470.net/api/ping
http://api.my.yahoo.com/RPC2
http://bblog.com/ping.php
http://bitacoras.net/ping
http://blogbot.dk/io/xml-rpc.php
http://blogmatcher.com/u.php
http://bulkfeeds.net/rpc
http://mod-pubsub.org/kn_apps/blogchatt
http://mod-pubsub.org/knapps/blogchatt
http://ping.amagle.com
http://ping.bitacoras.com
http://ping.blogmura.jp/rpc
http://ping.exblog.jp/xmlrpc
http://ping.myblog.jp
http://ping.rootblog.com/rpc.php
http://ping.weblogs.se
http://rcs.datashed.net/RPC2
http://thingamablog.sourceforge.net/ping.php
http://trackback.bakeinu.jp/bakeping.php
http://www.a2b.cc/setloc/bp.a2b
http://www.bitacoles.net/ping.php
http://www.blogoole.com/ping
http://www.blogoon.net/ping
http://www.blogpeople.net/servlet/weblogUpdates
http://www.blogroots.com/tb_populi.blog?id=1
http://www.blogroots.com/tbpopuli.blog?id=1
http://www.blogshares.com/rpc.php
http://www.blogsnow.com/ping
http://www.blogstreet.com/xrbin/xmlrpc.cgi
http://www.lasermemory.com/lsrpc
http://www.mod-pubsub.org/kn_apps/blogchatter/ping.php
http://www.mod-pubsub.org/knapps/blogchatter/ping.php
http://www.newsisfree.com/xmlrpctest.php
http://www.popdex.com/addsite.php
http://www.snipsnap.org/RPC2
http://www.weblogues.com/RPC
http://xmlrpc.blogg.de
http://holycowdude.com/rpc/ping/
http://pingoat.com/goat/RPC2
http://rpc.blogbuzzmachine.com/RPC2
http://rpc.newsgator.com/
http://api.my.yahoo.co.jp/RPC2
http://audiorpc.weblogs.com/RPC2
http://blog.goo.ne.jp/XMLRPC
http://blogpeople.net/ping
http://blogsearch.google.ae/ping/RPC2
http://blogsearch.google.at/ping/RPC2
http://blogsearch.google.be/ping/RPC2
http://blogsearch.google.bg/ping/RPC2
http://blogsearch.google.ca/ping/RPC2
http://blogsearch.google.ch/ping/RPC2
http://blogsearch.google.cl/ping/RPC2
http://blogsearch.google.co.cr/ping/RPC2
http://blogsearch.google.co.hu/ping/RPC2
http://blogsearch.google.co.id/ping/RPC2
http://blogsearch.google.co.il/ping/RPC2
http://blogsearch.google.co.in/ping/RPC2
http://blogsearch.google.co.jp/ping/RPC2
http://blogsearch.google.co.ma/ping/RPC2
http://blogsearch.google.co.nz/ping/RPC2
http://blogsearch.google.co.th/ping/RPC2
http://blogsearch.google.co.uk/ping/RPC2
http://blogsearch.google.co.ve/ping/RPC2
http://blogsearch.google.co.za/ping/RPC2
http://blogsearch.google.com.ar/ping/RPC2
http://blogsearch.google.com.au/ping/RPC2
http://blogsearch.google.com.br/ping/RPC2
http://blogsearch.google.com.co/ping/RPC2
http://blogsearch.google.com.do/ping/RPC2
http://blogsearch.google.com.mx/ping/RPC2
http://blogsearch.google.com.my/ping/RPC2
http://blogsearch.google.com.pe/ping/RPC2
http://blogsearch.google.com.sa/ping/RPC2
http://blogsearch.google.com.sg/ping/RPC2
http://blogsearch.google.com.tr/ping/RPC2
http://blogsearch.google.com.tw/ping/RPC2
http://blogsearch.google.com.ua/ping/RPC2
http://blogsearch.google.com.uy/ping/RPC2
http://blogsearch.google.com.vn/ping/RPC2
http://blogsearch.google.com/ping/RPC2
http://blogsearch.google.de/ping/RPC2
http://blogsearch.google.es/ping/RPC2
http://blogsearch.google.fi/ping/RPC2
http://blogsearch.google.fr/ping/RPC2
http://blogsearch.google.gr/ping/RPC2
http://blogsearch.google.hr/ping/RPC2
http://blogsearch.google.ie/ping/RPC2
http://blogsearch.google.it/ping/RPC2
http://blogsearch.google.jp/ping/RPC2
http://blogsearch.google.lt/ping/RPC2
http://blogsearch.google.nl/ping/RPC2
http://blogsearch.google.pl/ping/RPC2
http://blogsearch.google.pt/ping/RPC2
http://blogsearch.google.ro/ping/RPC2
http://blogsearch.google.ru/ping/RPC2
http://blogsearch.google.se/ping/RPC2
http://blogsearch.google.sk/ping/RPC2
http://blogsearch.google.us/ping/RPC2
http://hamo-search.com/ping.php
http://ping.bloggnytt.se
http://ping.blogs.yandex.ru/RPC2
http://ping.kutsulog.net/
http://ping.namaan.net/rpc
http://rpc.aitellu.com
http://rpc.bloggerei.de/ping/
http://rpc.blogrolling.com/pinger/
http://rpc.reader.livedoor.com/ping
http://rpc.twingly.com/
http://xianguo.com/xmlrpc/ping.php
http://xping.pubsub.com/ping/
http://zhuaxia.com/rpc/server.php
http://blogsearch.google.co.it/ping/RPC2
http://blogsearch.google.in/ping/RPC2
http://blogsearch.google.tw/ping/RPC2
http://feedsky.com/api/RPC2
http://ping.blogoon.net
http://ping.fc2.com
http://ping.snap.com/ping/RPC2
http://ping.wordblog.de
http://r.hatena.ne.jp/rpc
http://rpc.technorati.jp/rpc/ping
http://wasalive.com/ping/
http://www.newsisfree.com/RPCCloud</pre><h1>Πως θα δημιουργήσετε Sitemaps στο WordPress</h1><p>Τα Sitemaps είναι λίστες που περιέχουν όλες τις σελίδες από μια ιστοσελίδα. Με αυτό τον τρόπο οι μηχανές αναζήτησης μπορούν να περιηγηθούν στο blog σας χωρίς να παραλείψουν κάποια από τις σελίδες σας. Κάθε ιστοσελίδα θα πρέπει να περιέχει ένα sitemap σε μορφή xml αρχείου. Υπάρχουν διάφορα plugins που κάνουν αποκλειστικά και μόνο αυτή τη δουλειά όπως το Google XML Sitemaps.</p><p>Εμείς για χρησιμοποιήσουμε το plugin Yoast SEO. Το Yoast SEO είναι ένα plugin που περιέχει όλες τις βασικές SEO ρυθμίσεις που χρειάζεται ένα blog. Και αναλυτικότερα θα ασχοληθούμε μαζί του στο επόμενο tutorial. Σήμερα απλά θα το ρυθμίσουμε να διαχειρίζεται τα sitemaps του blog μας. Εγκαθιστούμε λοιπόν το Yoast SEO και αφού το ενεργοποιήσουμε από το μενού διαχείρισης στα αριστερά πατάμε στο SEO -&gt; XML Sitemaps, βάζουμε τικ στο κουτάκι ώστε να εμφανιστούν και οι υπόλοιπες ρυθμίσεις του:</p><blockquote><p><a
href="http://static.greektuts.net/uploads/2011/12/yoast-seo-sitemap-settings.png"><img
class="aligncenter size-full wp-image-5618" title="yoast-seo-sitemap-settings" src="http://static.greektuts.net/uploads/2011/12/yoast-seo-sitemap-settings.png" alt="" width="540" height="305" /></a></p></blockquote><p>Στην κατηγορία General Settings μας ρωτάει αν θέλουμε αν θέλουμε μετά από κάθε δημοσίευση, το Yoast να ειδοποιεί τις σελίδες Yahoo! Και Ask πως υπάρχει κάποια αλλαγή στο site μας (δηλαδή να κάνει ping προς αυτές, όπως αναφέραμε παραπάνω!). Καλό είναι να ενεργοποιήσετε και τις δύο επιλογές.</p><p>Στην κατηγορία Exclude post Types μπορούμε να επιλέξουμε αν θέλουμε κάποιο είδος άρθρων (post type) μην συμπεριλαμβάνεται στα sitemaps της σελίδας μας (διαβάστε περισσότερα για τα post types στο Codex του WordPress). Δεν ενεργοποιούμε καμία από τις δύο επιλογές!</p><p>Τέλος το Yoast μας ρωτάει αν θέλουμε να μην συμπεριλαμβάνει τις Κατηγορίες και τις Ετικέτες μας στα sitemaps του. Και αυτό το αφήνουμε ως έχει χωρίς να επιλέξουμε κάτι.<br
/> Τέλος πατάμε Save Settings και είμαστε έτοιμοι! Για να δείτε το κεντρικό sitemap αρκεί να επισκεφτείτε την διεύθυνση http://todomainsas.com/sitemap_index.xml<br
/> Αυτά για σήμερα! Στο επόμενο tutorial θα δούμε πως θα ρυθμίσουμε το Yoast SEO. Αν παρατηρήσετε έχει πάρα πολλές ρυθμίσεις, αλλά μην ανησυχείτε θα τις εξετάσουμε μία προς μία αναλυτικά!</p> ]]></content:encoded> <wfw:commentRss>http://greektuts.net/wordpress-seo-part3-ping-services-sitemaps/feed/</wfw:commentRss> <slash:comments>1</slash:comments> </item> <item><title>Οι Κλάσεις στην Ruby</title><link>http://greektuts.net/classes-in-ruby/</link> <comments>http://greektuts.net/classes-in-ruby/#comments</comments> <pubDate>Mon, 12 Dec 2011 17:33:08 +0000</pubDate> <dc:creator>kkostopoulos</dc:creator> <category><![CDATA[Ruby]]></category> <category><![CDATA[classes]]></category> <category><![CDATA[classes in ruby κλάσεις στην ruby]]></category> <category><![CDATA[ruby]]></category> <category><![CDATA[ruby class]]></category> <guid
isPermaLink="false">http://greektuts.net/?p=5600</guid> <description><![CDATA[Έχουμε ήδη δει τα βασικά στοιχεία της Ruby όπως τη σύνταξη, τις βασικές  μεθόδους και πως φτιάχνουμε τις δικές μας μεθόδους. Αυτό που σίγουρα ακούει κανείς  στη Ruby είναι ότι όλα είναι κλάσεις. Πράγματι, όπως έχουμε δει,  ακόμα και η εκτέλεση ενός προγράμματος γίνεται μέσα από μία κλάση.]]></description> <content:encoded><![CDATA[<h1>Εισαγωγή</h1><p>Αν δώσετε για παράδειγμα την εντολή puts self.class (είτε σε irb είτε φτιάξτε ένα αρχείο .rb μόνο με αυτή την εντολή) θα πάρετε ως έξοδο:</p><pre>puts self.class
=&gt;Object</pre><p>Δηλαδή ακόμα και όταν απλά ξεκινάμε ένα πρόγραμμα είμαστε μέσα στην κλάση Object. Αυτό σημαίνει πρακτικά ότι χωρίς καν να ορίσουμε κάποια δική μας κλάση μπορούμε να καλέσουμε όλες τις μεθόδους τις Object.</p><p>Πριν προχωρήσω να υπενθυμίσω  ότι $x σημαίνει global μεταβλητή, @x σημαίνει ιδιότητα κάποιας κλάσης και @@x σημαίνει αντικείμενο του τύπου της κλάσης που ορίσαμε.</p><p>Σε αυτό το σημείο θα ήθελα επίσης να επισημάνω οτι στο σημερινό tutorial θεωρούνται ως γνωστές απο τον αναγνώστη οι τις βασικές αρχές του αντικειμενοστραφούς προγραμματισμού (κλάσεις,μέθοδοι,κληρονομικότητα). Διαφορετικά, θα σας πρότεινα  πρώτα να ψάξετε λίγο αυτές τις έννοιες.</p><p><strong>Ιεραρχία κλάσεων</strong></p><p>Αξίζει τον κόπο να δούμε το πως ιεραρχούνται οι κλάσεις στη Ruby.  Να σημειώσουμε ότι η ιεραρχία των κλάσεων που παρουσιάζεται σε αυτό το tutorial αφορά την έκδοση Ruby 1.8.7. Στις τελευταίες εκδόσεις της Ruby υπάρχει μια μικρή αλλαγή στην ιεραρχία αυτή, οπότε σε περίπτωση που χρησιμοποιείτε κάποια άλλη έκδοση μπορείτε να το ψάξετε.</p><p>Ανεξάρτητα όμως από την έκδοση που χρησιμοποιείται δοκιμάστε την εντολή superclass για να βρείτε τον γονέα parent class της κλάσης που σας ενδιαφέρει, φτάνοντας μέχρι την κορυφή. Σε αυτή την κορυφή θα βρείτε την κλάση Object. Εάν δώσετε :</p><pre>puts Object.superclass
=&gt;nil</pre><p>Θα λάβετε ως απάντηση nil ακριβώς επειδή είναι στην κορυφή της ιεραρχίας. Αυτό σημαίνει ότι όλες οι κλάσεις την κληρονομούν. Δείτε το παράδειγμα στο αρχείο classes.rb :</p><pre>puts self.class
puts Object.superclass
puts Class.superclass
puts Module.superclass
=&gt;</pre><p>Object<br
/> nil<br
/> Module<br
/> Object</p><p>Από τα αποτελέσματα μπορούμε να καταλάβουμε ότι με την εκκίνηση ενός προγράμματος είμαστε στην Object που είναι και η κορυφή της ιεραρχίας. Επίσης υπάρχει μία κλάση Class που κάνει δουλειά για μας χωρίς να μας μπερδεύει και έχει ως υπερκλάση της, γονέα δηλαδή, την κλάση Module. Ομοίως η κλάση Module βρίσκεται κάτω από την κλάση Object, που είναι ο γονέας της Module.</p><h2>Modules και Classes</h2><p>Ποίες είναι όμως οι διαφορές module και class;</p><ul><li>Τα modules είναι συλλογές μεθόδων και σταθερών<a
title="" href="#ss1">[1]</a>. Δεν μπορούν να έχουν αντικείμενα δηλαδή instances. Αντίθετα οι κλάσεις έχουν αντικείμενα (instances), και έχουν το λεγόμενο per-instance state (instance variables) δηλαδή κάθε αντικείμενο μπορεί να έχει τις δικές τους τιμές μεταβλητών και να βρίσκεται σε διαφορετική κατάσταση από άλλα αντικείμενα.</li><li>Τα modules μπορούν να αναμειχθούν με classes και άλλα modules. Με αυτόν τον τρόπο, οι μέθοδοι και οι σταθερές ενός  module προστίθεται σε αυτά άλλων module ή άλλων κλάσεων επεκτείνοντας τη λειτουργία τους. Οι κλάσεις, αν και μπορούν να κληρονομηθούν, δεν αναμειγνύονται κατά αυτόν τον τρόπο.</li><li>Μία κλάση μπορεί να κληρονομήσει από μία άλλη κλάση αλλά όχι από κάποιο module.</li><li>Ένα module δεν μπορεί να κληρονομήσει ούτε από κάποια κλάση ούτε από κάποιο άλλο module.</li></ul><p>Εδώ να σημειώσουμε ότι άλλο κληρονομώ π.χ. μία κλάση από μία άλλη κλάση και άλλο αναμειγνύω modules. Στα modules δηλαδή δεν έχουμε κληρονομικότητα. Πως όμως τότε μία κλάση ενσωματώνει ένα module και επεκτείνει τη λειτουργικότητά του;</p><p>Ας δούμε ένα παράδειγμα ανάμειξης κλάσης και module. Καταρχήν να αναφέρουμεότι το σώμα μίας κλάσης ορίζεται από ένα block κώδικα της μορφής:</p><pre>class &lt;classname&gt;
end</pre><p>Έχουμε τη δυνατότητα να ορίσουμε μεθόδους τύπου public, private και protected. Η δήλωση αυτή μπορεί να γίνει με δύο τρόπους.</p><p><strong><span
style="text-decoration: underline;">1ος τρόπος</span></strong></p><pre>class &lt;classname&gt;
protected
def my_protected method
...
end
…
private
def my_private method
…
end
…
public
def my_public method
…
end
...
end</pre><p><strong><span
style="text-decoration: underline;">2ος τρόπος</span></strong></p><pre>class &lt;classname&gt;
def my_protected method
...
end
…
def my_private method
…
end
…
def my_public method
…
end
…
public :my_public_method , …
protected :my_protected_method , …
private  :my_private_method , …
end</pre><p>Φυσικά είναι καθαρά θέμα ευκολίας, καλό είναι όμως να το έχετε υπόψη σας σε περίπτωση που πάρετε κώδικα από τρίτο άτομο.</p><p>Θεωρώ ότι είναι αρκετά απλό για να σχολιαστεί παραπάνω. Επιστρέφω λοιπόν στο παράδειγμα. Θα ορίσουμε μία δική μας κλάση Animal και θα αξιοποιήσουμε το έτοιμο module της Ruby Comperable. Όπως καταλαβαίνετε και από το όνομα, αυτό αξιοποιείται από την ίδια τη γλώσσα για να συγκρίνει τιμές. Είναι κλασικό παράδειγμα που δίνεται για τη Ruby. Στην κλάση μας θα ορίσουμε δύο μεταβλητές, ένα όνομα και  τον αριθμό των ποδιών για κάθε ζώο και θα δούμε πως μπορούμε εύκολα να κάνουμε ταξινόμηση των ζώων βάση του αριθμού ποδιών.</p><p>Γράφουμε λοιπόν:</p><pre>class Animal
include Comparable# δηλώνουμε ότι χρειαζόμαστε το συγκεκριμένο module
attr :legs #χρειάζεται, με αυτήν δίνουμε οδηγία ότι θα αξιοποιήσουμε τη
#μεταβλητή legs για τη σύγκριση
def initialize(name, legs) # η μέθοδος αυτή καλείται όταν καλούμε τη μέθοδο
#Animal.new και αρχικοποιεί τις μεταβλητές του
#αντικειμένου
@name, @legs = name, legs
end
def &lt;=&gt;(o) #η μέθοδος αυτή αξιοποιεί το module Comperable κάνοντας στην
#ουσία overload τους συγκεκριμένους τελεστές σύγκρισης που θα
#συναντήσουμε και στο module
return @legs &lt;=&gt; o.legs #εξηγούμε πως να γίνει η σύγκριση
end
def name #απλώς επιστρέφουμε τα αποτελέσματα
return @name
end
end
#δημιουργούμε 3 αντικείμενα-ζώα
c = Animal .new('cat', 4)
s = Animal .new('snake', 0)
p = Animal .new('parrot', 2)
#σύγκριση τιμών βάση της ιδιότητας legs
puts c &lt; s
puts s &lt; c
puts p &gt;= s
#ρωτάμε εάν η τιμή p.legs είναι ανάμεσα στις τιμές s.legs και c.legs
puts p.between?(s, c)
#κάνουμε ταξινόμηση
sorted = [p, s, c].sort
sorted.each{ |obj|  puts obj.name}
=&gt;false
true
true
true
snake
parrot
cat</pre><p>Όπως βλέπουμε, χωρίς να παιδευτούμε γράφοντας πολλές γραμμές κώδικα (μόλις 5) ενσωματώσαμε το module και δώσαμε στην κλάσης μας τη δυνατότητα να κάνει συγκρίσεις και ταξινόμηση αντικειμένων τύπου Animal. Με αυτόν τον τρόπο μπορούμε να γράφουμε γενικές μεθόδους σε modules και να χρησιμοποιούμε τον ίδιο κώδικα σε όποιες κλάσεις τον χρειαζόμαστε, αυτό δηλαδή που αποκαλούμε reusable code.</p><p>Στο σημείο αυτό οφείλουμε να εξηγήσουμε ότι η μέθοδος intialize μίας κλάσης καλείται όταν καλούμε τη μέθοδο new προκειμένου να δημιουργήσουμε ένα νέα αντικείμενο αυτής της κλάσης.</p><p>Επιπρόσθετα, αξίζει να αναφέρουμε ότι εάν θέλουμε να φτιάξουμε δικά μας modules πρέπει να θυμόμαστε φυσικά ότι γράφουμε μόνο μεθόδους και σταθερές. Η δήλωση του module είναι παρόμοια με αυτή μίας κλάσης, δηλαδή :</p><pre>module &lt;module_name&gt;
...
end</pre><h2>Κληρονομικότητα</h2><p>Φυσικά εκτός από τα modules μπορούμε να προσθέσουμε λειτουργικότητα στην κλάση μας κληρονομώντας κάποια άλλη κλάση. Ισχύουν και εδώ όσα ξέρετε για την κληρονομικότητα και από άλλες γλώσσες. Έτσι οι private μέθοδοι δεν κληρομούνται ενώ οι public μέθοδοι ναι. Για παράδειγμα εάν θέλαμε στην κλάση του προηγούμενου παραδείγματος η κλάση μας Animal να κληρονομήσει την κλάση ActiveRecords::Base, που χρησιμοποιείται συχνά με την Ruby on Rails, και μας επιτρέπει να επικοινωνούμε με βάσεις δεδομένων όπως η MySQL με πολύ απλό και βολικό τρόπο, τόσο βολικό που πρακτικά δε γράφουμε SQL. Αλλά αυτό ξεφεύγει από τα πλαίσια των όσων λέμε εδώ. Εμείς κρατάμε το ότι πρόκειται για μία κλάση που μας προσφέρει ότι χρειαζόμαστε για να επικοινωνήσουμε με μία βάση δεδομένων. Για το σκοπό αυτό δεν έχουμε παρά να γράψουμε:</p><pre>def Animal &lt; ActiveRecord::Base
…
end</pre><p>Σε αυτό το σημείο λογικά τίθεται το ερώτημα: “Μπορεί μία κλάση να κληρονομήσει από πολλαπλές κλάσεις;”. Δυστυχώς, η Ruby δεν το υποστηρίζει αυτό. Υπάρχει όμως λόγος. Η λογική είναι ότι εάν θέλουμε πολλές κλάσεις να έχουν τις ίδιες κοινές μεθόδους είναι πιο απλό να φτιάξουμε κάποιο module και να τις χειριζόμαστε από ένα κεντρικό σημείο δηλαδή μέσω του module.</p><h2>Προσοχή στα ονόματα κλάσεων και module</h2><p>Ας υποθέσουμε ότι θέλετε να φτιάξετε μία κλάση που να αφορά πίνακες αλλά δε θέλετε να έχει σχέση με την κλάση Arrays της Ruby γιατί μπορεί να θέλετε να έχει άλλα χαρακτηριστικά ή δομή. Συστήνεται να είστε προσεκτικοί στο πως θα την ονομάσετε. Αν π.χ. την ονομάσετε Array τι γίνεται; Ή τι γίνεται γενικότερα εάν βαφτίσω μία κλάση μου με το ίδιο όνομα με μία κλάση της Ruby;</p><p>Η απάντηση είναι ότι δεν ακυρώνετε την κλάση Array ή την αντίστοιχη άλλη της Ruby. Αλλά την επεκτείνετε. Εάν π.χ. γράψετε:</p><pre>class Array
def a_new_method
….
end
end</pre><p>προσθέτετε στον κώδικα της Array άλλη μία μέθοδο. Ακόμη έχω τη δυνατότητα να ορίσω μία υπάρχουσα μέθοδο της Array. Πρακτικά είναι σαν την κάνετε overload μόνο για το πρόγραμμά σας κάτι που ίσως να είναι επιθυμητό κάποιες φορές.</p><p>Γενικά, εάν δεν είστε σίγουροι πειραματιστείτε, ψάξτε και διαβάστε. Με αυτόν τον τρόπο θα μάθετε πως να φέρετε τη Ruby στα μέτρα σας και να μη σας φέρει εκείνη στα δικά της.</p><h2>Επίλογος</h2><p>Η Ruby είναι πράγματι μία αντικειμενοστραφής γλώσσα προγραμματισμού. Εφόσον είστε εξοικειωμένοι με τον αντικειμενοστραφή προγραμματισμό δε θα δυσκολευτείτε. Πειραματιστείτε και θα γοητευθείτε από το γεγονός ότι όλα στη Ruby είναι κλάσεις, ακόμα και η εκτέλεση του κώδικά σας γίνετε όπως είδαμε μέσω της κλάσης Object.</p><div><br
clear="all" /></p><hr
align="left" size="1" width="33%" /><div><a
title="" name="ss1">[1]</a> Θυμίζουν λίγο τα interfaces που συναντάμε σε άλλες γλώσσες όπως π.χ. java.</div></div> ]]></content:encoded> <wfw:commentRss>http://greektuts.net/classes-in-ruby/feed/</wfw:commentRss> <slash:comments>0</slash:comments> </item> <item><title>Χριστουγεννιάτικος Διαγωνισμός Web4you από την dnHost!</title><link>http://greektuts.net/dnhost-web4you/</link> <comments>http://greektuts.net/dnhost-web4you/#comments</comments> <pubDate>Mon, 21 Nov 2011 20:47:57 +0000</pubDate> <dc:creator>Pantso</dc:creator> <category><![CDATA[Διαγωνισμοί]]></category> <category><![CDATA[contest]]></category> <category><![CDATA[dnhost]]></category> <category><![CDATA[facebook]]></category> <category><![CDATA[iphone]]></category> <category><![CDATA[διαγωνισμός]]></category> <category><![CDATA[διαγωνισμός dnhost]]></category> <category><![CDATA[Δωρεάν]]></category> <category><![CDATA[κάντε like]]></category> <category><![CDATA[πακέτα φιλοξενίας]]></category> <category><![CDATA[χριστουγεννιάτικος διαγωνισμός dnhost]]></category> <guid
isPermaLink="false">http://greektuts.net/?p=5590</guid> <description><![CDATA[Τα Χριστούγεννα πλησιάζουν και η dnHost θέλει να μοιράσει πολλά δώρα στους φίλους της, παλιούς και νέους! Διαβάστε περισσότερα για τον διαγωνισμό που διοργανώνει ο μεγάλος χορηγός μας, για όλους τους φίλους του στο Facebook, και μάθετε πως μπορείτε να κερδίσετε και εσείς τα Χριστουγεννιάτικα δώρα σας. Αργότερα]]></description> <content:encoded><![CDATA[<p>Τα Χριστούγεννα πλησιάζουν και η dnHost θέλει να μοιράσει πολλά δώρα στους φίλους της, παλιούς και νέους! Γι’ αυτό το λόγο ξεκινάει στις<strong> 28/11</strong> ο μεγάλος καθημερινός διαγωνισμός μας <strong>Web4you</strong> στον οποίο 100 φίλοι μας θα κερδίσουν basic <strong>πακέτα hosting αξίας 50,88 ευρώ το καθένα</strong>!</p><p>Για να κερδίσετε και εσείς κάντε <strong>like</strong> στην <a
title="dnHost Facebook" href="https://www.facebook.com/dnhost" target="_blank">σελίδα της dnHost στο facebook</a> και γράψτε ένα απλό comment στο καθημερινό post που θα αναρτάται κάποια τυχαία στιγμή της ημέρας σχετικά με τον διαγωνισμό, από τους διαχειριστές της σελίδας μας. Τα <strong>5 πρώτα comment</strong> που θα γίνονται θα κερδίζουν χωρίς κλήρωση από ένα πακέτο!</p><p><strong>Web4you</strong> λοιπόν, κάντε<a
title="dnHost Facebook" href="https://www.facebook.com/dnhost" target="_blank"> like στη σελίδα μας </a>και μείνετε συντονισμένοι για να κερδίσετε και εσείς αμέσως ένα basic πακέτο hosting από την dnHost!</p><p>Όμως δε σταματάμε εδώ, το web4you συνεχίζει για όλους τους φίλους μας!</p><p>Όλοι όσοι γίνουν φίλοι μας την περίοδο των Χριστουγέννων μπαίνουν στη μεγάλη κλήρωση για ένα από τα νέα <strong>iPhone 4s 32GB αξίας 789 ευρώ</strong>!!!</p><blockquote><p><img
class="aligncenter size-full wp-image-5595" title="Web4You" src="http://static.greektuts.net/uploads/2011/11/web4you-large.jpg" alt="" width="520" height="313" /></p></blockquote><p>Το μόνο που πρέπει να κάνετε είναι <a
title="dnHost Facebook" href="https://www.facebook.com/dnhost" target="_blank">like στη σελίδα μας στο facebook</a> και θα είστε και εσείς στην κλήρωση, τόσο απλά!</p><p>Αν τώρα θέλετε να κερδίσετε περισσότερες συμμετοχές για την κλήρωση του <strong>iPhone 4s 32GB</strong> το μόνο που έχετε να κάνετε είναι να πείτε σε φίλους σας να κάνουν like στη σελίδα μας στο facebook και να μας στείλετε ένα mail στο <em><strong>web4you@dnhost.gr</strong></em> με τα ψευδώνυμα αυτών που έκαναν like. Με αυτό τον τρόπο κερδίζετε περισσότερες συμμετοχές στην μεγάλη κλήρωση για το iphone 4s 32GB και δίνετε την ευκαιρία στους φίλους σας να συμμετέχουν και αυτοί με ένα <strong>like</strong>!</p><p>Είμαστε μόνο ένα κλικ μακριά σας, σας περιμένουμε όλους στην παρέα μας, να γνωριστούμε, να μιλήσουμε, να σας μοιράσουμε πολλά δώρα και όλα αυτά απλά με ένα like!</p><p>Καλές γιορτές!</p><p>dnHost</p><p><a
title="dnHost" href="http://www.dnhost.gr" target="_blank">www.dnhost.gr</a></p> ]]></content:encoded> <wfw:commentRss>http://greektuts.net/dnhost-web4you/feed/</wfw:commentRss> <slash:comments>2</slash:comments> </item> <item><title>Εντολές ελέγχου και συναρτήσεις στη Ruby</title><link>http://greektuts.net/diving-into-ruby-control-commands-and-functions/</link> <comments>http://greektuts.net/diving-into-ruby-control-commands-and-functions/#comments</comments> <pubDate>Mon, 14 Nov 2011 15:48:41 +0000</pubDate> <dc:creator>kkostopoulos</dc:creator> <category><![CDATA[Ruby]]></category> <category><![CDATA[control]]></category> <category><![CDATA[functions]]></category> <category><![CDATA[ruby]]></category> <category><![CDATA[ruby on rails]]></category> <category><![CDATA[ruby tutorial]]></category> <category><![CDATA[ruby tutς]]></category> <category><![CDATA[βοήθημα ruby]]></category> <category><![CDATA[εισαγωγή στην ruby]]></category> <category><![CDATA[εντολές ελέγχου]]></category> <category><![CDATA[κωσταντίνο κωστόπουλος]]></category> <category><![CDATA[συναρτήσεις]]></category> <guid
isPermaLink="false">http://greektuts.net/?p=5574</guid> <description><![CDATA[Στο προηγούμενο μάθημα παρουσιάσαμε  τα γενικά χαρακτηριστικά της Ruby και ασχοληθήκαμε με  την irb (ακόμα και για την online έκδοση). Είδαμε το πόσο εύκολα εγκαθίσταται η Ruby, μιλήσαμε για τους τελεστές της, τα ruby gems καθώς επίσης για  πως κάνουμε απλά loops και για την εντολή if. Αυτή τη φορά θα ασχοληθούμε με άλλες εντολές ελέγχου και βρόγχου καθώς και με το πως γράφουμε δικές μας συναρτήσεις. Εάν γνωρίζετε κάποια άλλη γλώσσα προγραμματισμού δε θα δυσκολευτείτε καθόλου από όσα θα δούμε σήμερα.]]></description> <content:encoded><![CDATA[<h1>Εντολές ελέγχου και βρόχων επανάληψης</h1><h2>Τελεστής ? :</h2><p>Έχουμε ήδη μιλήσει για την εντολή if στη Ruby,  πριν όμως προχωρήσουμε αξίζει να αναφέρουμε ότι στη Ruby θα βρείτε τον τελεστή που συναντάμε και στη C/C++  “συνθήκη <strong>?</strong> εντολή εάν ισχύει η συνθήκη <strong>:</strong> εντολή εάν ΔΕΝ ισχύει η συνθήκη”. Δηλαδή εάν ισχύει η συνθήκη εκτελείται η πρώτη εντολή, αλλιώς η δεύτερη.</p><p>Δοκιμάστε το εξής αρχείο (if_operator.rb) που περιέχει κώδικα από το επίσημο wiki books της Ruby (<a
href="http://en.wikibooks.org/wiki/Ruby_Programming/Syntax/Control_Structures">http://en.wikibooks.org/wiki/Ruby_Programming/Syntax/Control_Structures</a> , στο οποίο μπορείτε να βρείτε πρόσθετο υλικό για μελέτη):</p><pre>
a = 5
plus_or_minus = '+'
print "The number #{a}#{plus_or_minus}1 is: " + (plus_or_minus == '+' ? (a+1).to_s : (a-1).to_s)<strong>+</strong> "."
=&gt;The number 5+1 is: 6.
</pre><p>Το #{} και τη μέθοδο to_s τα αναφέραμε την προηγούμενη φορά.  Η print χρησιμοποιείται εδώ στη θέση της puts. Εν συντομία, ο τελεστής ελέγχει εάν θέλουμε να κάνουμε πρόσθεση ή αφαίρεση και εκτελεί την αντίστοιχη πράξη. Δοκιμάστε να αλλάξετε το plus_or_minus σε &#8216;-&#8217;. Επίσης σημειώστε ότι τα + που είναι υπογραμμισμένα χρησιμοποιούνται για να προσθέσουν Strings , πρακτικά “κολλάνε” το κείμενο με τις επεξηγήσεις με το αποτέλεσμα του τελεστή ? :.</p><h2>.times</h2><p>Έχουμε ήδη δει την 1.upto(5). Στη Ruby υπάρχει ένας ακόμα απλός τρόπος για τη δημιουργία loops. Δείτε τον παρακάτω κώδικα (αρχείο times.rb):</p><pre>
6.times{puts "This is a simple loop"}
puts ""
5.times do
puts "And this is a way to write a loop with more than one instructions"
end
=&gt;
</pre><blockquote><p> This is a simple loop<br
/> This is a simple loop<br
/> This is a simple loop<br
/> This is a simple loop<br
/> This is a simple loop<br
/> This is a simple loop<br
/> &nbsp;<br
/> And this is a way to write a loop with more than one instructions<br
/> And this is a way to write a loop with more than one instructions<br
/> And this is a way to write a loop with more than one instructions<br
/> And this is a way to write a loop with more than one instructions<br
/> And this is a way to write a loop with more than one instructions</p></blockquote><p>Είναι εύκολο να καταλάβουμε ότι η times είναι ιδιαίτερα βολική για απλά loops στα οποία ξέρουμε πόσες επαναλήψεις θέλουμε. Επίσης, σημειώστε ότι γενικά στη Ruby μπορούμε να έχουμε {} με μία εντολή μέσα τους ή να χρησιμοποιήσουμε τη δομή do-end ώστε να ορίσουμε ένα block εντολών.</p><h2>unless</h2><p>Συνεχίζουμε με την εντολή unless.  Από το όνομα και μόνο μπορείτε να καταλάβετε γιατί μιλάμε. Δοκιμάστε να τρέξετε τον παρακάτω κώδικα (unless.rb)</p><pre>
1.upto(5) do |x|
unless x!=3#αντί δηλαδή του if x==3
x=-3
end
puts x
end
=&gt;
</pre><blockquote><p> 1<br
/> 2<br
/> -3<br
/> 4<br
/> 5</p></blockquote><p>Όπως παρατηρείτε,  πρόκειται για την αντίθετη ή καλύτερα δυϊκή της if. Δηλαδή η εντολή ή οι εντολές μέσα στο block unless-end εκτελείται/εκτελούνται όταν δεν ισχύει η συνθήκη ελέγχου. Δοκιμάστε για παράδειγμα να αλλάξετε τον έλεγχο από x!=3 σε x==3. Τι παρατηρείτε;</p><h2>case</h2><p>Όπως σχεδόν σε όλες τις γλώσσες έτσι και εδώ με την case ελέγχουμε την τιμή μίας μεταβλητής χωρίς να βάλουμε πολλαπλά if  ή if-else. Ας δούμε ένα παράδειγμα όπου ελέγχουμε την τιμή ενός αριθμού (αρχείο case.rb):</p><pre>
number = 20
puts case number
when 0..100 then "#{number} is less than 100"
when 100..200 then "#{number} is greater than 100 and less than 200"
when 200..300 then "#{number} is greater than 200 and less than 300"
else "#{number} out of range.Please try again with different number."
end
=&gt;20 is less than 100
&nbsp;
</pre><p>Όπως είναι φανερό η δομή της εντολής είναι:</p><p>case τιμή για έλεγχο</p><pre>
when τιμή then …
when τιμή then …
else #προληπτικά, εκτελείται εφόσον δεν ισχύει καμία από τις παραπάνω συνθήκες
end
</pre><p>Με τη βοήθεια της κλάσης Range, που είδαμε και την προηγούμενη φορά, μπορούμε να ελέγξουμε όχι μόνο εάν η μεταβλητή number έχει μία συγκεκριμένη τιμή, όπως π.χ. σε άλλες γλώσσες, αλλά ακόμα και αν ανήκει σε συγκεκριμένο εύρος τιμών.</p><p>Επίσης, μπορούμε να βάλουμε την εντολή puts πριν την case. Σε αυτή την περίπτωση η case δίνει ως έξοδο το κείμενο που είναι να εμφανιστεί κατά περίπτωση και η puts το δέχεται ως παράμετρο. Δηλαδή το αποτέλεσμα της μίας εντολής (εδώ της case) είναι είσοδος της άλλης (εν προκειμένω της puts). Εναλλακτικά μπορούμε να γράψουμε την εντολή puts σε κάθε μία περίπτωση (when then) του case. Δηλαδή ο παραπάνω κώδικας θα μπορούσε να γραφεί και ως :</p><pre>
number = 20
case number
when 0..100 then puts "#{number} is less than 100"
when 100..200 then puts "#{number} is greater than 100 and less than 200"
when 200..300 then puts "#{number} is greater than 200 and less than 300"
else puts "#{number} out of range.Please try again with different number."
end
=&gt;20 is less than 100
</pre><p>Εννοείται ότι μπορείτε να χρησιμοποιείτε όποιον τρόπο θέλετε καθώς δεν έχουν κάποια ιδιαίτερη διαφορά.</p><h2>while</h2><p>Δε θα μπορούσε φυσικά να λείπει η while. Η μορφή της είναι :</p><pre>
while συνθήκη
...
end
</pre><p>Ένα απλό παράδειγμα χρήσης της μπορείτε να βρείτε στο αρχείο while.rb :</p><pre>
number = 5#πρέπει να είναι &gt;=1
result = 1
while number!=1
result*=number
number-=1
end
puts result
=&gt;120
</pre><p>Η λογική είναι πολύ απλή. Στην πράξη με αυτό το while υπολογίζουμε το παραγοντικό του αριθμού number. Να σημειώσουμε βέβαια ότι όπως είναι γραμμένος ο κώδικας πρέπει number&gt;=1 διαφορετικά θα λαμβάνουμε ως αποτέλεσμα το 1-αρχική τιμή της result- επ’ αόριστον. Για αυτό, όπως σε όλες τις γλώσσες προγραμματισμού πρέπει να φροντίσουμε να ισχύσει κάποτε η συνθήκη τερματισμού του βρόχου.</p><h2>until</h2><p>Πρόκειται για άλλον έναν τρόπο δημιουργίας loops. Η γενική μορφή σύνταξης είναι:</p><pre>
until  συνθήκη
....
end
</pre><p>Δηλαδή έως ότου να ικανοποιηθεί η συνθήκη ο κώδικας μέσα στο block (until – end) θα εκτελείται. Φυσικά πρέπει να φροντίσουμε ώστε η συνθήκη κάποτε να ικανοποιηθεί για να μην έχουμε ατέρμονα βρόχο.</p><p>Δείτε για παράδειγμα τον παρακάτω κώδικα (αρχείο until.rb):</p><pre>
number = 5
result = 1
until number==1
result*=number
number-=1
end
puts result
=&gt;120
</pre><p>Όπως είναι φανερό μπορούμε να αντικαταστήσουμε το while number!=1 με το until number==1 χωρίς να αλλάξει το αποτέλεσμα. Το ποια εντολή θα χρησιμοποιήσουμε είναι καθαρά θέμα του τι θέλουμε να κάνουμε αλλά και θέμα ευκολίας.</p><p>Θα ήθελα να σας μιλήσω και για την εντολή yield αλλά πριν θα ήταν καλό να μιλήσουμε για το πως φτιάχνουμε συναρτήσεις στη Ruby.</p><h1>Δημιουργία συναρτήσεων</h1><p>Για όσους έχετε ασχοληθεί με Python, μία γλώσσα που προσωπικά θεωρώ αρκετά αξιόλογη, θα έχετε ήδη διαπιστώσει πως η Ruby έχει αρκετά κοινά στοιχεία  με την Python (ευτυχώς για μένα δεν κράτησε τον πονοκέφαλο των κενών). Άλλωστε το είχαμε πει και στο εισαγωγικό μάθημα η Ruby κράτησε τα καλύτερα στοιχεία πολλών γλωσσών όπως π.χ. Python, Small Talk κ.ά..  Έτσι, λοιπόν, εάν γνωρίζετε πως να ορίζετε συναρτήσεις στην Python δε θα δείτε κάποια διαφορά., καθώς χρησιμοποιείται και εδώ η δομή def-end.</p><p>Π.χ. έστω ότι θέλουμε να γράψουμε τη συνάρτηση min. Βέβαια, θα μπορούσαμε να το κάνουμε με τη βοήθεια του τελεστή ?: σε μία γραμμή ( αρχείο min.rb):</p><pre>
a=2
b=3
puts (a&lt;b) ? a : b
=&gt;2
&nbsp;
</pre><p>Για να πειραματιστούμε όμως, θα την κάνουμε  και συνάρτηση. Έτσι έχουμε (αρχείο min_fun):</p><pre>
def minimum a,b
(a&lt;b) ? a : b# μπορούμε να γράψουμε και return (a&lt;b) ? a : b
end
puts minimum(2,3)
=&gt;2
</pre><p>Καταρχήν παρατηρείστε ότι στο ίδιο αρχείο που ορίζουμε τη συνάρτηση μπορούμε να κάνουμε και την κλήση της συνάρτησης. Ακόμη, δεν δηλώσαμε τον επιστρεφόμενο τύπο (π.χ. void, int, string) όπως γίνεται σε άλλες γλώσσες. Επίσης, παρατηρήστε ότι στη Ruby υπάρχει η εντολή return την οποία μπορείτε να χρησιμοποιήσετε κατά τα γνωστά για να σας επιστρέψει το αποτέλεσμα τις συνάρτησης ∙ αλλά στην προκειμένη περίπτωση εσκεμμένα δε χρησιμοποιήθηκε. Και αυτό έγινε για να έχετε υπόψη σας ότι η Ruby εάν δεν δει return μέσα σε μία συνάρτηση επιστρέφει το αποτέλεσμα της τελευταίας εντολής εντός της συνάρτησης που εκτελέστηκε. Και σε περίπτωση που δεν υπάρχει κάποιο αποτέλεσμα να επιστρέψει τότε θα λάβετε nil.  Αν το ξεχάσετε  μπορεί να βρεθείτε σε δυσάρεστες καταστάσεις ή να ξοδέψετε πολύτιμο χρόνο προσπαθώντας να καταλάβετε γιατί συμβαίνει αυτό.</p><h1>yield</h1><p>Μία εντολή της Ruby που ξενίζει και παίδεψε ομολογουμένως και τον γράφων μέχρι να εξοικειωθεί μαζί της, είναι η yield. Αξίζει να ασχοληθείτε μαζί της καθώς κατανοώντας την μπορείτε να κάνετε σύντομα και κομψά αυτό που θέλετε.  Για να το πετύχετε αυτό θα πρέπει να πειραματιστείτε.</p><p>Για τη yield έχετε υπόψη σας πως όταν τη χρησιμοποιείτε λαμβάνει ως είσοδο ένα κομμάτι κώδικα και το εκτελεί. Το πιο χαρακτηριστικό παράδειγμα που δίνεται συχνά για να γίνει αυτό κατανοητό είναι το παρακάτω (αρχείο yield.rb):</p><pre>
def do3times
yield
yield
yield
end
&nbsp;
do3times { puts "yielding..." }#δοκιμάστε να αλλάξετε το κείμενο αυτό
yield puts 4+5#δοκιμάστε να αλλάξετε το κείμενο αυτό
=&gt;
</pre><blockquote><p> yielding&#8230;<br
/> yielding&#8230;<br
/> yielding&#8230;</p><p>9</p></blockquote><p>Δηλαδή, στέλνοντας ως είσοδο στη συνάρτηση do3times το κομμάτι κώδικα «puts &#8220;yielding&#8230;&#8221;» αυτό το δέχονται οι 3 yield εντός της do3times ως είσοδο και το εκτελούν. Ομοίως και στην τελευταία εντολή η yield δέχεται ως είσοδο το κομμάτι κώδικα «puts 4+5» και το εκτελεί.</p><p>Στο βιβλίο <a
href="http://pragprog.com/book/ruby/programming-ruby">http://pragprog.com/book/ruby/programming-ruby</a> θα βρείτε ένα πολύ όμορφο παράδειγμα για τη yield που επίσης δίνεται συχνά για να εξηγηθεί η yield. Πρόκειται για τον υπολογισμό της ακολουθίας Fibonacci. Η ακολουθία δηλαδή όπου κάθε όρος είναι το άθροισμα των δύο προηγούμενων ξεκινώντας από το ένα. Δηλαδή οι αριθμοί 1,1,2,3,5,8,13,21&#8230; Χάρη στη yield αυτή η ακολουθία υπολογίζεται πολύ εύκολα (αρχείο yield_fibonacci):</p><pre>
def fibonacci(till_number)
i1, i2 = 1,1 #παράλληλη ανάθεση τιμών (i1=1 και i2=1)
while i1&lt;till_number
yield i1
i1, i2 = i2, i1+i2
end
end
fibonacci(1000) {|f| print f, " "}#εάν δοκιμάστε να καλέστε απλώς fibonacci(1000)
# θα πάρετε μήνυμα λάθους
#yield_fibonacci.rb:5:in `fibonacci': no block given #(yield) (LocalJumpError)
#from yield_fibonacci.rb:9:in `&lt;main&gt;'
=&gt;
</pre><blockquote><p> 1 1 2 3 5 8 13 21 34 55 89 144 233 377 610 987</p></blockquote><p>Καταρχήν να εξηγήσουμε  τα απλά, δηλαδή την παράλληλη ανάθεση, η οποία μας βοηθάει να αρχικοποιήσουμε τα  i1 , i2=1,1 με μία εντολή αλλά και να υπολογίσουμε τον επόμενο όρο με την εντολή i1 , i2 = i2, i1+i2. Ένα άλλο απλό πραγματάκι που πρέπει να επισημάνουμε είναι ότι λόγω της yield εάν γράφαμε απλώς fibonacci(1000) θα παίρναμε το μήνυμα λάθους που αναγράφετε στα σχόλια, δηλαδή η yield περιμένει κάτι ως είσοδο και δεν το λαμβάνει. Στη συγκεκριμένη περίπτωση η εντολή yield i1 επειδή είπαμε {|f| print f, &#8221; &#8220;} εμφανίζει στην κονσόλα τα αποτελέσματα, δηλαδή την ακολουθία Fibonacci μέχρι τον αριθμό 1000.</p><h1>Επίλογος</h1><p>Κάπου εδώ θα σας αφήσω και πάλι για να πειραματιστείτε. Εάν ξέρετε ήδη κάποια γλώσσα προγραμματισμού θα είδατε πως οι βασικές εντολές είναι ίδιες, όπως άλλωστε είναι αναμενόμενο. Από εκεί και πέρα υπάρχουν και κάποια πρόσθετα στοιχεία όπως η πολύ ενδιαφέρουσα yield.</p><p>Μέχρι την επόμενη φορά καλό πειραματισμό!</p><blockquote><p
style="text-align: center;"><em><strong>Μπορείτε να κατεβάσετε τα    αρχεία του βοηθήματος εδώ</strong></em></p><p
style="text-align: center;"><a
href="http://static.greektuts.net/uploads/2011/11/ruby-part2.zip"><img
width="200" height="200" alt="download" src="../wp-content/uploads/2009/10/membersdownload1.png" class="aligncenter"></a></p></blockquote> ]]></content:encoded> <wfw:commentRss>http://greektuts.net/diving-into-ruby-control-commands-and-functions/feed/</wfw:commentRss> <slash:comments>0</slash:comments> </item> <item><title>Διαβάστε στο PC Magazine Νοεμβρίου</title><link>http://greektuts.net/greektuts-articles-for-pc-magazine-novembe2011/</link> <comments>http://greektuts.net/greektuts-articles-for-pc-magazine-novembe2011/#comments</comments> <pubDate>Thu, 10 Nov 2011 07:00:10 +0000</pubDate> <dc:creator>Pantso</dc:creator> <category><![CDATA[Νέα]]></category> <guid
isPermaLink="false">http://greektuts.net/?p=5558</guid> <description><![CDATA[To PC Magazine Νοεμβρίου κυκλοφόρησε και φυσικά δεν θα μπορούσε να λείπει το αποκλειστικό άρθρο του GreekTuts. Διαβάστε περισσότερα για το τι θα μάθουμε αυτό το μήνα μέσα από το μεγαλύτερο περιοδικό τεχνολογίας και υπολογιστών στην Ελλάδα.]]></description> <content:encoded><![CDATA[<p>Κάθε μήνα, στο PC Magazine Ελλάδος, θα δημοσιεύεται ένα βοήθημα πάνω σε θέματα Web Design, Web Development, αλλά και οδηγοί για γλώσσες προγραμματισμού, πάντα με την σφραγίδα του GreekTuts.net.</p><h1>Ενσωματώστε Print styles στην ιστοσελίδα σας για να είναι κομψή ακόμη και εκτυπωμένη</h1><p>Στο τεύχος Νοεμβρίου θα δούμε πως μπορούμε να δημιουργήσουμε σωστά print styles για την ιστοσελίδα μας, αφού το να μπορεί κάποιος να εκτυπώσει και να διαβάσει την ιστοσελίδα μας σε χαρτί.</p><p><a
href="http://e-pcmag.gr/magazine/noembrios-2011">Περισσότερα για το τέυχος Νοεμβρίου</a></p> ]]></content:encoded> <wfw:commentRss>http://greektuts.net/greektuts-articles-for-pc-magazine-novembe2011/feed/</wfw:commentRss> <slash:comments>0</slash:comments> </item> <item><title>WordPress SEO μέρος 2ο: Λέξεις κλειδιά, βασικές ρυθμίσεις και μόνιμοι σύνδεσμοι στο WordPress</title><link>http://greektuts.net/wordpress-seo-part-2-keywords-settings-permalinks/</link> <comments>http://greektuts.net/wordpress-seo-part-2-keywords-settings-permalinks/#comments</comments> <pubDate>Wed, 09 Nov 2011 16:01:16 +0000</pubDate> <dc:creator>kostasmoser</dc:creator> <category><![CDATA[Wordpress]]></category> <category><![CDATA[Οδηγος Χρήσης]]></category> <category><![CDATA[kostas]]></category> <category><![CDATA[moser]]></category> <category><![CDATA[moser kostas]]></category> <category><![CDATA[permalinks]]></category> <category><![CDATA[search engine]]></category> <category><![CDATA[search engine optimization]]></category> <category><![CDATA[seo]]></category> <category><![CDATA[settings]]></category> <category><![CDATA[wordpress seo]]></category> <category><![CDATA[εισαγωγή στο seo]]></category> <category><![CDATA[μέρος 2ο]]></category> <category><![CDATA[μόσερ κώστας]]></category> <guid
isPermaLink="false">http://greektuts.net/?p=5526</guid> <description><![CDATA[Σήμερα θα δούμε πως μπορούμε να εντοπίσουμε τις σωστές λέξεις κλειδιά για το blog μας μερικές ρυθμίσεις που μπορούμε να κάνουμε στο Wordpress αμέσως μετά την εγκατάστασή του καθώς και με ένα παντοδύναμο εργαλείο που μας προσφέρει το Wordpress! Την εύκολη επιλογή για το πώς θέλουμε να εμφανίζονται τα urls των άρθρων μας.]]></description> <content:encoded><![CDATA[<h1>Εντοπίζοντας τις λέξεις κλειδιά που σας ενδιαφέρουν</h1><p>Οι λέξεις κλειδιά είναι ίσως το σημαντικότερο κομμάτι του on-page SEO. Η σωστή χρήση τους επηρεάζει την ιστοσελίδα σας στο μεγαλύτερο βαθμό από όλους τους άλλους παράγοντες που έχουμε ήδη αναφέρει. Πως όμως μπορεί να γίνει σωστή χρήση σε λέξεις κλειδιά αν δεν εντοπίσετε πρώτα τις σωστές!</p><p>Αφού έχετε καταγράψει όλες τις πιθανές λέξεις κλειδιά μπορείτε να τις προσθέσετε στο <a
title="Google Keyword Tool" href="https://adwords.google.com/select/KeywordToolExternal" target="_blank">Keyword Tool</a> της Google ώστε να δείτε τις σας προτείνει και να πάρετε νέες ιδέες. Επίσης μπορείτε να ψάξετε στο Google για αυτές τις λέξεις κλειδιά να σημειώσετε τα πρώτα αποτελέσματα και να περιηγηθείτε σε αυτές τις ιστοσελίδες που βγαίνουν πρώτες ώστε να πάρετε ιδέες και να δείτε πως λειτουργούν αυτές.</p><p>Πολλοί αγνοούν πλήρως αυτή τη διαδικασία ή την αναβάλουν για αργότερα. Η αναζήτηση των λέξεων κλειδιά είναι μια πάρα πολύ σημαντική διαδικασία και αποτελεί το θεμέλιο για την ιστοσελίδα σας. Μπορεί φυσικά να γίνει και σε μια ήδη υπάρχουσα ιστοσελίδα αλλά τότε τα πράγματα είναι πολύ πιο χρονοβόρα και καλό είναι εφόσον υπάρχει η δυνατότητα να γίνεται πριν από την κατασκευή της ιστοσελίδας.</p><p>Αφού λοιπόν σημειώσετε όλες τις λέξεις κλειδιά που σας ενδιαφέρουν στα επόμενα μέρη του tutorial θα δούμε πως θα κάνουμε πλήρη χρήση αυτών.</p><hr/><h1>Μερικές βασικές ρυθμίσεις στο WordPress</h1><p>Αφού συνδεθούμε στην διαχείριση του WordPress (todomainsas.gr/wp-admin) πάμε στο μενού «Ρυθμίσεις». Πατώντας στο «Γενικά» γράφουμε τον τίτλο του blog μας και μια μικρή περιγραφή για αυτό επιλέγουμε την σωστή ώρα και το πώς θέλουμε να εμφανίζεται η ημερομηνία και η ώρα στα άρθρα που δημιουργούμε.</p><blockquote><p><img
class="aligncenter size-full wp-image-5537" title="general-settings" src="http://static.greektuts.net/uploads/2011/11/general-settings1.jpg" alt="" width="539" height="392" /></p></blockquote><p
style="text-align: center;"><em>Προσοχή: Μην αλλάξετε τα πεδία URL εγκατάστασης και URL ισοτόπου!</em></p><hr/><h1>Μόνιμοι Σύνδεσμοι (Permalinks)</h1><p>Οι μόνιμοι σύνδεσμοι είναι ο τρόπος με τον οποίο θα εμφανίζονται τα διάφορα urls στο blog σας. Αυτό περιλαμβάνει τις διευθύνσεις των άρθρων σας, των σελίδων σας, των ετικετών (tags) κλπ.</p><p>Για να έχετε ένα SEO Optimized blog θα πρέπει να αλλάξετε αυτές τις ρυθμίσεις ώστε να εμφανίζονται λέξεις κλειδιά στα urls της ιστοσελίδας σας και όχι απλά αριθμοί. Ας δούμε όμως ποιες επιλογές μας δίνει το WordPress. Μεταβείτε στο μενού Ρυθμίσεις -&gt; Μόνιμοι Σύνδεσμοι:</p><blockquote><p><img
class="aligncenter size-full wp-image-5546" title="permalinks" src="http://static.greektuts.net/uploads/2011/11/permalinks.jpg" alt="" width="540" height="430" /></p></blockquote><p>Όπως βλέπετε το WordPress μας δίνει ήδη την δυνατότητα να χρησιμοποιήσουμε κάποιον από τους ήδη υπάρχοντες τρόπους εμφάνισης των urls (Προεπιλογή, Ημέρα και όνομα, Μήνας και όνομα, Αριθμός) ή να ορίσουμε εμείς πως θα εμφανίζονται τα urls των άρθρων μας. Αυτό γίνεται μέσω της χρήσης κάποιων έτοιμων shortcodes τα οποία είναι:</p><blockquote><p><strong>%year%</strong>: Το έτος δημιουργίας του άρθρου (πχ: 2012)<br
/> <strong>%monthnum%</strong>: Ο μήνας δημιουργίας του άρθρου (πχ: 1,&#8230;,12 )<br
/> <strong>%day%</strong>: Η ημέρα δημιουργίας του άρθρου (πχ: 1,…,31)</p></blockquote><p>%postname%: Ο τίτλος του άρθρου ή ότι έχουμε ορίσει εμείς στο πεδίο μόνιμος σύνδεσμος (post slug) μέσα στο κάθε άρθρο. Θα δούμε πιο αναλυτικά στην συνέχεια πως χρησιμοποιούμε το %postname% που είναι το πιο σημαντικό από SEO άποψη όσων αφορά τους μόνιμους συνδέσμους.</p><p><strong>%post_id%</strong>: Το ID του άρθρου που είναι μοναδικό για κάθε άρθρο. (πχ 423)</p><p><strong>%category%</strong>: Ο τίτλος της κατηγορίας που ανήκει το άρθρο (και πάλι εδώ εμφανίζεται ότι έχουμε ορίσει στο σύντομο όνομα της κατηγορίας).</p><p><strong>%author%</strong>: το όνομα του αρθρογράφου.</p><p>Περισσότερες επιλογές για τους μόνιμους συνδέσμους μπορείτε να βρείτε στο <a
title="WordPress Codex" href="http://codex.WordPress.org/Using_Permalinks">Codex του WordPress</a>.</p><p>Για να ορίσουμε λοιπόν τον τρόπο με τον οποίο θέλουμε να εμφανίζονται οι διευθύνσεις των άρθρων μας αρκεί να συμπληρώσουμε στο πεδίο Προσαρμοσμένη δομή αυτό που επιθυμούμε. Για να είναι SEO Optimized τα urls σας θα πρέπει οπωσδήποτε να χρησιμοποιήσετε το %postname%.</p><p>Βασικοί κανόνες που ακολουθούμε πάντα:</p><ol><li>Πρέπει πάντα να ξεκινάμε με μια κάθετο /</li><li>Χωρίζουμε τα shortcodes μεταξύ τους με την χρήση των συμβόλων: / &#8211; _</li><li>Μπορούμε να προσθέσουμε οτιδήποτε άλλο θέλουμε όπως για παράδειγμα να βάλουμε στο τέλος .html ή .php</li></ol><p>Ας δούμε μερικά παραδείγματα:</p><p>Υποθέτουμε πως έχουμε ένα άρθρο τίτλο «Το πρώτο μου ποστ» με μόνιμο σύνδεσμο (post slug) to-proto-moy-post, ανήκει στην κατηγορία «Γενικά» που έχει σαν category-slug το genika. Το άρθρο δημιουργήθηκε στις 24 / 10 / 2011 και έχει id το νούμερο 4567. Ας παίξουμε τώρα λίγο με μερικούς πιθανούς τρόπους που θα μπορούσε να εμφανίζεται το url αυτού του άρθρου (θυμίζουμε ξανά! ΠΑΝΤΑ πρέπει να περιλαμβάνετε το %postname% για να είναι το url SEO Optimized)</p><p>/%postname% -&gt; http://todomain.gr/to-proto-moy-post</p><p>/%postname%-%post_id% -&gt; http://todomain.gr/to-proto-moy-post-4567</p><p>/%category%/%postname%.html -&gt; http://todomain.gr/genika/to-proto-moy-post</p><p>/%year%/%monthnum%/%postname%-%post_id%.html -&gt; http://todomain.gr/2011/10/to-proto-moy-post-4567.html</p><p>Όπως βλέπετε οι επιλογές είναι πάρα πολλές. Από άποψη SEO το καλύτερο είναι το /%category%/%postname% ώστε να περιλαμβάνονται λέξεις κλειδιά πάντα.</p><p>Πως ορίζουμε τα σύντομα ονόματα των άρθρων και των κατηγοριών</p><p>Στην επεξεργασία του άρθρου θα παρατηρήσετε που κάτω από των τίτλο μας δίνει το WordPress την επιλογή να ορίσουμε εμείς τι θα εμφανίζεται σαν %postname%</p><blockquote><p><img
class="aligncenter size-full wp-image-5547" title="slug1" src="http://static.greektuts.net/uploads/2011/11/slug1.jpg" alt="" width="540" height="123" /></p></blockquote><p>Πατώντας το κουμπάκι Επεξεργασία μπορούμε να γράψουμε ότι θέλουμε και μετά να το αποθηκεύσουμε, και αυτός θα είναι πλέον ο μόνιμος σύνδεσμος για το άρθρο.</p><blockquote><p><img
class="aligncenter size-full wp-image-5548" title="slug2" src="http://static.greektuts.net/uploads/2011/11/slug2.jpg" alt="" width="540" height="123" /></p></blockquote><p>Στις κατηγορίες ισχύει το ίδιο και θα εμφανίζεται όταν καλείται το %category% ότι έχουμε γράψει το πεδίο σύντομο όνομα.</p><blockquote><p><img
class="aligncenter size-full wp-image-5549" title="category" src="http://static.greektuts.net/uploads/2011/11/category.jpg" alt="" width="540" height="183" /></p></blockquote><p>Το θέμα των permalinks σε μια ιστοσελίδα είναι πάρα πολύ σημαντικό και τα SEO Optimized url μπορούν να βοηθήσουν πάρα πολύ στην καλύτερη κατάταξή σας στις μηχανές αναζήτησης. Πάντα να βάζετε μια λέξη κλειδί στον μόνιμο σύνδεσμο του άρθρου σας και να προσπαθείτε να δίνετε στον χρήστη μια σύντομη εικόνα του τι πρόκειται να διαβάσει. Για παράδειγμα αν το άρθρο σας έχει τίτλο «Πώς να διαγράψετε το προφίλ σας στο Facebook» μπορείτε να χρησιμοποιήσετε σαν post slug το diagrafi-profil-facebook</p><p><strong>Tip</strong>: Αποφεύγετε να χρησιμοποιείτε προθέσεις, άρθρα, επιρρήματα στο post slug, δηλαδή, λέξεις όπως το «και», «το», «οι», «δεν», «για» κλπ καλό είναι να τις παραλείπετε.</p><p>Σήμερα είδαμε μερικές από τις πιο γνωστές δυνατότητες του WordPress που αφορούν το SEO (τη δύναμη των permalinks που μας την προσφέρει απλόχερα χωρίς την χρήση πολύπλοκων γραμμών κώδικα μέσα στο αρχείο .htaccess). Στο επόμενο μέρος θα μιλήσουμε για μια άλλη καταπληκτική λειτουργία του WordPress, τα Ping Services καθώς και την δημιουργία Sitemaps.</p> ]]></content:encoded> <wfw:commentRss>http://greektuts.net/wordpress-seo-part-2-keywords-settings-permalinks/feed/</wfw:commentRss> <slash:comments>1</slash:comments> </item> </channel> </rss>
