Thursday, December 26, 2013

Facebook authentication σε Django

  1. Λιγα λογια για το Facebook API
  2. Django && facebook
  3. django_facebook
    1. install
    2. config
    3. models
    4. views
  4. facebook on terminal

Tuesday, October 08, 2013

Πρωτα βηματα με OpenWrt

Αφου δεν κρατηθηκα αλλο, μετα την καινουργια εγκατασταση ADSL στο σπιτι απο τον παροχο, ειπα επιτελους να βαλω το δικο μου ρουτερακι και να παιξω με ενα πιο ανοιχτο συστημα. Για αρχη, λοιπον, αποφασισα να εγκαταστησω OpenWrt. Μετα επρεπε να διαλεξω ενα ρουτερακι που να υποστηριζετε απο το συγκεκριμενο software. Η επιλογη ηταν το TL-WR741ND της TP-LINK. Καταληλο για τη δουλεια που ηθελα και σε πολυ χαμηλη τιμη.

OpenWrt

Το OpenWrt ειναι ενα λειτουργικο συστημα Linux για embedded συστηματα. Δηλαδη ενα... Linux για ρουτερ. Με βαση αυτο, συνεπαγεται οτι συμπεριλαμβανει ενα kernel, ενα package manager και πολλα features που μπορουν να χρησιμοποιηθουν... Μερικα απο αυτα ssh server, bittorent client, VPN, Proxy server...  Μπορει να χρησιμοποιηθει για traffic-shaping ή QoS, για captive portal, για firewall, για portforwarding, για packet injection, monitoring, DNS και πολλα αλλα.

Εκδοσεις

Η τρεχουσα εκδοση ειναι η Attitude Adjustment 12.09. Πριν απο αυτη θα βρειτε την backfire ενω μπροστα μας ετοιμαζεται η Barrier Breaker.

Για το ποια θα εγκαταστησουμε θα το βρουμε στο wiki στη σελιδα του μοντελου που θα χρησιμοποιήσουμε. Οπου trunk σημαινει οτι το branch ακομα δεν εχει ονομα, και πιθανοτατα ακομα δουλευεται που σημαινει οτι αν δεν βρειτε καποιο πακετο ισως να υπαρξει αργοτερα.


Εγκατασταση

Τα βηματα περιγραφονται στο link του router. Καποιες σημειωσεις λοιπον:

  • το πακετο εχει περιγραφη *-factory.bin (πχ openwrt-ar71xx-generic-tl-wr741nd-v4-squashfs-factory.bin).
  • Κατεβαστε και το firmware του κατασκευαστη μηπως κατι δεν παει καλα.
  • Στο  tl-wr741nd λογω καποια πιθανης περιπτωσης που ισχυει σε καινουργια μοντελα, μπορει να χρειαστει να αλαξετε το *-factory.bin με το ονομα του αρχειου του κατασκευαστη. Προσωπικα εμενα δεν μου χρειαστηκε.
  • Σιγουρα θα χρειαστειτε Putty ειδικα αν ειστε σε windows και ακομα περισσοτερο αν κατεβασετε καποια εκδοση χωρις web interface εγκατεστημενο.  Κατι που μπορειτε να το βαλετε αργοτερα.
  • Αν θελουμε να επεκτεινουμε το χωρο αποθηκευσης υπαρχει ενα καλο αρθρο απο το φιλο Γιαννου στο Deltahacker. Google it...
Command Line Interface

Αφου ακολουθησετε τα βηματα  του οδηγου και εισαγετε των κωδικο του root
θα δειτε την παρακατω εικονα να εμφανιζετε στην κονσολα

BusyBox v1.19.4 (2013-09-25 00:25:36 UTC) built-in shell (ash)
Enter 'help' for a list of built-in commands.

  _______                     ________        __
 |       |.-----.-----.-----.|  |  |  |.----.|  |_
 |   -   ||  _  |  -__|     ||  |  |  ||   _||   _|
 |_______||   __|_____|__|__||________||__|  |____|
          |__| W I R E L E S S   F R E E D O M
 -----------------------------------------------------
 BARRIER BREAKER (Bleeding Edge, r38167)
 -----------------------------------------------------
  * 1/2 oz Galliano         Pour all ingredients into
  * 4 oz cold Coffee        an irish coffee mug filled
  * 1 1/2 oz Dark Rum       with crushed ice. Stir.
  * 2 tsp. Creme de Cacao
 -----------------------------------------------------
Καποια πραγματα που θα δειτε εδω ειναι την εκδοση του build-in bash που ονομαζετε ash και την εκδοση του BusyBox, ενω απο τα βασικα components (εκτος απο τον πυρηνα, το αλλο ειναι το uClibc) του OpenWrt το οποιο περιεχει καποια χρησιμα tools. Απο δω μπορουμε να χρησιμοποιησουμε τον package manager δινοντας opkg εγκαταστησουμε, διαγραψουμε ή να κανουμε update το συστημα.'Η να κανουμε σχεδον ολο το σεταρισμα με το uci.

Ας πουμε οτι θελουμε να εγκαταστησουμε το luci

opkg update
opkg list luci-* <Θα μας δωσει ολα τα διαθεσιμα πακετα>
opkg install luci-ssl <για υποστηριξη ssl>

Επισης θα προσεξατε τη συνταγη για το κοκτειλ. Ισως να προσεξατε οτι και τα ονοματα των εκδοσεων ειναι ονοματα απο κοκτειλ!!!!!

Χρηση σαν repeater

Για να το χρησιμοποιησουμε σαν repeater στο ηδη υπαρχον δικτυο, απλα συνδεουμε με ενα καλωδιο δικτυου ενα lan port στο wan port του openwrt router. Με την εγκατασταση ερχονται καποιες ηδη αρχικες ρυθμισεις οποτε αυτο θα παιξει αυτοματα λογικα.

Αν θελουμε να συνδεθουν wirelessly ακολουθουμε τα βηματα:
  1. Συνδεουμε lan port με lan port. 
  2. βρισκουμε την ip που μας εδωσε ο dhcp
  3. και αν εχουμε εγκατεστημενο web interface, παμε και δινουμε εκει την ip.
  4. Ενεργοποιουμαι το wifi
  5. Network>Wifi>Scan και βρισκουμε το δικτυο που θελουμε να συνδεθουμε
    1. essid: <wifi name>
    2. mode: client or client wps
    3. επιλεγουμε να δημιουργησει ενα αλλο δικτυο
    4. επιλεγουμε επισης advanced settings και στο ht mode διαλεγουμε 40MHz second channel above
  6. Παμε στο wifi που ενεργοποιησαμε πριν και δινουμε τα ιδια στοιχεια εκτος απο το mode. Επιλεγουμε AccessPoint για αυτο.Αν θελετε βαζετε διαφορετικα security settings
  7. Ελεγχουμε οτι τα δυο δικτυα εμφανιζονται κατω απο το Associated Stations
Δημιουργια Subnet

Για το WAN στο Hostname to send when requesting DHCP δινουμε hostname. Και κραταμε υποψιν οτι αν το modem εχει 192.168.1.1 πρεπει να αλλαξουμε το subnet στο router αλλιως δεν θα μπορεσει να δουλεψει το ιντερνετ.

Βασικα αφου ειναι ολα τα παραπανω οκ το μονο που θα κανουμε ειναι να παμε Network>Interface>lan>edit>General Setup και στο protocol δινουμε static address και IP4 address οριζουμε ενα αλλο δικτυο.

Και η αρχη εγινε...

Sunday, September 08, 2013

Fedora: Μια διανομη GNU/Linux

Πολλοι χρηστες των Windows εχουν σκεφτει κατα διαστηματα να βγαλουν το συγκεκριμενο λειτουργικο απο τους υπολογιστες τους για διαφορους λογους, οπως ασφαλειας, ελευθεριας ή λειτουργικοτητας. Καποιοι ισως γιατι αρχιζουν να ξαχνοντε και να ζητανε πιο advanved πραγματα να κανουνε. Αλλα τι θα μπορουσαν να εγκαταστησουν??


Αρκετοι σιγουρα θα εχουν σκεφτει να δοκιμασουν το linux. OK. Για αυτο θα μιλησουμε ετσι και αλλιως. Αλλα τι ειναι αυτο?? Πως το εγκαθιστουμε? Γιατι διαφερει και τι προσφερει? Πως λειτουργει? Πολλα ερωτηματα.... Καταρχην ειναι μια ξεχωριστη εμπειρια...

Και περνοντας τα πραγματα απο την αρχη και να λεμε τα πραγματα σωστα, παροτι ονομαζουμε λειτουργικο συστημα linux εννοουμε GNU/Linux. Ποια ειναι η διαφορα?? Το Linux ουσιαστικα δεν ειναι λειτουργικο. Ειναι ο πυρηνας. Καθε λειτουργικο εχει πυρηνα, το ιδιο και τα Windows. Ιστορικα λοιπον, το λειτουργικο ειναι το GNU το οποιο ξεκινησε να κατασκευαζεται το 1984. Ελειπε ομως ο πυρηνας. Κατι το οποιο ηρθε και δημιουργησε ο Linus Torvald και εδεσε για να δημιουργηθει το λειτουργικο που σημερα καλουμε Linux. Ολο αυτο εχει τη σημασια του και θα το δουμε αργοτερα, γι' αυτο κρατηστε το.

Το λειτουργικο αυτο λοιπον ειναι ελευθερο. Ελευθερο δεν σημαινει αναγκαστικα χωρις λεφτα. Σημαινει ομως οτι μπορεις να παρεις τον κωδικα και να φτιαξεις το δικο σου custom λειτουργικο συστημα. Ολα στα μετρα σου. Αυτο σημαινει ελευθερια. Αυτο που ουσιαστικα προσπαθησε να πετυχει το GNU project. Ενα εντελως ελευθερο και ανοικτο λειτουργικο(βασισμενο στο unix). Περνωντας τα χρονια πολλοι πηρανε τον καινουργιο πυρηνα και φτιαξανε τη δικη τους διανομη. Αυτη τη στιγμη υπαρχουν πανω απο 600 διανομες, οι οποιες δεν ειναι ολες active. Καθε μια μπορει να εξηπυρετει καποιο σκοπο, συγκεκριμενο λογο ή ιδεολογια. Για παραδειγμα το Edubuntu για την εκπαιδευση, το dsl για παλια μηχανηματα, knoppix σαν live cd, IPCop για router/firewall. Για το Desktop μας οπως μπορειτε να φανταστειτε και σαν εναλλακτικες υπαρχουν απειρες επιλογες. Το Fedora ειναι μια απο αυτες.



Το Fedora ειναι μια απο τις μεγαλυτερες και ενεργες διανομες που κατασκευαζεται απο το Fedora project. Προερχεται απο μια αλλη μεγαλη διανομη, τη Redhat η οποια αποφασισε καποια στιγμη να διαχωρισει το λειτουργικο της σε RHEL για εταιρειες και σε μια community διανομη για desktops. Αναμεσα στις δυο υπαρχει μεγαλη συνεργασια και μια δυνατη σχεση. Το Fedora ωστοσο στοχευει αλλου και αναπτυσετε ανεξαρτητα. Η RedHat χορηγει το Fedora Project και ενθαρυνει την συνεργασια για να εκκολαψει νεες τεχνολογιες που οταν πια θα ειναι stable μπορει να τις περασει στις δικες της εκδοσεις.

 Το Fedora ακολουθει πιστα τις αρχες του ανοικτου λογισμικου. Αναπτυσετε απο την κοινοτητα του και χρησιμοποιει μονο ανοικτο λογισμικο μεσα στις διανομες του. Σε καθε εκδοση περιλαμβανεται καθε νεα τεχνολογια ή προγραμμα αρκει να ειναι κατω απο ενα licence ανοικτου κωδικα. Αυτο βεβαια ειναι πολυ σημαντικο. Το να μπορεις να εχεις τα παντα σε ανοικτο κωδικα σημαινει οτι οποιος θελει μπορει να δει τι περιεχει ο κωδικας, να τον τροποποιησει και να τον μοιρασει ελευθερα. Σκεφτειτε το. Σημαινει ελευθερια επιλογης, ελεγχου και δυνατοτητα εξελιξης.

Για να λειτουργησει ολο το project υπαρχει μια τεραστια υποδομη που ελεγχεται απο ενα board εννια ατομων και εναν project leader που ειναι υπευθυνοι να διατηρουνται οι αρχες του λογισμικου, να κρατανε καλες τις σχεσεις αναμεσα στο fedoraproject και στη redhat και να φτανουν τους στοχους της κοινοτητας. Το board απαρτιζεται απο πεντε εκλεγμενους μεσα απο την κοινοτητα και τεσσερις που διαλεγονται απο τον Fedora Project Leader αναμεσα απο μελοι και υπαλληλους της RedHat. Κατω απο αυτη την υποδομη κατασκευαζονται και συντηρουνται επιπλεον project, απο εκατομμυρια εθελοντες.

Οπως καταλαβαινετε υπαρχει μια ιεραρχια, και μια πολυ σοβαρη υποδομη για να αναπτυχθει το Fedora και να συνεχισει το οραμα του. Στη σειρα που σκεφτομαι να ακολουθησει θα γραφω για αρχες και εννοιες του ανοικτου λογισμικου και θα περιγραφω λειτουργιες απο αυτη την τεραστια υποδομη που λεγετε Fedora Project για να γνωρισουμε καλυτερα το fedora.
 

Saturday, August 10, 2013

Flock_Live Streaming

Flock ειναι το νεο συνεδριο της Fedora κοινοτητας, που αντικαθηστα το παλιο FUDCon (Fedora Users and Developers Conference). Το συνεδριο ειναι τριημερο + μια μερα optional open hacking. Σε συγκριση με το παλιο FUDCon θα εχει πιο advanced talks και workshops. Πιο οργανωμενο λοιπον ηρθε και ειναι ανοιχτο σε ολο τον κοσμο.

Monday, July 15, 2013

Fedora 19 With Google-authenticator login

/home/Onuralp/Fedora19: Fedora 19 With Google-authenticator login: Hello  everyone ; Novadays I was thinking about how do I get more secure system on my Fedora 19. and one of the good thing about fedora It ...

Saturday, March 23, 2013

how to become a programmer

So many answers!! But the only think as conclusion of them are:

1: Write lots of code.
2: Show it to other Python programmer's for comment/criticism.
3: Show it to other non-Python programmer's who will question why you
did it a certain way.
4: Write lots of code.
5: Read about Python, product design (not just software), aesthetics, style.
Python idiom.
6: Spend time in an art museum.
7: Go back and review, re-document, and redesign what you wrote last year.
8: Use other languages (Lisp, Java, Smalltalk, C++, C#, Perl, ...) to
understand their approach to problem solving.
9: Test lots of code and try different approaches to solving the same problem.
10: Read lots of other people's code.
11: Walk through your code in the debugger.
12: Become familiar with one assembler language and walking through
it in a debugger.
13 Become comfortable with Python idioms so your code 'looks like'
the Python way to do things.
14: Oh yes, write lots of code.

The most of times these must be pretty enough!

Thursday, February 14, 2013

python script for send mails

ok. Πειραματίζομαι με την python. Δεν ξερω αν εχω αναφερει ποτε ποσο συμπαθω τη συγκεκριμένη γλωσσα. Ενας λογος είναι οτι μερικα πραγματα τα κάνει πολυ ευκολα και γρήγορα. Κατι το οποιο ειναι ζητουμενο πιστευω! Και το να γραψεις ενα προγραμματακι να στελνει mail με python ηταν πραγματικα παιχνιδακι. Δε θελετε να εχετε κατι ετοιμο στον υπολογιστη σας, ωστε οταν θα θελησετε να στειλετε ενα mail στη δουλεια σας, αντι να ανοιγετε browser, να πηγαινετε στη σελιδα του παροχου, να περιμενετε να φορτωσει η σελιδα και γενικα ολα οσα πρεπει να κανεις για να στειλεις ενα απλο email, απλα απο την κονσολα να τρεχετε το προγραμματακι, να γραφετε παραληπτη και το μηνυμα στο πι και φι.

Η version που χρησιμοποιησα ειναι 2.7.3. Το μοναδικο module που ουσιαστικα χρειαζεσαι για να υλοποιησεις την πιο απλη εκδοση ειναι το smtplib. Αυτο!! Τιποτα αλλο. Η υλοποιηση λοιπον περα απο το module απιτει να φτιαξουμε ενα smtp object, να κανουμε login στο server, και να στειλουμε το mail. Πραγματικα ποιο πολλα ειναι οσα γραφω παρα ολο το script.

Στην πραξη, οι παρακατω γραμμες κανουν ολη τη δουλεια που περιεγραψα:

 import smtplib

server = smtplib.SMTP_SSL(host,port,timeout=5)

server.login(usernm,passwd)

server.sendmail(fromaddr,toaddr,msg)
Οπως θα παρατηρειται το αντικειμενο που δημιουργησα ειναι SMTP_SSL. Και αυτο γιατι για Gmail λογαριασμους απαιτειται κρυπτογραφιση ssl. Ευτυχως το smtp module εχει αυτη και πολλες αλλες δυνατοτητες.

Τωρα το αντικειμενο smtp και smtp_ssl περνει καποιες παραμετρους. Η host ειναι η διευθυνση του smtp server. Η port η πορτα του server. Και τα δυο μπορουν να παραλυφθουν και τοτε θα χρησιμοποιήσουν το localhost και τη default πορτα για smtp, δηλ 25. Εγω απλα ελεγξα και το timeout, επιπλεον. Και για τα δυο αντικειμενα υπαρχουν επιπλεον επιλογες τις οποιες μπορειτε να βρειτε το doc της python.

Για να κανω πιο ενδιαφερον, πιο λειτουργικο και για να δειξω κατι ακομα απο το smtplib συνδυασα το παραπανω με μερικα ακομα πραγματα. Ηθελα λοιπον να ξεκιναω το προγραμμα με παραμετρο το mail account μου. Οταν ξεκιναγε λοιπον με ρωταγε που θα στειλω το μηνυμα και ποιο ηταν αυτο. Ολα περναγανε σε μεταβλητες που καταχωρουνταν στις παραπανω μεθοδους. Τελος ενεργοποίησα το debug mode για να βλεπω ολα τα μηνυματα της επικοινωνιας του server. Χωρις αλλα λογια:
import smtplib
import sys, getpass

usernm=sys.argv[1]
passwd=getpass.getpass("Give a passwd: ")

host='smtp.gmail.com'
port=465
def prompt(prompt):
    return raw_input(prompt).strip()

fromaddr=usernm
toaddr=prompt("To: ")
print "enter msg, end with ^D:"
msg=("from: %s\r\nTo: %s\r\n\r\n" % (fromaddr, ", ".join(toaddr)))

while 1:
    try:
        line=raw_input()
    except EOFError:
        break
    if not line:
        break
    msg=msg+line
print "Message length is "+repr(len(msg))

try:
    """create an SMTP object"""
    server = smtplib.SMTP_SSL(host,port,timeout=5)
    server.set_debuglevel(1)
    """log in to the server"""
    server.login(usernm,passwd)

except smtplib.SMTPException:
    print "General Error!!!"


""" send the mail"""
server.sendmail(fromaddr,toaddr,msg)
server.close()

Λιγα λογια ακομα. Το passwd αποθηκευει το password του λογαριασμου για το login. Ακομα δεν εχω πιστει αν αυτος ειναι ο πιο ασφαλες τρόπος αλλα anyway. Χρεισιμοποιουμε τις host, port, fromaddr, toaddr & msg για αποθηκευσουμε οτι πληροφοριες χρειαζομαστε. Και εχουμε μια loop για να διαβαζει γραμμη γραμμη το μηνυμα. Το οποιο τερματιζει οταν σε καινουργια γραμμη αντι για χαρακτηρας πληκτρολογηται ^D. Αυτο για Linux. Για Windows θελει ^Z.

Απο δω και περα ισως θελετε περισσοτερα, οπως το να βαλετε subject, ή να συμπεριλαβετε συννυμενα. Οκ γινεται αλλα πρεπει να παιξετε με ενα αλλο module, το email. Γενικα εμενα ολα αυτα μου φερανε πολλες εφαρμογες στο μυαλο για τη συνεχεια, αλλα το βασικα ειναι οτι τωρα εχω το δικο μου, γρηγορο και απλο τροπο να στελνω mail.