About

Archive for December, 2008

Το χάλι της Forthnet.

Ήμουν αρχικά πελάτης της Internet Helllas. Αυτή αγοράστηκε απο την Forthnet και μεταφέρθηκα αυτόματα εκεί. Απο τότε μέχρι σήμερα ήμουν πελάτης της Forthnet.

Πλήρωνα με πιστωτική κάρτα. Κάθε μήνα “τράβαγαν” τα χρήματα αυτόματα και όλα μια χαρά. Μέχρι που στις 29/12 ώρα 15:00 πέφτει η σύνδεσή μου και στα logs του modem βλέπω προσπάθεις για login με λάθος username/password.

Επειδή η πιστωτική κάρτα που χρησιμοποιώ ανανεώθηκε πρόσφατα (άρα άλλαξε ημερομηνία λήξης και CVV) και χρειάστηκε να την ενημερώσω σε πολλές υπηρεσίες (hosting/paypal κλπ) πήγε το μυαλό μου οτι κάτι τέτοιο συμβαίνει και έτσι μίλησα με το τμήμα πωλήσεων της Forthnet.

Αυτό είχε συμβεί και στο παρελθόν. Σε απενεργοποιούν και δεν μπορείς να κάνεις login. Τότε είχα πάρει τηλέφωνο τους έδωσα τα νέα στοιχεία τις κάρτα και όλα καλά.

Να σημειώσω πως και την προηγούμενη φορά, όπως και τώρα μου έκοψαν την σύνδεση χωρις προειδοποίηση. Κάτι που, αν θυμάμαι καλά, απαγορεύεται απο την ΕΕΤΤ. (και ο λογαριασμός δεν μετράει σαν προειδοποίηση. Ετσι και αλλιώς δεν λαμβάνω ,ομως, γιατί έχουν τα στοιχεία μου μπερδεμένα και δεν μπορούν τα τα φτιάξουν)

Στο τηλέφωνο μου λένε οτι υπάρχει ένα χρέος 7 τιμολόγια (7 μήνες δηλαδή). 2 τιμολόγια του 2005 (!?!) και τα υπόλοιπα του 2006! Όλα τα μεταγενέστερα τιμολόγια μέχρι σήμερα είναι πληρωμένα κανονικά! Κανένας δεν μπόρεσε να μου απαντήσει πώς προέκυψε αυτό το χρέος αφού πληρώνω με πιστωτική κάρτα. Στο τηλέφωνο μου λένε οτι δεν γίνεται να δώσω τα στοιχεία της κάρτας μου απο το τηλέφωνο για να πληρωθεί το χρέος (και να συνεχίσουν οι χρεώσεις) και πως πρέπει να πάω στο υποκατάστημα.

Στο υποκατάστημα (που πήγε η αδελφή μου) της λένε οτι μπορεί να πληρώσει μόνο τα τιμολόγια του 2006 και πως τα 2 τιμολόγια του 2005 δεν μπορούν να πληρωθούν γιατι δεν τα “δέχεται” το σύστημα τους. Πρέπει να πάω στην τράπεζα και να τους στείλω το αποδεικτικό κατάθεσης με fax (το σύστημά τους δέχεται αποδεικτικά κατάθεσης, αλλά όχι μετρητά? wtf?). Μιας και όλα αυτά γίνονται απόγευμα, αυτόματα το ξεμπλοκάρισμά μου πάει για την επόμενη ημέρα. Και όλα αυτά ενώ τους έχω εξηγήσει πολλές φορές οτι το internet το χρειάζομαι το συντομότερο δυνατόν για την δουλειά μου.

Την επόμενη ημέρα πάω στο υποκατάστημα και τους λέω:

  • Έχω το έρθει με μετρητά για χρέος που δεν ξερετε γιατί πρέπει να πληρώσω. Μπορώ να το πληρώσω εδώ?
  • Οχι, πρέπει να πάτε στην τράπεζα.
  • Ωραία, φέρτε μου έντυπο να καταργήσω την συνδρομή μου

Όπως και έκανα φυσικά.
Ούτε το ΙΚΑ και η Εφορία δεν είναι τόσο χάος.

Φυσικά θεώρησα αυτονόητο οτι αφού έχω γραμμή adsl απο τον ΟΤΕ και εξοπλισμό δικό μου θα μπορούσα να κάνω μια νέα σύνδεση μέσα σε λίγες ώρες. (username/password χρειαζόμουν μονο). Στα μαγαζιά που πήγα όμως μου είπαν οτι έχουν μονο πακέτα (που θέλουν 10-15 ημέρες) και για αυτό που ζητάω να πάρω τηλ. στον ISP που θέλω.

Παίρνω τηλέφωνο στην HOL και αφού τους εξηγώ την περίπτωσή μου, μου λέει οτι θέλει 7 ημέρες για να ενεργοποιηθεί. (Γιατί?)

Αφού απογοητεύομαι απο την HOL, πάω στην τελευταία επιλογή. Otenet. Και εκεί μου εξηγούν οτι θα κάνουν ότι μπορούν για να μου δώσουν τους κωδικούς το συντομότερο δυνατό. Έκανα την αίτηση απο το 134 στις 15:00 και στις 16:00 με πήραν τηλέφωνο στο κινητό (που δυστυχώς δεν το άκουσα και έτσι με πήραν την επόμενη ημέρα πρωί-πρωί ).

Η εταιρία απο την οποία περίμενα τα λιγότερα ήταν η πιο εξυπηρετική. Φυσικά δεν ασχολήθηκα καθόλου με Tellas και λοιπές εταιρίες επιπέδου Altec.

Πλέον είμαι πελάτης της Otent. Ελπίζω να μην το μετανιώσω. Για να δούμε….

Πάντως το σκηνικό των τηλεπικοινωνιών στην Ελλάδα είναι πολύ απογοητευτικό.

Σκέφτομαι τι θα είχα πάθει αν είχα βάλει και Forthnet Double Play :p

Αγαπημένα παιδικά

Είμαι γεννημένος το 1980. Ορισμένα παλιά παιδικά και σειρές της εποχής εκείνης έχουν μια ιδιαίτερη θέση στο μυαλό μου. Δυστυχώς για πολλά απο αυτά δεν ήξερα τους τίτλους τους. Σε κάποια θυμόμουν ένα κομμάτι απο την μελωδία, ένα απόσπασμα απο τους στίχους ή μερικές χαρακτηριστικές εικόνες.

Για τις περισσότερες σειρές αυτό δεν ίδιαίτερο πρόβλημα. Αν ρωτήσεις Ποιά είναι αυτή η σειρά που ο ήρωας είχε ένα άσπρο ρομποτάκι και πάλευε αγώνες τότε όλο και κάποιος θα βρεθεί να σου πεί “Ο Τζουμαρού”.
Ορισμένες σειρές όμως είναι πολύ λιγότερο γνωστές για κάποιο λόγο. Ελάχιστοι τις ηλικίας μου τα θυμούνται, και ακόμα λιγότεροι γνωρίζουν ποιές είναι.

Παραθέτω μια λίστα με κάποια απο αυτά τα παλιά παιδικά και σειρές που δυσκολεύτηκα να αναγνωρίσω.

Σάγκμα (νομίζω)

Κλασσική προσπάθεια έυρεσης:

Αυτό το παιδικό που κάτι σχέση είχε με την Αρκαδία και ταξιδεύανε σε ένα μπλέ διαστημόπλοιο που όταν κάτι πάθαινε βγαίνανε εκατοντάδες μικρά διαστημοπλοιάκια στο ίδιο σχήμα και το επισκευάζανε, και τους κυνηγούσαν οι πειρατές.

Απο τα αγαπημένα μου. Γαλλική παραγωγή με τίτλο: “Le mondes engloutis”.
Ακολουθούν οι τίτλοι εισαγωγής. Απο ότι διαβάζω τραγουδάει Αννα Βίσση. Στα γιουτούμπια κυκλοφόρεί και το ελληνικό τραγούδι των πειρατών.

Σούπερ Μαρς

Κλασική ανάμνηση ώς:

Αυτό το παιδικό με το παιδάκι ρομπότ που πέταγε και πάλευε με διάφορους κακούς.

Δεν νομίζω οτι το έδειξε η τηλεόραση. Υπήρχε στο τοπικό video club.

Οι περιπέτειες του μικρού Κοάλα

(Μετάφραση απο “The adventures of the little koala”)

Κλασσική ανάμνηση οι στίχοι απο το τραγούδι:

Έπεσα, χτύπησα , ε και τι μ’αυτό. Οι φίλοι μου ας είν’ καλά.

Στο βίντεο υπάρχει η αγγλική εισαγωγή, αλλα η μελωδία είναι ίδια. Αρχίζει στο 1:57

Grendizer

Γνωστό και ώς:

Αυτό το παιδικό με το τεράστιο διαστημόπλοιο που ο ήρωας τράβαγε ένα μοχλό και μεταφερόταν σε άλλο τμήμα και γινόταν ρομπότ.

Το λάτρευα μικρός αυτό το παιδικό. Δεν θυμάμαι αν το είχα δεί στην τηλεόραση ή σε VHS.

Blackstar

Δεν νομίζω οτι το έδειξε η τηλεόραση, αλλα το είχε το video club της γειτονιάς μου.
Γνωστό και ώς:

Αυτό το παιδικό με έναν που έχει ένα σπαθί σε ένα πλανήτη.

Μιας και αυτό το theme (σπαθί, πλανήτης. kicking ass) είναι ιδιαίτερα δημοφιλές στα παιδικά, αυτό ήταν αρκετά δύσκολο να το βρώ.

Ο Τζέηκ και το μυστήριο του χρυσού πιθήκου

Original τίτλος, “Tales of the gold monkey”. Ήμουνα κάπως μεγαλύτερος όταν έβλεπα αυτή την σειρά, αλλα δεν θυμάμαι ποιά χρονιά την έδειχνε η τηλεόραση. Θυμάμαι τον τίτλο της, και δεν ήταν ιδιαίτερα δύσκολο να την βρώ, αλλα την αναφέρω εδώ γιατί λίγοι θυμούνται αυτή την σειρά.

Φυσικά πολλά ακόμα παιδικά και σειρές λάτρεψα, αλλα είναι σαφώς ποιο εύκολο να βρει κανείς πληροφορίες για αυτά:

  1. Τζουμαρού (Plawres sanshiro)
  2. He-Man
  3. Thundercats
  4. Αλφ ο εξωγήινος (ALF)
  5. MacGyver
  6. Knight Rider
  7. Του κουτιού τα παραμύθια.
  8. Airwolf

θέλω grep για τα dead tree βιβλία..

Εργαλείο που μου λείπει ποιό πολύ όταν διαβάζω βιβλία σε dead tree format:

grep

(και όχι, το index δεν μετράει ακόμα και όταν έχουν)

Τhe Alexandros Grigoropoulos’s Diary Release

Αν και σπανίως βλέπω τηλεόραση, έχω δεί οτι η υπόθεση με την δολοφονία του 15χρονου Αλέξανδρου Γρηγορόπουλου έχει γίνει διεθνώς είδηση.
Δεν είχα συνειδητοποιήσει, όμως, πόσο έχει επηρεάσει την διεθνή κοινότητα μέχρι που στο community (planet βασικά) του Django είδα να ονομάζουν την νέα release του diario blogging software με τίτλο “The Alexandros Grigoropoulos’s Diary Release”

Οπως αναφέρουν στο project :

This version is a tribute to Alexandros Grigoropoulos, 15-year-old boy, libertarian, murdered by greek police in last week (2008-12-06).

Συνήθως η προγραμματιστική κοινότητα είναι πολύ απομακρυσμένη απο την πολιτική/κοινωνική επικαιρότητα, και σίγουρα αυτή η πρακτική δεν είναι κάτι συχνό.

Ενδιαφέρον…

(Βέβαια εδώ έχουν σπάσει και κάψει το σύμπαν και εγώ περιμένω ένα release άγνωστου software για να καταλάβω τι έχει γίνει? Έκαστος στο είδος του :p )

Django CSRF tag for AJAX POST calls.

Το Django μας παρέχει (προαιρετικά) το CSRF middleware του οποίου η δουλειά είναι να αποτρέπει τις επιθέσεις CSRF. Για να το πετύχει αυτό, στα response object βρίσκει τις φόρμες με POST method και “εισάγει” ένα ακόμα κρυφό field που περιέχει ένα token μοναδικό για το session. Στα POST request επιβεβαιώνει οτι το token υπάρχει και είναι σωστό.

Όλα ωραία και καλά, αλλα αυτός ο τρόπος έχει το πρόβλημα ότι όταν θέλουμε να κάνουμε AJAX κλήσεις με POST requests δεν θα δουλέψουν γιατί το CSRF middelware δεν θα βρεί tokens.

Για να λύσω αυτό το πρόβλημα με τον πιό απλό τρόπο έφτιαξα ένα template tag που παρέχει ένα token στα template μου.

Έτσι, για παράδειγμα στο YUI όταν κάνω το request είναι κάπως έτσι:

{%csrf_token as token    %}
params = "ham="+ham+"&eggs="+eggs + "&csrfmiddlewaretoken={{token}}" ;
var transaction = YAHOO.util.Connect.asyncRequest("POST", {%url spam%},
    callback, params);

Μιας και βασίζεται στην ύπαρξη του sessionid στο cookie, αυτό το tag δεν θα μας δώσει token όταν ο χρήστης έχει απενεργοποιήσει τα cookies (κάτι που σπάει ένα σκασμό site οπότε δεν με πολυνοιάζει) και όταν είναι το πρώτο request στο site μας. (Μπορούμε όμως να ελέγξουμε αν υπάρχει το token και να πράξουμε κατάλληλα)

Ορίστε και το tag:

from django.conf import settings
from django.utils.hashcompat import md5_constructor
import re

class CsrfNode(template.Node):
"""
Tag that provides a CSRF token in the context.
Usage: {% csrf_token as token %}
If the user has no cookies (cookies disabled, or this is
the first ever page view on the site, this tag will provide
an empty token. You can test that (eg to refresh the page)
"""

def __init__(self,var_name):
    self.var_name = var_name

def render(self,context):
    SESSION_COOKIE_NAME = getattr(settings,
            "SESSION_COOKIE_NAME","sessionid")
    sess_key = context['request'].COOKIES.get(SESSION_COOKIE_NAME,None)
    if not sess_key:
        # User has no cookie. Empty token.
        token = ""
    else:
        val = settings.SECRET_KEY + sess_key
        token = md5_constructor( val  ).hexdigest()
    context[self.var_name] = token
    return ''

@register.tag(name='csrf_token')
def do_csrf_token(parser,token):
    try:
        tag_name , params = token.contents.split(None,1)
    except ValueError:
        msg = "%r tag requires arguments" % token.contents.split()[0]
        raise template.TemplateSyntaxError(msg)
    m = re.search(r'^as (\w+)$', params)
    if not m:
        msg = "%r tag had invalid arguments" % tag_name
        raise template.TemplateSyntaxError(msg)
    var_name = m.groups()[0]
    return CsrfNode(var_name)

Ελπίζω να είναι bug free :p