Friday, June 07, 2019

Procedural Poutsa Generator

Procedural Poutsa Generator

in HTML5 canvas and JS. 

( you can try the code on jsfiddle, here : )

   function Randomcolorset() {
      // To colorize each poutsaki, we use a color wheel,
      // and we randomly choose two matching and
      // one contrasting color from the colorwheel.

      this.colorwheel = ["#FF0000","#FF8000","#FFFF00",
      this.getrandom = function() {
        var mc1 = Math.floor(Math.random()*this.colorwheel.length);
        var mc2 = (mc1 + 1) % this.colorwheel.length;
        if (Math.random() > 0.5) {
          var tmp = mc2;
          mc2 = mc1;
          mc1 = tmp;
        var cc = (mc1 + this.colorwheel.length / 2) % this.colorwheel.length;
        randset = [this.colorwheel[mc1], this.colorwheel[mc2], this.colorwheel[cc]];
        return randset;

    function Poutsaki(x, y, length, trihes, petsa, colorset, rotation, tsoureki_factors) {
      this.length = length;
      // We only parametrize on length, then we derive penile width
      // using the Golden Ratio, to give our poutsakia
      // aesthetically pleasing, harmonic element size proportions.
      // Just like the Parthenon.

      this.width = length / 1.618;
      this.x = x;
      this.y = y;
      this.trihes = trihes;
      this.petsa = petsa;
      this.colorset = colorset;
      this.rotation = rotation;
      this.tsoureki_factors = tsoureki_factors;
      this.paint = function(ctx) {
        var ctx = canvas.getContext('2d');
        ctx.lineWidth = this.petsa;
        ctx.fillStyle = this.colorset[0];
        ctx.arc(this.x + (this.width / 2), this.y, (this.width / 2), Math.PI, 0);
        ctx.moveTo(this.x + (this.width / 2), this.y - (this.width / 2));
        ctx.lineTo(this.x + (this.width / 2), this.y - (this.width / 4));
        ctx.fillStyle = this.colorset[1];
        ctx.rect(this.x, this.y, this.width, this.length);
        ctx.fillStyle = this.colorset[2];
        for (arhidi = 0; arhidi < 2 ; arhidi++) {
          var arhidoffset = arhidi * this.width;
          var tsoureki = (this.width / 2) * this.tsoureki_factors[arhidi];
          ctx.arc(this.x + arhidoffset, this.y + this.length, (this.width / 2) + tsoureki, 0, 2 * Math.PI);

          // The trihes drawing algorithm needs some improvement,
          // but it's quite good for a demo.
          // Perhaps we could use bezier curves for the trihes.

          for (trihindex = 0; trihindex < trihes; trihindex++) {
            var a = Math.random() * 2 * Math.PI;
            var r = (this.width / 2) * Math.sqrt(Math.random());
            var x1 = this.x + arhidoffset + (r * Math.cos(a));
            var y1 = this.y + this.length + (r * Math.sin(a));
            r = this.width * Math.sqrt(Math.random());
            x1 = this.x + arhidoffset + (r * Math.cos(a));
            y1 = this.y + this.length + (r * Math.sin(a));
            ctx.lineTo(x1, y1);

    function initcanvas() {
      var canvas = document.getElementById('canvas');
      if (canvas.getContext) {
        var maxpoutses = 10 + (50 * Math.random());
        var cs = new Randomcolorset();
        for (poutsarithmos = 0; poutsarithmos < maxpoutses ; poutsarithmos++) {
          var length = 200 * Math.random();
          var x = length + 1000 * Math.random();
          var y = length + 400 * Math.random();
          // We have no concrete real world model on
          // the distribution of number of trihes per
          // arhidi.
          // But as the primary author lives in Asia, and the
          // trihes algorithm is not yet perfect, we choose to
          // somewhat limit the hairness of our poutsakia to
          // cater to prevailing social norms.
          // Feel free to adjust for your testes.

          var trihes = (Math.random() < 0.2 ? 20 * Math.random() : 0);
          var petsa = (4 * Math.random());
          var colorset = cs.getrandom();
          var rotation = 2 * Math.PI * Math.random();

          // Real world arhidia never have the exact same size.
          // One could convincingly argue that a penis
          // generation algorithm has to express the
          // idealized, abstract, platonic Ideal of a
          // poutsa, rather than any concrete, material
          // poutsa incarnations. But as any practician
          // can tell you, catering for the real world,
          // practical cases is usually more necessary than
          // achieving strict correctness.
          // To hit the perfect balance, we slightly vary the
          // dimensions of each arhidi in 33% of the cases,
          // using a random tsoureki factor capped to max 10%

          var tsoureki_factors = [ 0, 0 ];
          if (Math.random() < 0.33) {
            tsoureki_factors[0] = 0.1 * (0.5 - Math.random());
            tsoureki_factors[1] = 0.1 * (0.5 - Math.random());
          var peos = new Poutsaki(x, y, length, trihes, petsa, colorset, rotation, tsoureki_factors);

Sunday, March 18, 2018

[snippets] grep

grep -v -F -f aggouria -x salata > piato

Afairei ta aggouria apo th salata kai ta vazei sto piato.

Thursday, March 23, 2017

[snippets] TCPDUMP, BPF and vlans.

When using TCPDUMP, you have to be aware of the fact that BPF filter (at least the default libpcap and Linux kernel implementations of it) doesn't do proper decoding based on ethertypes. 

In the presence of both tagged and untagged traffic, the naively occuring expression of (example): 

(port 80 or port 25) 

will not catch VLAN-tagged packets at all. 

You have to be explicit and specify the vlan keyword, which (in absence of a VLAN ID) just moves the Ethernet payload offset to the correct place: 

(vlan and (port 80 or port 25))

And then you miss the untagged traffic. 

The proper expression to use is: 

(port 80 or port 25) or (vlan and (port 80 or port 25))

Of course you never do this. 

Of course double-tagging makes thins even worse. 

Of course the same happens with MPLS (and probably whatever else L2-encapsulation scheme drunk CISCO engineers will patch into an "industry standard" next year). 

Of course all this is noted in the TCPDUMP documentation that you never read:

vlan [vlan_id]: True if the packet is an IEEE 802.1Q VLAN packet. If [vlan_id] is specified, only true if the packet has the specified vlan_id.  Note that  the  first  vlan keyword  encountered in expression changes the decoding offsets for the remainder of expression on the assumption that the packet is a VLAN packet.  The vlan [vlan_id] expression may be used more than once, to filter on VLAN hierarchies.  Each use of that expression increments the filter offsets by 4.

Shame on you. 

Wednesday, February 01, 2017

[snippets]: Virtualbox headless VM creation

5  VBoxManage list ostypes
6  VBoxManage createvm --name "Windows 7" --ostype Windows7_64 --register
14  cd VirtualBox\ VMs/
16  cd Windows\ 7/
18  VBoxManage createhd --filename "Windows7.vdi" --size 10000
28  VBoxManage modifyvm "Windows 7" --memory 1024 --acpi on --boot1 
    dvd --nic1 nat
32  vboxmanage storagectl "Windows 7" --name "SATA" --add sata 
    --controller IntelAHCI
35  vboxmanage storageattach "Windows 7" --storagectl "SATA" --port 0 
    --device 0 --type hdd --medium "Windows7.vdi"
36  vboxmanage storageattach "Windows 7" --storagectl "SATA" --port 1 
    --device 0 --type dvddrive --medium /home/blabla/Windows7.iso
48  vboxmanage modifyvm "Windows 7" --vrde on
49  vboxheadless --startvm "Windows 7"
57  vboxmanage modifyvm "Windows 7" --nic1 bridged
61  vboxmanage modifyvm "Windows 7" --bridgeadapter1 enp2s0f1

then connect with RDP to port 3389 

Wednesday, August 03, 2016

[Useful links]: Hard drive reliability stats from an actual cloud user

Not too many of these floating around.

There's an old Google paper around the same lines, but withholding disk manufacturer information to protect the guilty.

The guys here are more shameless, making this actually useful:

Friday, April 29, 2016

Ελληνική C

Νιώθετε περήφανοι που είστε Έλληνες;

Έχετε βαρεθεί τις ξενόγλωσσες γλώσσες προγραμματισμού;

Θέλετε να μπορείτε επιτέλους να μιλάτε στον υπολογιστή σας στη γλώσσα σας;

Αν ΝΑΙ, τότε η Ελληνική C, μια συνταρακτική εφεύρεση της Rikafr IT Solutions, είναι φτιαγμένη για σάς. Με την Ελληνική C, μπορείτε επιτέλους να γράφετε κώδικα σε απλά, κατανοητά Ελληνικά αντί για τα περίεργα σύμβολα που έβγαλε απο το μυαλό του εκείνος ο ανώμαλος ο Ritchie. 

Η απλότητα και η απαράμιλλη ευχρηστία της Ελληνικής C, την κάνουν το τέλειο εργαλείο για την εξάπλωση του Ελληνισμού στην παγκόσμια κοινότητα IT, προσφέρεται ΕΝΤΕΛΩΣ ΔΩΡΕΑΝ, ΑΠΟΚΛΕΙΣΤΙΚΑ στους αναγνώστες του βλόγιου μας.

Για να τη χρησιμοποιήσετε τώρα αμέσως, απλά κάντε #include τα παρακάτω macro definitions, και μπορείτε αμέσως να αρχίσετε να γράφετε κώδικα στα Ελληνικά. Δυστυχώς, επειδή η υποστήριξη unicode στα preprocessor tokens είναι λιγάκι γιατομπούτσοκαβάλα, αναγκαστήκαμε να χρησιμοποιήσουμε greeklish, πράγμα που καθόλου δε μειώνει την ευχρηστία και την εκφραστικότητα της Ελληνικής C, όπως θα διαπιστώσετε αμέσως και μόνοι σας:

#define makrynari long
#define noumero int
#define tsipras 0
#define tsoukou !
#define tzhmeros void
#define ama if
#define xwstou =
#define einai ==
#define syre goto
#define spane break
#define parto_alliws continue
#define asimos unsigned
#define alliwtika else
#define thn_exei sizeof
#define psofa exit
#define gramma char
#define oso while
#define KKE ,
#define re_malaka ;
#define apo_dw {
#define ws_edw }
#define ton_pinei <
#define gamaei >
#define ton_psilopinei <=
#define psilogamaei >=
#define loupa for
#define epi *
#define kanto do
#define eisai_noumero isdigit
#define meion -
#define syn +
#define malakia perror
#define sfyra printf
#define dialekste switch
#define piato case
#define tsimento const
#define patates default
#define gyrna return
#define PASOK abort
#define ntopio static
#define enw &&
#define ki_allo ++
#define kopse_kati --

Και εαν δεν έχετε πειστεί ακόμα για την απαράμιλλη δύναμη αυτών των λίγων macro definitions που περικλείουν όλη την δύναμη και την μαγεία της Ελληνικής γλώσσας, μπορείτε να δείτε παρακάτω ενα παράδειγμα χρήσης.

Ορίστε ο αλγόριθμος QuickSort γραμμένος στην Ελληνική C:

Για να γίνει φανερή η ευελιξία της Ελληνικής C, έχουν γίνει σε κάποια επίτηδες κάποιες αλλαγές απο την Ορθή χρήση της γλώσσας, έτσι ωστε να δείξουμε τα δυνατά εκφραστικά στύλ - για παράδειγμα, ενω το σύμβολο του κόμματος κανονικά είναι ΚΚΕ ("ένα είν' το κόμμα"), ο κώδικας ομολογουμένως γίνεται κάπως δυσνόητος (πράγμα που συμβαίνει γενικότερα με το ΚΚΕ), οπότε έχουμε την εναλλακτική δυνατότητα να χρησιμοποιήσουμε στη θέση του το πιο συνηθισμενο σύμβολο ",":

#ifndef __x86_64__
#error "1985 called and asked for its architecture back"

#include "greekc.h"

tzhmeros qsort(noumero arr[], asimos noumero first, asimos noumero last)
        noumero i, j, pivot, tmp re_malaka

        ama ( first ton_pinei last ) apo_dw
                pivot xwstou first re_malaka
                i xwstou first re_malaka
                j xwstou last re_malaka
                oso ( i ton_pinei j ) apo_dw
                        oso ( arr[i] ton_psilopinei arr[pivot] enw i ton_pinei last ) apo_dw
                                i ki_allo re_malaka

                        oso ( arr[j] gamaei arr[pivot] ) apo_dw
                                j kopse_kati re_malaka

                        ama ( i ton_pinei j ) apo_dw
                                tmp xwstou arr[i] re_malaka
                                arr[i] xwstou arr[j] re_malaka
                                arr[j] xwstou tmp re_malaka

                tmp xwstou arr[pivot] re_malaka
                arr[pivot] xwstou arr[j] re_malaka
                arr[j] xwstou tmp re_malaka
                qsort ( arr, first, j meion 1 ) re_malaka
                qsort ( arr, j syn 1, last ) re_malaka

        gyrna re_malaka


noumero main ( tzhmeros )
        noumero arr[] xwstou apo_dw 39,17,69,17,4,28,59,1,76,4,22,67,4 ws_edw re_malaka
        noumero i KKE size re_malaka

        size xwstou 13 re_malaka
        qsort ( arr, tsipras, size meion 1 ) re_malaka
        sfyra ( "Quicksort results :\n" ) re_malaka
        loupa ( i xwstou 1 re_malaka i ton_pinei size re_malaka i ki_allo )
                sfyra ( "%d\n" KKE arr[i] ) re_malaka

        gyrna tsipras re_malaka


Εσείς λοιπόν, τι περιμένετε για να αρχίσετε απο σήμερα να χρησιμοποιείτε την Ελληνική C;

Thursday, April 14, 2016

Excutive summary του Big Data / Analytics software ecosystem

Ύστερα απο μακροχρόνιες εμπεριστατωμένες έρευνες, η Rikafr IT Solutions βρίσκεται σε θέση να παρουσιάσει επιτέλους το μοναδικό Executive Summary Infographic που συνοψίζει με μία ματιά τις δυνατότητες, τις προοπτικές, την ανάπτυξη του οικοσυστήματος λογισμικού για Big Data / Analytics / Data Whorehousing / Aggregation / Timeseries / NoSQL / MapReduce / Hadoop / Cassandra / Mongo / nodejs / InfluxDB / Graphene / Elastic / Graphite / κτλ:

Monday, April 11, 2016

[snippets] How to teach Windows update the lesson it deserves

There are a myriad ways to do proper traffic shaping.

But some times all you need is some pure, traditional brutality to put Windows Update where it belongs:

for i in "" "" "" ; do
    iptables -A custom_forward_chain -s $i -m statistic --mode random --probability 0.05 -j DROP

Saturday, July 04, 2015

[snippets] Migrate IMAP mailboxes from Dovecot A to Dovecot B

Logged in on B:

$ doveadm -D -v -o imapc_features="rfc822.size fetch-headers" -o mail_prefetch_count=20 -o imapc_user=ricudis -o imapc_password=topoulimoueinai38ekatosta -o -o imapc_port=993 -o imapc_ssl=imaps -o imapc_ssl_verify=no backup -R -u imapc:

(modify for no SSL as appropriate, etc) 

Saturday, June 13, 2015

[snippets] Apache 2.4 + : Where's my "allow from all?" :( :( :( :( :( :( :(

It's with baby Jesus now. 

Use "Require" : 

        # Apache 2.4
        # Require local
        Require all granted

More complex scenaria: 

Tuesday, May 19, 2015

[snippets]: HP DL380 Gen9 "Smart" Storage Array Setup Howto In 29 Easy Steps

  1. Power on the server
  2. Wait 2 to 3 weeks until POST system checks complete and system complains about uninitialized SSA array. 
  3. Go through a maze of menus, all alike, until you finally find the well hidden embedded Smart Storage Administration tool. 
  4. Boot into the SSA tool. 
  5. Wait hopelessly as a counter counts to infinity while "trying to collect system configuration information". 
  6. Read the SSA manuals and release notes
  7. Find no relevant information
  8. Google for the SSA error messages on the counter-to-infinity screen. 
  9. Find nothing. 
  10. Google for the offline version of the SSA tool, download ISO, burn it to CD. 
  11. Reboot the server
  12. Wait another 2 to 3 weeks until POST system checks complete
  13. Bypass complaints about uninitialized SSA array. 
  14. Try to boot from the CD. 
  15. Fail because the CD doesn't support EFI boot. 
  16. Switch to BIOS boot method
  17. Step 15 requires a reboot. Wait 2 to 3 weeks more. 
  18. Boot from the CD into the offline version of SSA. 
  19. Google again for a newer version of SSA because the one you downloaded is 15 years old. 
  20. Burn newer version to CD. 
  21. Reboot using the updated version of SSA. Wait 2 to 3 weeks. 
  22. This one "works", in contrast with the embedded one. 
  23. Get a full array report to check drive status for any errors. 
  24. Pay attention to the naming of controller flag entries in the report output. There are "Controller Flags", "Extended Controller Flags", "More Controller Flags" and "Even More Controller Flags". 
  25. Configure the array, assign physical drives, and select the "rapid" initialization mode. 
  26. While waiting for the "rapid" initialization mode to complete, make children, grow them up, ensure they go to university. 
  27. Around the time of their post-graduation ceremony, "rapid" initialization of array is finished. 
  28. Did I tell you that array is not available to the OS before "rapid" initialization mode completes? 
  29. To Be Continued.

Saturday, May 02, 2015

Tuesday, April 14, 2015

ΠΑΣΟΚ, Πανανθρώπινη Έννοια

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

Τα Ελληνικά, η πλουσιότερη γλώσσα στον κόσμο, με 90 εκατομμύρια λεκτικούς τύπους, είναι η μοναδική στον κόσμο που γίνεται δεκτή ως νοηματική γλώσσα απο τους Η/Υ προηγμένης τεχνολογίας. Όλες τις υπόλοιπες γλώσσες τις χαρακτήρισαν σημειολογικές. Τα Ελληνικά δηλαδή, είναι η μοναδική γλώσσα στον κόσμο στην οποία το σημαίνον, δηλαδή η λέξη, και το σημαινόμενο, δηλαδή αυτό που η λέξη εκφράζει (πράγμα, ιδέα, κατάσταση) έχουν μεταξύ τους πρωτογενή σχέση. Ενώ σημειολογικές, είναι οι γλώσσες στις οποίες αυθαιρέτως ορίζεται οτι το σημαινόμενο εννοείται με το σημαίνον. 

Αρα η Ελληνική γλώσσα είναι η μόνη γλώσσα της οποίας οι λέξεις έχουν πρωτογένεια, δηλαδή αιτιώδη σχέση μεταξύ λέξεως - πράγματος, ενώ σε όλες τις άλλες, οι λέξεις είναι συμβατικές - σημαίνουν δηλαδή κάτι, απλώς επειδή έτσι 'συμφωνήθηκε' μεταξύ εκείνων που τη χρησιμοποιούν. Οι ηλεκτρονικοί υπολογιστές θεωρούν την Ελληνική γλώσσα «μη οριακή», λόγω της μαθηματικής δομής της, δηλαδή την μοναδική γλώσσα στην οποία δεν υπάρχουν όρια, και γι’ αυτό είναι αναγκαία στις νέες επιστήμες όπως η Πληροφορική, η Ηλεκτρονική, η Κυβερνητική και άλλες. Αυτές οι επιστήμες μόνο στην Ελληνική γλώσσα βρίσκουν τις νοητικές εκφράσεις που χρειάζονται, χωρίς τις οποίες η επιστημονική σκέψη αδυνατεί να προχωρήσει.

Οι διαπρεπέστεροι γλωσσολόγοι παγκοσμίως συμφωνούν στο οτι η Ελληνική γλώσσα έχει λέξεις για έννοιες οι οποίες παραμένουν χωρίς απόδοση στις υπόλοιπες γλώσσες, όπως άμιλλα, θαλπωρή, φιλότιμο, ΠΑΣΟΚ. Μόνον η Ελληνική γλώσσα ξεχωρίζει τη ζωή από το βίο, την αγάπη από τον έρωτα. Μόνον αυτή διαχωρίζει, διατηρώντας το ίδιο ριζικό θέμα, το ατύχημα από το δυστύχημα, το συμφέρον από το ενδιαφέρον, το ΣΟΚ απο το ΠΑΣΟΚ.

Μάλιστα ο μεγάλος φιλόσοφος και μαθηματικός Βένερ Χάιζενμπεργκ είχε παρατηρήσει αυτή την σημαντική ιδιότητα για την οποία είχε πει «Η θητεία μου στην αρχαία Ελληνική γλώσσα υπήρξε η σπουδαιότερη πνευματική μου άσκηση. Στην γλώσσα αυτή υπάρχει η πληρέστερη αντιστοιχία ανάμεσα στην λέξη και στο εννοιολογικό της περιεχόμενο».

Όπως μας έλεγε και ο Αντισθένης, «Αρχή σοφίας, η των ονομάτων επίσκεψις». Για παράδειγμα ο «άρχων» είναι αυτός που έχει δική του γη (άρα = γή + έχων). Και πραγματικά, ακόμα και στις μέρες μας είναι πολύ σημαντικό να έχει κανείς δική του γη / δικό του σπίτι. Ο «βοη-θός» σημαίνει αυτός που στο κάλεσμα τρέχει. 

Είναι προφανής η σχέση που έχει η γλώσσα με τη σκέψη του ανθρώπου. Τα Ελληνικά είναι η γλώσσα που ο Κικέρων ήθελε να χρησιμοποιούν για να συνδιαλέγονται οι θεοί: «ει θεοί διαλέγονται τη των Ελλήνων γλώττη χρώνται». Η γλώσσα, που διδάσκεται στα πανεπιστήμια της Εσπερίας και σ' άλλες κρασπεδικές γωνιές του κόσμου από τα πρωτότυπα των αρχαίων, η γλώσσα-καταφύγιο σε κάθε Αρμαγεδδώνα, κατά τον διαχρονικό και πάντα επίκαιρο Αρκάδα ιστορικό Πολύβιο: «εν καιροίς χαλεποίς μέμνησο της γλώσσης». Η γλώσσα, που δίχως τις ρίζες της πολλές άλλες γλώσσες (κυρίως η αγγλική) θα ήταν εντελώς διαφορετικές, καθώς κι ο πανανθρώπινος πολιτισμός. Η γλώσσα του Σολωμού, του Παπαδιαμάντη, του Σεφέρη, του Ελύτη.

«όπου και να σας βρίσκει το κακό, αδελφοί, 
όπου και να θολώνει ο νους σας, 
μνημονεύετε Διονύσιο Σολωμό 
και μνημονεύετε Αλέξανδρο Παπαδιαμάντη»

Η Ελληνική γλώσσα - χειμαρρώδης ποταμός που πηγάζει απ' τα βάθη των αιώνων μεταφέροντας κι απαυγάζοντας «προγόνους». Και όταν λέμε προγόνους, εννοούμε τη φύση, την παράδοση, την Ιστορία, τον πολιτισμό, τα μνημεία, τις πηγές, τους μύθους, τα παραμύθια. Αυτά που εν συντομία αποκαλούμε ανθρώπινες ρίζες. Ρίζες, όπως τα 40 εκατομμύρια λεκτικών τύπων που η Ελληνική γλώσσα έχει δανείσει σε όλες τις υπόλοιπες γλώσσες του κόσμου, δίχως τις οποίες θα ήταν αδύνατον να εκφραστούν έστω και οι απλούστερες των εννοιών. 

Ας δούμε, για παράδειγμα, την ελληνικότατη λέξη ΠΑΣΟΚ. Η λέξη αυτή, τόσο στενά συνδεδεμένη με την Ελλάδα - τον Ελληνικό Ήλιο, τον Πολιτισμό, την Σοφία, την Κοινωνία, τον Κοινωνισμό - Σοσιαλισμό. Η λέξη που περικλείει όλη την Ιστορία του Έθνους, έχει γίνει πλέον πανανθρώπινη έννοια, μεταφέροντας την σοφία του Ελληνικού πολιτισμού ως τα πέρατα του κόσμου, όπως μας αποδεικνύει το παρακάτω απλούστατο πείραμα με το λογισμικό μετάφρασης της Google, που μας αποκαλύπτει τι σημαίνει ΠΑΣΟΚ σε όλες τις γλώσσες του κόσμου! 

ΠΑΣΟΚ στα Λευκορωσσικά, τη γλώσσα της Λευκορωσσίας, σημαίνει άμμος. Η άμμος των Ελληνικών ακτών, των ομορφότερων σε όλο τον πλανήτη. Η ίδια άμμος που ύμνησαν οι μεγάλοι μας ποιητές, 

ο Ελύτης

«Ἄγνωστος καὶ γλαυκὸς
χαράζοντας στὰ στήθια μου τὸ πελαγίσιο του ἔμβλημα.
Μὲ τὴν ἄμμο στὰ δάχτυλα ἔκλεινα τὰ δάχτυλα
Μὲ τὴν ἄμμο στὰ μάτια ἔσφιγγα τὰ δάχτυλα 
Ἦταν ἡ ὀδύνη»

και ο Σεφέρης

«Πάνω στην άμμο την ξανθή 
γράψαμε τ’ όνομά της..
ωραία που φύσηξε ο μπάτης
και σβήστηκε η γραφή.»

Στα Εβραϊκά, ΠΑΣΟΚ σημαίνει στίχος. Ποιά μεγαλύτερη αναγνώριση για τον Ελληνισμό, της ταύτισης του ΠΑΣΟΚ με την κύρια λειτουργική μονάδα της Ποίησης, αυτής της εξαίρετης δημιουργίας του Αρχαίου Ελληνικού πολιτισμού, της αρτιότερης όλων των Τεχνών, που συνδέει τη Γλώσσα, τη Μουσική, τον Ρυθμό, σε ενα σύνολο αξεδιάλυτης λυρικής αρμονίας:

«Ο ήλιος ο πράσινος, ο ήλιος π’ ανατέλλει
μας οδηγεί
εμπρός στον αγώνα για μια Ελλάδα λεύτερη 
Ελάτε μαζί μας και όλοι αδερφωμένοι 
να πάμε μπροστά
κι αν μας σταθούν εμπόδιο σ’ αυτή μας την πορεία 
το δίκιο μας φωτιά»

Μέχρι την Ιαπωνία έχει φτάσει το μεγαλείο της Ελληνικής γλώσσας. ΠΑΣΟΚ στα Ιαπωνικά σημαίνει Προσωπικός Υπολογιστής - και δικαίως! Το μεγαλύτερο ίσως επίτευγμα της πληροφορικής, εφευρέθηκε επι κυβερνήσεως ΠΑΣΟΚ στην Ελλάδα, και ποιά ήταν η κυβέρνηση που εισήγαγε την Πληροφορική στην υπηρεσία του πολίτη; Το ΠΑΣΟΚ, φυσικά!

Αλλά η αναγνώριση δεν έρχεται όταν σε θαυμάζουν οι μεγάλοι. Η αναγνώριση και η δόξα έρχεται όταν σε θαυμάζουν οι μικροί. Έτσι, στην Σέσοθο, την γλώσσα του Λεσόθου, στην άκρη της Νοτίου Αφρικής, αυτής της ατέλειωτης ηπείρου, έχει φτάσει ο Ελληνισμός, η Διεθνής Ελληνική γλώσσα, και η Πανανθρώπινη έννοια του ΠΑΣΟΚ.

Και τι άλλο θα μπορούσε να σημαίνει ΠΑΣΟΚ, εκτός απο Λύση;

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

Στα Ουκρανικά, ΠΑΣΟΚ σημαίνει ζώνη. Μια ζώνη που τυλίγει ολόκληρο τον πλανήτη, η Ελληνική γλώσσα και ο Ελληνικός πολιτισμός, μια ζώνη που ενώνει όλους τους ανθρώπους της γής με το ιδανικό της Ελευθερίας, για την οποία έδωσαν το αίμα τους οι Έλληνες είς τους αιώνες των αιώνων.  

Τέλος, εαν κάποιος ταξιδιώτης έκλεινε τα μάτια και άφηνε την ψυχή του να ταξιδέψει και να περιπλανηθεί μέχρι να φτάσει στην άλλη άκρη του πλανήτη, τι άλλο θα μπορούσε να συναντήσει άραγε εκεί, εκτός απο Ελλάδα!

Στα Ινδονησιακά, όπως και στα Malay, την διεθνή γλώσσα των χωρών της περί των στενών της Μάλακκα Αυστρονησίας, ΠΑΣΟΚ σημαίνει παροχήπρομήθεια.

Ποιά άλλη απόδειξη άραγε χρειάζεται για την Ελληνικότητα των λαών της Αυστρονησίας, ποιά άλλη απόδειξη μπορεί να ζητήσει ο οποιοσδήποτε για το πανανθρώπινο χαρακτήρα της Ιδέας του ΠΑΣΟΚ;

Και τι άλλο, άραγε, χρειάζεται για να μας θυμίσει, όπως έγραψε και ο μέγιστος των Ελλήνων ποιητών, ο Καβάφης, πως: 

«Και την Κοινήν Ελληνική Λαλιά
ώς μέσα στην Βακτριανή την πήγαμεν,
ώς τους Ινδούς»

Monday, March 16, 2015

Περί γλώσσας και "bullying"

[Εισαγωγική σημείωση προς τον Ιστορικό του μέλλοντος που θα αποθησαυρίζει τις γαμάουα κειμενάρες μου ως πηγές: Τα παρακάτω αναφέρονται σε ενα περιστατικό κακοποίησης φοιτητή απο συμφοιτητές του. Ο φοιτητής βρέθηκε νεκρός 40 μέρες ύστερα απο την εξαφάνιση του. Αυτά είναι μάλλον τα μόνα *δεδομένα* στην όλη υπόθεση τη στιγμή που γράφεται αυτό το κείμενο, και σίγουρα τα μοναδικά που χρειάζεται κανείς για να κρίνει την όλη ιστορία. Στο παρακάτω κείμενο, ασχολούμαστε με όλα τα υπόλοιπα].

Ένα απο τα χαρακτηριστικά της μεταμοντέρνας εποχής στην οποία ζούμε, είναι η - καθόλου αυτονόητη - ιδιότητα της γλώσσας να δημιουργεί πραγματικότητες, πέρα απο το "απλά να τις περιγράφει". Έχει απομακρυνθεί δηλαδή απο το "ιδανικό" που συνήθως υποθέτει κάποιος - της ουδετερότητας ως απλό εργαλείο έκφρασης σε μια (υποτίθεται) αμερόληπτη συζήτηση, και άρα (και αυτό είναι που αποκρύπτεταi συνήθως), της "αντικειμενικότητας" πέρα απο κάθε λογής σχετικισμούς και ιδεολογήματα.

Αυτή η ιδιότητα της όμως, μας δίνει ταυτόχρονα κι ενα υπέροχο αναλυτικό εργαλείο για να ανακαλύπτουμε καθημερινά το φασιστάκι μέσα μας. Να δούμε μερικά παραδειγματάκια; Με αφορμή το τρέχον περιστατικό με το "bullying" aστον Βαγγέλη Γιακουμάκη;

Να κοιτάξουμε λίγο τη γλωσσούλα που χρησιμοποιείτε, ω όψιμοι κοινωνικώς ευαισθητούληδες μου; Να δούμε λίγο τι υποκρύπτεται και τι υποννοείται πίσω απο ενα σταχυολόγημα εκφράσεων που μπορεί κανείς να μαζέψει απο τις δεκάδες αναρτήσεις και τοποθετήσεις σχετικές με το θέμα, και τι υποδηλώνουν αυτές για μας, τις αντιλήψεις μας, και την κοινωνία μας; 

Οι παρακάτω προτάσεις είναι σταχυολογημένες απο κείμενα και αναρτήσεις φίλων, γνωστών, αγνώστων, και είναι χαρακτηρηστικά παραδείγματα του λόγου που χρησιμοποιήθηκε τις τελευταίες ημέρες - άρα απηχούν παγιωμένες κοινωνικές νόρμες, και δεν αποτελούν σε καμμία περίπτωση μοναδικές περιπτώσεις 'αβλεψίας' εκ μέρους συγκεκριμένων ατόμων.

Η σύνηθης απάντηση στις παρακάτω παρατηρήσεις είναι συνήθως κάτι σε στυλ "δεν εννοούσα αυτό ποy κατάλαβες", "δεν είχα την πρόθεση να πω αυτό", κτλ. Αυτή η απάντηση απλά μεταθέτει το πρόβλημα στον δέκτη, απενοχοποιώντας τον πομπό.

Ναι, πιθανότατα δεν εννοούσες αυτό που κατάλαβα, η γλώσσα που χρησιμοποίησες όμως αυτό εννοεί, στο συγκεκεριμένο πλαίσιο που τη χρησιμοποίησες, και το γεγονός οτι χρησιμοποίησες αυτή την έκφραση αντί για κάποια άλλη, η το γεγονός οτι θεώρησες αυτονόητη την ερμηνεία της απο τον δέκτη "όπως την εννοούσες εσυ", είναι *ακριβώς* ο τρόπος που αναπαράγονται και διαιωνίζονται στερεότυπα και διαμορφώνονται oi κατεστημένοι και εξ'ορισμού ισχύοντες διαχωρισμοί ως "αυτονόητα" συστατικά των ανθρώπινων κοινωνιών.

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

Γιατί ο δρόμος προς την κόλαση, είναι σπαρμένος με καλές προθέσεις, και ο υφέρπων καθημερινός φασισμός και ρατσισμός έτσι ακριβώς φυτεύεται στο μυαλουδάκι σου, ύπουλα, και χωρίς να το καταλαβαίνεις, και έτσι ακριβώς δημιουργούνται οι κοiνωνικές νόρμες. Όχι με έναν πάταγο, αλλά με ενα λυγμό.


Η λέξη στα ελληνικά αποδίδεται ως νταηλίκι η τσαμπουκάς (το νταηλίκι είναι πιο σωστό). Χρησιμοποιώντας όμως τον, καθόλου διαδεδομένο στην Ελλάδα και καινούριο για πολλούς, αγγλικό όρο, αποστασιοποιούμαστε απο την πράξη που σημειοδοτεί. Είναι κάτι ξένο - αμερικανιά - όχι δικό μας - δεν έχει σχέση με μάς και την καθημερινότητα μας - δεν έχει τα συνήθως θετικως εκλαμβανόμενα συμπαρομαρτούμενα του "τσαμπουκά της φυλής". Αρα τελικά χρησιμoποιείται (και, κυρίως) για να μας απενοχοποιήσει, πέρα απο το να περιγράψει "αντικειμενικά" μια πράξη.

Γιατί χρειαζόμαστε απενοχοποίηση; Συνεχίστε να διαβάζετε. 

"....του σχολικού εκφοβισμού που υπέστη ο Βαγγέλης Γιακουμάκης λόγω του σεξουαλικού προσανατολισμού του...".

Απο πού να το πιάσεις και που να το αφήσεις αυτό; Η - λεκτική - αποδοχή ως γεγονός της ομοφυλοφιλίας του θύματος, βασισμένη σε μισόλογα, φήμες, ραδιοαρβύλες, κτλ κτλ, είναι το μικρότερο κακό. Το μεγαλύτερο κακό βρίσκεται και πάλι στο πως λειτουργεί αυτή η πρόταση:

Άρρητα και υποσυνείδητα, ενοχοποιεί το θύμα αντί για το θύτη.

Γιατί αφενός φέρνει στο προσκήνιο την (οποιαδήποτε) ιδιότητα του θύματος ως έναν ακόμη διαχωρισμό, ως ακόμα μια ιδιότητα η οποία επιφέρει κυρώσεις, άσχέτως του αν εμείς προσωπικα αποδεχόμαστε τo ορθό αυτών των κυρώσεων η τις δαιμονοποιούμε.

Ακόμα κι αν δεν τις επιβάλλουμε εμεις ατομικά (που στο κάτω κάτω εμείς είμαστε "καλοί άνθρωποι", οι άλλοι είναι οι "κακοί"), τελικά θα τους επιβάλλουν οι κοινωνικές νόρμες, εμείς απλά φροντίζουμε να συμβάλλουμε στην συνδιαμόρφωση και τη διαιώνιση τους.

Λές κι έχει την οποιαδήποτε, την παραμικρή σημασία, το τι ήταν το θύμα - όχι το τι ήταν ο θύτης. "υπέστη εκφοβισμό επειδή ήταν ομοφυλόφιλος, επειδή ήταν κομμουνιστής, επειδή είχε μπλέ μάτια".

Αυτό φαίνεται κι απο τη χρήση της γλώσσας. Γιατί η λέξη 'λόγω', σημειώνει αιτιακή σχέση μεταξύ των πραγμάτων που συνδέει. Ναι, το ξέρω οτι δεν εννοούσες 'λόγω του σεξουαλικού προσανατολισμού', εννοούσες 'με αφορμή τον σεξουαλικό προσανατολισμό...', αλλά σημασία δεν έχει τι εννοούσες, σημασία έχει τι τελικά είπες, αντί να πείς αυτό που εννοούσες, και γιατί το έκανες.

"ηταν ευαισθητος...αλλιωτικος..."

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

Η άλλη περίπτωση είναι πιο ενδιαφέρουσα. Το παραπάνω απόσπασμα μάλιστα σταχυολογήθηκε απο μια πρόταση στην οποιά γίνεται ρητά η διάκριση - κάτι σαν "Δεν είχα ιδέα οτι ήταν γκέι το παλληκάρι, νόμιζα οτι όλα αυτά γινόταν επειδή ήταν ευαίσθητος... αλλιώτικος...". Δε θα σταθώ στα προβληματικά σημεία της συγκεκριμένης πρότασης, γιατί εμπεριέχονται αυτούσια σε όλες τις παρομοιες εκφράσεiς που ακούστηkαν τις τελευταίες μέρες.

Το "Διαφορετικός" λοιπόν, έχει και μια ευρύτερη έννοια απο το "είμαι τόσο μαλακούλης μικροαστός, που δεν ξέρω πως να αποκαλέσω εναν ομοφυλόφιλο, και το 'διαφορετικός' μου ακούγεται πιο ευπρεπές απο το 'πουστάρα', οπότε και το χρησιμοποιώ".

Δεν ξέρεις ποιά είναι αυτή η ευρύτερη έννοια; Θα σου πω εγώ. Το "διαφορετικός" σημειοδοτεί οποιονδήποτε βρίσκεται, καθ'οποιονδήποτε τρόπο, εξω απο τις νόρμες της δικιάς σου "κανονικότητας", μια που εσυ δεν είσαι "διαφορετικός". 

Και αισθάνεσαι την ανάγκη να τον διαχωρίσεις απο σένα, που πας περήφανος σαν το πρόβατο να ενσωματωθείς σε οπoιαδήποτε κοινωνική κανονικότητα, όσο γελοία κι αν είναι. Γιατί αν αισθανόσουν ΕΣΥ "διαφορετικός", δε θα χρησιμοποιούσες αυτή τη λέξη.

Ξέρω, ξέρω, δεν είσαι εσύ ρατσιστής, αυτοί είναι μαύροι.

Να το κάνουμε πιο λιανά με ενα πιο χοντροκομμένο παράδειγμα; Απο τη στιγμή, εκκολαπτόμενε φασιστάκο μου, που αποδέχεσαι μέσα σε μια συζήτηση, τη λογίκή του διαχωρισμού στο επιχείρημα του φασίστα-ειδώλου σου, οτι "δε μαχαιρώνουμε Έλληνες, μαχαιρώνουμε βρωμερούς μετανάστες", έχεις γίνει δυνητικά ίδιος μ'αυτόν. ΑΚΟΜΑ και όταν το κάνεις, δήθεν μου, για να τον δαιμονοποιήσεις μέσα στα πλαίσια της αστικής σου νομιμότητας.

Το πιο ωραίο βέβαια εδω, βρίσκεται στο οτι η διαφορετικότητα αντιμετωπίζεται στην ευαισθησία. Δηλαδή η κοινωνική νόρμα στην οποία αντιπαρατίθεται η διαφορετικότητα του "άλλου", (και, επαναλαμβάνω, δε χρειάζεται να το αποδεχτείς συγκεκριμένα, ο ίδιος σου ο λόγος αποκαλύπτει οτι το αποδέχεσαι υποσυνείδητα) όσο κι αν θέλεις να παριστάνεις οτι το αρνείσαι, είναι, απλούστατα και ξεκάθαρα, η κοινωνική νόρμα της αναισθησίας.

Με λίγα λόγια, αποδεχόμαστε περηφάνως εαυτούς ως γουρούνια.

Ας μην αναρωτιόμαστε, λοιπόν, ποιοί ήταν οι νταήδες του Γιακουμάκη, και γιατί έγιναν όλα αυτά "κάτω απο τη μύτη μας". Η γλώσσα μας προδίδει ακριβώς το ποιοί ήταν, και το γιατί όλα αυτά έγιναν "κάτω απο τη μύτη μας".

Sunday, November 16, 2014

Why I love - again!

Imagine yourself operating a VM hosting provider.

You have innumerable lots of customers, the vast majority of them having just a small - or, at worse, none at all - technical ability and knowledge to ensure that their VMs are running smoothly, without causing any issues either to you or to the larger Internet community as a whole.

Being a good netizen requires technical knowledge that is not so widely disseminated or given attention at nowadays, where the popular trend getting momentum is "anybody can fire up an Ubuntu and be happy with not ever having to deal with UNIX internals".

Now, imagine one of your customers VMs was causing trouble - not only to you, but to another ISP, and their customers too.

What would you do?

Most of us technically inclined people, would be quick to answer: "Shut them down so you alleviate the issue, and deal with them later, or not deal with them at all - they're not going to understand technical matters". Most probably, I myself would be amongst those giving the same exact answer when faced with this question.

But I wasn't.

To make it worse, this time, I was part of the problem: I had deliberately configured a DNS resolver on one of my VMs to allow unlimited recursive queries from the open Internet. The reason? At the time, I was behind some ISPs aggressively filtering DNS queries, and I wanted to have a DNS resolver I could trust - my own one.

Problem is, this configuration allows your DNS server to be the culprit for an interesting class of attacks, called DNS Amplification Attacks. Although I was very aware of the dangers of operating a publicly reachable open DNS resolver, I opted to hide behind the small possibility of my own VM being used as part of an attack - who scans the wide internet for open DNS resolvers, right?

Well, apparently somebody did. Fortunately, this somebody was an automated service scanning for open DNS resolvers rather than an actual attacker, but unfortunately it was also a misconfigured one: Upon discovery of an open DNS resolver, it didn't just notify their owners so they could alleviate the issue, but it also kept on hammering the said DNS resolver with thousands of DNS requests per minute, all of them destined for a couple of DNS domains - facilitating a DNS amplification attack, rather than preventing one!

My VM host provider is the more than excellent So, what they did in this case to alleviate the issue my VM was causing - again, not only to them, but to another ISPs and another ISPs customers? Did they shut down my network connectivity, or my VM at large, as it would be easier - and safer - for them to do so?


Instead, they opened a ticket with me. Supplying all the technical information needed so I could fix the issue myself.

To make a bad situation worse, my linode-registered e-mail is one that sometimes I don't read too often - especially when travelling around. And at the period in question, I was travelling around. So their ticket went unnoticed for a total of 5 days.

Did they shut me down after my inability of quickly respond to the issue, as they would be more than right to?


They kept on sending me emails, until I finally noticed one of them.

Upon reading their ticket, it was just a matter of minutes to alleviate the problem. I turned off the recursive resolver on my bind configuration, and I supplied them with the list of IP addresses being responsible for the vast majority of the rogue DNS requests, as well as the domains being attacked. I also offered to contact the attacked ISP's technical contact, whose e-mail complaint linode had CC:ed to the ticket, to let them know I took care of the situation, and ask for forgiveness :)

Why, you would be inclined to ask, am I publicly exposing my mistakes like so? Only for one reason: To again, and again, and again praise, whose *EXCELLENT* technical customer support has been saving me from issues time after time, all these years I've been their customer. And let's not forget - they even give you free upgrades every time they expand - some capacity goes to accommodate for growth, and some capacity goes to free upgrades for their existing customers.

So, if you're a linode customer, be sure to read your registered linode e-mail often so you get notice of any issues, and be sure to read their blog often, so you get noticed of any offers and upgrades being offered to you.

And if you're not a linode customer, go on and be one right now. I can assure you that it will be one of the best decisions you'll ever make. 

Saturday, April 12, 2014

Ρέκβιεμ για μια ματωμένη καρδιά

Μέχρι τώρα με τις χοντρομαλακίες που διαβάζετε στο Internet για το Heartbleed, πρέπει να έχετε χεστεί πάνω σας, ειδικά αν είστε ο τυπικός ασχετίλας απο πληροφορική - εδω λένε μαλακίες και αρκετοί που ΔΕΝ είναι.

Οι καλύτερες πιπάντζες απ'ολες, φυσικά, οφείλονται, όπως πάντα, στους δημοσιοβλάχους. Απανθίζω μαργαριτάρια καλλίστου μαλακίας :

* Πανικός στις ιστοσελίδες από τον ιό «ματωμένη καρδιά»
* Η ματωμένη καρδιά που απειλεί να «ματώσει» το διαδίκτυο
* Ιός διαβάζει τους κωδικούς σας σε υπολογιστή και κινητά!
* Ο ιός έχει το όνομα heartbleed, και το σχήμα καρδιάς που ματώνει
* Βόμβα διαδικτυακή ο νέος ιός που διαπερνά τα πάντα και ματώνει όλα τα συστήματα ασφαλείας σε κινητά και υπολογιστές!

Τι πρέπει να πιστέψετε απο όλα αυτά;


Το πρόβλημα είναι σημαντικό, είναι όντως σημαντικό, ΑΛΛΑ ΔΕΝ ΑΦΟΡΑ ΕΣΑΣ. Όντως η έκταση του είναι μεγάλη, όντως έγιναν χοντρομαλακίες στο χειρισμό του θέματος, όντως κανείς δεν ξέρει τι δεδομένα πιθανώς έχουν υποκλαπεί απο vulnerable συστήματα, όντως ενδεχομένως να υπάρχει πουστιά στη μέση - αυτά ισχύουν.

Άλλα αυτά αφορούν κυρίως ένα τσούρμο καημένους τεχνικούς που θα τρέχουν μερα νύχτα να patchάρουν SSL servers. Απλήρωτοι. Με υπερωρίες. Γιατί "είναι η δουλειά τους", "Για το καλό της εταιρίας", και άλλες λοιπές παπάντζες.

Οσο για τους κωδικούς σας και αν πρέπει να τους αλλάξετε; Καλό είναι να το κάνετε. Όχι τώρα. Σε κανένα μήνα απο τώρα, όταν θα έχουν προλάβει πρώτα οι τεχνικοί που τρέχουν σα γαίδαροι, να patchάρουν τους servers στους οποίους τους έχετε. Γιατί αν τους αλλάξετε πρίν, είναι δώρο - άδωρο.

Και να σας πώ και τρία μυστικά:

Πρώτον, κανένας δεν ξέρει πόσο πραγματικά δύσκολο είναι να γίνει όντως συστηματική υποκλοπή κωδικών απο servers με τη χρήση του heartblead. Ώς ενα βαθμό, είναι ζήτημα τύχης, ως ένα βαθμό ζήτημα επιμονής, ΔΕΝ είναι πάντως τόσο απλό όσο σας λένε.


Πόσο μάλλον στο Yahoo.

Μόνο εσυ ο ίδιος νομίζεις οτι είσαι τόσο σημαντικός που το password σου αποτελεί το μεγάλο μυστικό του σύμπαντος. Εξ'αλλου, κατά πάσα πιθανότητα, είναι το νούμερο του τηλεφώνου σου η το όνομα του σκύλου σου, η "123qwe".

Τρίτον. Μόνο κάποιοι servers έχουν πρόβλημα. Ναι, θεωρητικά έχουν και κάποιοι clients. ("client" ονομάζεται το κομπιούτερ σου, γάιδαρε). Πολύ θεωρητικά. Το πόσο θεωρητικά, θα το δείς παρακάτω. Δε θα καταλάβεις το χριστό σου βέβαια απο αυτό που θα δείς, αλλά θα το δείς.

Και η μαλακία είναι οτι θα εξακολουθήσεις να'σαι σα χεσμένος και ΑΦΟΥ το δείς. Γιατί τόσο σου κόφτει. Γιατί τόσο έχεις συνηθίσει να πιστεύεις άκριτα ότι μπούρδα σου πουλάνε τα blogs.


Πόσο σπάνιο είναι το client-side vulnerability; Η αλήθεια είναι οτι για να καταφέρω να βρώ vulnerable client για να δοκιμάσω τα παρακάτω patches, μου βγήκαν τα παναγίδια ανάποδα.

Πάμε στα patches:

Αυτό εδώ είναι ενα patch για το OpenSSL που διορθώνει το heartbleed attack όπως θα έπρεπε να είχε διορθωθεί: Loggάρει το attack attempt, και απαντάει στο oversized heartbeat request ΜΕ ΜΙΑ ΠΟΥΤΣΑ ΝΑ, με το συμπάθειο (μη με ρωτάτε για ποια έκδοση του OpenSSL είναι, αμα δε μπορείτε να διαβάσετε ενα patch, και να σας απαντήσω για ποια έκδοση είναι θα σας είναι πιο άχρηστο κι απο υποθαλάσσιο ποδήλατο).

Και για μια live επείδιξη του τελευταίου, αν πατήσετε το παρακάτω link, ο ΙΟΣ που επιτίθεται στο ΓΚΟΜΠΓΙΟΥΤΕΡ σας θα ΤΡΥΠΩΣΕΙ ΑΘΟΡΥΒΑ ΜΕΣΑ ΑΠΟ ΤΙΣ ΓΡΑΜΜΕΣ ΤΟΥ ΙΝΤΕΡΝΕΤ. Θα σας κλέψει την παρθενιά, θα σας σκοτώσει το σκύλο, θα βιάσει την αδερφή σας απο τον κώλο (αν δεν έχετε αδερφή θα σας κάνει μια πρώτα), θα αδειάσει την πιστωτική σας κάρτα, και θα σας κλέψει ολο το μπάφο. ΝΑΙ, και αυτόν που έχετε κρυμμένο μέσα στην κάλτσα στο συρτάρι του υπνοδωματίου.

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

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

Εαν η επίθεση δεν πετύχει, πάλι θα δείτε κάποια δεδομένα που αφορούν το SSL connection σας, και τον λόγο για τον οποίο απέτυχε η επίθεση. Και πάλι χριστό δε θα καταλάβετε.

Επίσης, σας υπόσχομαι οτι εάν το πατήσετε, θα καταγραφούν τα παρακάτω δεδομένα:

* H ημερομηνία και η ώρα,
* Η IP σας (ξέρετε, εκείνο το "ηλεκτρονικό ίχνος" που λένε τα blogw)
* Το User-Agent string σας (ΔΕΝ ΕΙΝΑΙ ΒΡΑΚΙ, ΗΛΙΘΙΟΙ!)
* Το GET string σας (ΟΥΤΕ ΑΥΤΟ!)
* Ο Referer σας (για να μη μου κάνετε καμμιά πουστιά, δε σας ξέρω τι κερατάδες είστε;)
* Εαν ο client σας είναι ευπαθής στο heartbleed.

ΔΕΝ θα καταγραφεί:

* Ο buffer με τα δεδομένα που επέστρεψε ο client σας σε περίπτωση επιτυχίας του heartbleed attack.

Φυσικά δεν έχετε καμμία υποχρέωση να με πιστέψετε. Μπορεί όλα αυτά να είναι ψέμματα για να σας κάνω να το πατήσετε και να σας κλέψω τον κωδικό σας στο facebook για να την παίζω με τις φωτογραφίες σας σε κείνο το κλειδωμένο album. Ξέρετε ποιό λέω. 

Και μην πέφτετε όλοι σαν τα γίδια επάνω. Βαριόμουν και το μαλάκισα άγρια με την BIO_puts(), συν το γεγονός οτι ο s_client είναι single-threaded - οπότε αμα αρχίσετε να το βαράτε όλοι μαζί, θα πάρετε τ'αρχίδια του Δαλαι Λάμα.

Update #1

Και με τα private keys των servers τι γίνεται;

Αυτά είναι όντως vulnerable, αλλά η μεγάλη ζημιά έχει γίνει ήδη. Οι περισσότερες απο τις υπηρεσίες που χρησιμοποιείτε, αργά η γρήγορα θα διορθωθούν - και θα αλλάξουν τα private keys τους. Μέχρι τότε, φυσικά μπορείτε και να τις ελέγχετε - ενα κάρο sites υπάρχουν που κάνουν αυτόματα heartbleed tests - και ναι, το ξέρω οτι αποκλείεται να το κάνετε. Γενικά ωστόσο, οποιοδήποτε vulnerability στο server-side έχει σχετικά πιο περιορισμένο χρόνο ζωής απο ότι στο client-side. Πρόβλημα στο client-side θα υπάρξει ενδεχομένως με κινητά που γίνονται upgrade κάθε ποτέ, embedded devices, κτλ.

Πρόβλημα επίσης υπάρχει με το compromise των private keys κυρίως στην περίπτωση που κάποιος έχει μεγάλο όγκο καταγεγραμμένης κρυπτογραφικής κίνησης, που τώρα μπορεί πλέον να αποκρυπτογραφήσει - σχεδόν κανείς δε χρησιμοποιεί PFS. Αυτοί είναι σχετικά λίγοι, και συνήθως έχουν καλύτερα attack vectors απ'αυτό εδω πέρα - που θα καταστεί και άχρηστο σε λίγο καιρό. Το μεγαλύτερο πρόβλημα με το συγκεκριμένο vulnerability είναι οτι έχει αρκετά μεγάλο εύρος ωστέ να γίνουν σοβαρές εκτιμήσεις του τι κινδυνεύει και τί όχι.

Τώρα, αν είστε πελάτης της Συνεταιριστικής Τράπεζας Κάτω Μπραχαμίου, με IT services βασισμένα σε yggdrasil linux και διαχειριστή το γιό του προέδρα που τελείωσε ΙΕΚ Γάμα, Τμήμα Εφαρμογών Κρυπτογραφίας, οκ, ας προσέχατε.

Και η μεγάλη κακιά NSA;

Αυτή έχει καλύτερους τρόπους να μαζεύει δεδομένα.

Ντάξ, κι αυτός καλός ήταν - μέχρι σήμερα.

Τελικά τι να κάνω; Να αλλάξω κωδικό στο Pinterestagram;

Ακόμα και να αλλάξεις, κάποια παρόμοια μαλακία θα βάλεις. Και θα ξέχασες κι οτι έχεις τον ίδιο κωδικό σε ακόμα 842 sites. Αυτό, δυστυχώς, δεν αλλάζει.

Μα τι θα γίνει επιτέλους με όλους αυτούς τους προγραμματιστές που είναι ανίκανοι να θυμούνται συνέχεια το μέγεθος των buffers τους;

Θα τους μεταθέσουμε όλους στην Αλάσκα να γράφουν COBOL.

Έχω τον Exchange Server της Microsoft. Θα έχω πρόβλημα με το Heartbleed;

Οχι, και πλέον αυτού, κατα πάσα πιθανότητα το Exchange σου είναι πεσμένο. 

Wednesday, March 12, 2014

[Snippets]: Online resize of LVM filesystems.

Είναι κάτι που χρειάζεται να το κάνω πολύ συχνά, και πάντα ξεχνάω πώς στο διάολο.


recreate partitions (CAREFULLY!)
reread partition table
lvm pvresize
lvm lvextend

Βαριέμαι να τα γράψω αναλύτικότερα. Διαβάστε τα man pages. Ίσως την επόμενη φορά που θα χρειαστεί να το κάνω, να κρατήσω log.

Saturday, December 28, 2013

Old chinese proverbs of wisdom, part 1.

Once, an old wise Chinese wizard said :

"If IPv6 neighbour solicitation messages can't seem to pass through a Linux bridge when using the igb ethernet driver, try to disable Generic Segmentation Offload on the underlying network interfaces".

And exactly no-one was enlightened. 

Saturday, December 07, 2013

Πως γεννιέται μια QRada.

Πέμπτη μεσημέρι. Γυρίζω απο τη δουλειά με το λεωφορείο - είμαστε σαρδέλες σε κονσερβοκούτι. Η σαρδέλα μπροστά μου κρατάει αυτήν εδω πέρα την τσάντα. Θα την πήρε στα Zara σε γαμώ τις τιμές για τέτοιο μοντέρνο σχέδιο, ποιανού designer να είναι άραγε;

Έκανα μερικές αποτυχημένες προσπάθειες να το σκανάρω - τελείωνε η μπαταρία του κινητού, οι σαρδέλες ανάμεσα με εμπόδιζαν να πιάσω σωστή γωνία, και ντρεπόμουνα κιόλας να πιάσω και κουβέντα στην κοπελιά σε στύλ "μήπως μπορείτε να γυρίσετε λιγάκι προς τα δώ να σκαννάρω την τσάντα σας;" - γιατί ξέρετε, έτσι αρχίζει το μπλά μπλά, "καλά είναι έτσι, να τη γυρίσω λίγο κι άλλο;", σούξου μούξου, "πάμε σπίτι σου να τη φωτογραφήσω καλύτερα στο κρεββάτι", κτλ κτλ, και πρίν καλά καλά το καταλάβεις είσαι παντρεμένος, με 7 παιδιά, σκύλο, Καγιέν, και δάνειο.

Εγω σιχαίνομαι τα δάνεια, οπότε έμεινα με τη φωτογραφία στο χέρι - η οποία, λόγω γωνίας και φωτισμού, δεν περνάει απο QR decoder ούτε με σφαίρες. Ένας πραγματικός επιστήμων πληροφορικής, φυσικά, δε θα κόλλαγε εκεί. Υπάρχει άπειρη βιβλιογραφία για image processing, φωτογραμμετρία, transformations, και δε συμμαζεύεται. Εγώ όμως που δεν εχω βγάλει το σχολειό - ένας απλός πιανίστας σε μπουρδέλο του δημοσίου τομέα είμαι - έκανα ο,τι θα έκανε οποιοσδήποτε δημόσιος υπάλληλος σέβεται τον εαυτό του:

 Έφτιαξα εναν interactive QR code editor / scanner, βασισμένο στο backend του zxing. Το project, φυσικά, ονομάστηκε, σύμφωνα με την IUPAC ονοματολογία, QRada, και μπορείτε να το βρείτε στο

Ναι ρε, Java, γιατί, τι έχει η Java; Μια χαρά γλώσσα είναι για να ξεπετάς στο τσάκα-τσάκα vintage GUI frontends που μοιάζουν σαν μόλις να βγήκαν απο το 1995. Εξάλλου, τόσοι vegan ποδηλάτες hipster developers τη χρησιμοποιούν, για να φτιάχνουν τα πιο άχρηστα applets σε Android που δε θα μπορούσε ποτέ να φανταστεί κάποιος. Κάτι θα ξέρουν οι hipsters, δε μπορεί.

Ο φίλος Antonis Maglaras προσπάθησε να βελτιώσει λίγο την κατάσταση - με μάλλον αμφίβολα αποτελέσματα, μια που οι ζάρες τις τσάντας σκοτώνουν μπόλικη πληροφορία:

Ήταν ωστόσο μια αρκετά καλή βάση για να ξεκινήσω χειροκίνητο data input. Έλπιζα το QR να είχε δημιουργηθεί σε mode με αρκετό error correction.  

Παρεμπιπτόντως, ωραίο το SWT. Βιντατζιά σκέτη, γαλάζιο ντεγκραντέ στα buttons και δε συμμαζεύεται. Γράφεις SWT κώδικα και φαντασιώνεσαι χίλιους hipsters να χύνουν ποδηλατώντας καθώς ουρλιάζουν εν οργασμώ τη μελωδία του Deflector απο την Amiga 500 με την οποία έπαιζε ο θείος τους. Τελικά, μετά απο αρκετή ώρα και διορθώσεις...


Και το μαγικό μυσικό επιτέλους ξετυλίγεται μπροστά στα μάτια μας σε μια μαγική πανδαισία διαφημιστικών χιψτεροbanners :, κατακεραυνώνοντας τους άθλιους υποκριτές που νόμιζαν οτι το QR code μιάς τέτοιας τσάντας θα οδηγούσε απλώς στο site εταιρίας με τσάντες για hipsters.

Saturday, October 12, 2013

Οι 73 νεκροί της Αριστεράς.

Πρίν απο μερικές ημέρες σχολίαζα το κείμενο με "τους 73 νεκρούς της Αριστεράς". Φαίνεται οτι το πρωτότυπο είναι εδω.

Κάποια ονόματα τσουβαλιασμένα ως θύματα της 17 Νοέμβρη δεν μου θύμιζαν τίποτα (κι εχω διαβάσει όλα τα πρακτικά της δίκης. Αναρωτιόμουν ποιανού δεν του φτάνουν π.χ. 67 θύματα και λέει να βάλει ακόμα μερικά.

Ψάχνοντας με ενα φίλο βρήκαμε αυτό.

και αυτό

Δεν θυμάμαι η 17Ν να έλαβε την ευθύνη για την συγκεκριμένη έκρηξη (όπως και για καμμία ενέργεια που δεν αναφέρεται στις προκηρύξεις η στά πρακτικά της δίκης).

Αλλά τι λέω. Παλαιστίνιοι έβαλαν τη βόμβα, ε, οι παλαιστίνιοι αριστεροί δεν είναι; Της 17Ν θα ήταν.

(kudos στον Δημήτρη που κρατάει ανοιχτό το αρχείο της Μακεδονίας - Θεσσαλονίκης, και ας του δημιουργεί προβλήματα. Θα έπρεπε να υπάρχουν περισσότερα mirrors)

Friday, October 11, 2013

Οδηγίες σωστής σύνδεσης ADSL modem

Οδηγίες σωστής σύνδεσης ADSL modem, απο άλλο post. Κάντε τα παρακάτω και θα διαπιστώσετε τρομαχτική διαφορά στις ταχύτητες σύνδεσης σας.

Περίπτωση 1: Ξέρουμε που ακριβώς έρχεται η τηλεφωνική παροχή και πως διακλαδώνεται στο διαμέρισμα (επειδή τη φτιάξαμε μόνοι μας, αλλίως σιγά μην το ξέρουμε). Ο splitter μπαίνει *πρίν* απο *οποιαδήποτε άλλη* διακλάδωση. Ολος ο κλάδος που σηκώνει τα 3928 duplex τηλέφωνα και χαλασμένες μπρίζες του 1970 στο διαμέρισμα πηγαίνει στο "phone" port του splitter. Το DSL modem πηγαινει μοναχουλι του κατευθείαν με την ουρά του συνδεδεμένη στο "modem" port του splitter.

Περίπτωση 2: Δεν ξέρουμε το χριστό μας απο την εσωτερική καλωδίωση του διαμερίσματος. Βάζουμε τον splitter εκεί που ξέρουμε, και παίρνουμε N ADSL filters, ενα για καθε μια τηλεφωνική συσκευή που διαθέτουμε, ΕΚΤΟΣ απο κείνη με τον περιστροφικό επιλογέα και το σώμα απο ατόφιο βακελίτη κολλημένο με περασιές κολλητικής ταινίας, που κληρονομήσαμε απο τη γιαγία μας που το κληρονόμησε απο τον παππού της. Αυτή, την πετάμε στα σκουπίδια. Τη συσκευή, όχι τη γιαγιά.

Βάζουμε ένα φιλτράκι ανάμεσα σε κάθε τηλεφωνική συσκευή και στο μπριζάκι της (απο τη μεριά του μπριζακίου), ΑΦΟΥ αλλάξουμε όλα τα μπριζάκια του διαμερίσματος απο τα αρχαία με το πελώριο σκουριασμένο βύσμα διπλό-καρφί σε σύγχρονα RJ11. Αφήνουμε ΜΙΑ μπρίζα χωρίς φιλτράκι, και εκεί πάνω συνδέουμε κατευθείαν το modem.

Sunday, March 17, 2013

Σκόρπιες κι ασυνάρτητες σκέψεις περι bitcoins

(το κείμενο δεν είναι στην τελική του μορφή, θα συμπληρώσω feedback και λοιπές σκέψεις) 

Big Red Fat Disclaimer: Οι γνώσεις μου περι οικονομικών περιορίζονται στο οτι έχω διαβάσει τον Samuelson περίπου μέχρι τα 2/3, και σε ο,τι πιάνω δεξιά κι αριστερά, μετά απο κάποιο υποκειμενικό φιλτράρισμα που δεν ξέρω πόσο ασφαλές είναι. Οπότε μπορεί να λεω και πίπες, feel free to correct me.

Επίσης αυτό το κείμενο είναι η πρώτη μου προσπάθεια καταγραφής των σκέψεων μου γύρω απο αυτό, γι αυτό είναι και αρκετά μπερδεμένη σε κάποια σημεία. Feel free to correct me again.

Big Fat Disclaimer 2: Αν και geek ο ίδιος, οι αντιρρήσεις μου με τα κολλήματα και τις ιδεολογικές αγκυλώσεις των geeks μπορούν να γεμίσουν βιβλίο - κυρίως με τον τεχνολογικό χιλιασμό τους και την πλήρη απουσία αντίληψης οποιασδήποτε κοινωνικής δυναμικής ξεπερνάει τον θεόσταλτο αυτιστικό μικρόκοσμο του Star Trek και του Lord of the Rings.


Πολύ ενδιαφέρον πείραμα με διάφορες περίεργες προεκτάσεις (όπως το γεγονός οτι κανείς δεν είναι σίγουρος για το ποιός ακριβώς ήταν ο τύπος που το έφτιαξε). Παίζει με τις βασικές ιδιότητες αυτού που λέμε χρήμα, οι οποίες τελικά νομίζω οτι είναι οι εξής δυο :

1) Το δημιουργεί κάποιος που έχει την εξουσία να επιβάλλει τη χρήση του (παραδοσιακά δια της κρατικής βίας με το extension της που ονομάζεται κοινωνική συναίνεση ;)).

2) Ο κάποιος σου εγγυάται τυπικά οτι αν του δώσεις 1 νόμισμα θα σου δώσει μια ντομάτα.

Τα δυο προβλήματα που πρέπει να λύσεις όταν προσπαθείς να δημιουργήσεις χρήμα είναι:

α) Πόσο θα φτιάξεις (η απάντηση είναι μάλλον αυθαίρετη, αλλά πρέπει να είναι συγκεκριμένη)

β) Σε ποιόν θα το δώσεις

Στο 1) και στο α) το bitcoin προσπαθεί να δώσει τη μισή λύση. Το δημιουργεί ο καθένας, με ενα προδιεγραμμένο αυθαίρετο ρυθμό (μέχρι να βγεί bitcoin v2, γιατί το v1 δεν προβλέπει απεριόριστο τύπωμα, lol)

Στο 2) και το β) - το bitcoin ρυθμίζει την αρχική κατανομή με το εντελώς ηλίθιο και ταυτόχρονα τραγικά geekίσιο κριτήριο του πόσο γαμάτη κάρτα γραφικών εχω. Γενικά ο τρόπος που κάνει το mining μου φαίνεται αποτυχημένος.

Απο κεί και πέρα η κατανομή αφήνεται στούς "μηχανισμούς της αγοράς" - δηλαδή στους χρήστες του. Οι οποίοι τελικά χωρίζονται σε δυο κατηγορίες :

α) εγω κι εσυ, δηλαδή τίποτα (η απευθείας ανταλλαγή bitcoins είναι σχεδόν μηδενική)

β) τα bitcoin exchanges, τα οποία τελικά καταλήγουν οι ρυθμιστές του παιχνιδιού επειδή είναι οι εγγυητές του 2) και τελικά οι αποδέκτες του β). Και είδαμε πόσο καλά τα κατάφεραν. Πρακτικά η αντιστοιχία ντομάτας ανα bitcoin καθορίζεται αυθαίρετα απο κάθε exchange.

Γενικά μου μοιάζει πάρα πολύ με ονείρωξη Αμερικάνου liberal geek που συνδιάζει τα κακά και των δυο με τα πλεονεκτήματα κανενός. Υποψιάζομαι οτι ο δημιουργός του φανταζόταν μια πληθώρα exchanges, με ελεύθερη επιλογή του χρήστη αναμεταξύ τους, που θα δημιουργούσε θεωρητικά μια ισορροπία ισοτιμιών. Bullshit.

Το μόνο καλό που έχει είναι οτι δίνει κάποιες καλές τεχνικές λύσεις στο πρόβλημα των transactions, και στην ιδιότητα του χρήματος οτι "δεν αντιγράφεται" - οι οποίες θα μπορούσαν να φανούν χρήσιμες σε άλλα σχήματα micropayments.

Πέστε να με φάτε τώρα.

Monday, March 04, 2013

Everybody who wants to work for Google, raise your hand and scroll down!

OK, OK, you can put your hand down. I'm not a Google recruiter. But, while I have your attention, let me ask you a question: WHY you want to work for Google? Specifically for Google?

- What a silly question! For the money, of course.

Before we proceed, let me make myself clear: I believe that all work is paid slavery. The only freedom you're entitled to is to whose whip you're going to submit yourself. You know, there's a reason the money you get for working is called "compensation". They compensate you for the time you work instead of browsing LOLcats on the internet, masturbating, or whatever non-productive thing there is you would actually like doing.

Anyways, let's consider that compensation. You see, Google is no much better than other top-tiers in the IT industry (let alone other industries, we're talking IT now). According to my highly unscientific research, their average salary is on-par with Apple, Facebook, or eBay. And average salaries are misleading, because the top salaries are usually uncapped - and there's too much variability there amongst companies. The starting salary is what you're more likely to see, and that's not so impressive - eBay's is higher.

But no geek starts cumming over the possibility of working for eBay.

- Yes, but what about the working environment?

The perfect working environment for me is lying on a beach, beer in hand, under the shadow of some palm tree, doing exactly nothing, while a fairy softly scratches my balls. And no mosquitos, thank you. (what do you mean "there are no fairies"? It's my fantasy, if I want fairies in it, they do exist. End of argument).

Everything less than that, is a compromise. Let's see how good a compromise it is. Instead of the beach, beer, pear tree and fairy, Google gives you this :

Doesn't seem like a fair compromise, does it?

That is, unless you're a geek.

- OK, but, Google is GOOD! You know? "We do no evil"? Don't you want to be a PART of it?

They're not good. They're not bad either, though. Basically, they're a company - companies don't have feelings or ethics, people do. And as far as companies can be rated with ethical measures, want to know what counts as bad on my list? Offering your help and money to organize a coup to overthrow the democratically elected Chile government. ITT actually did that in the '70s. That's bad.

Whatever Microsoft or Google does, is just peanuts compared to that.

Unless you're a geek. With geek-oriented predispositions and geekly aspirations, neck-down buried in the geek subculture that Google strives to adhere to. And this is part of their terrific, clever PR strategy of selling themselves to geeks.

- But you know, you've got to work on all these COOL projects there, like the self-driving car or the VR glasses.

Oh, yes, you're really going to. When data mining started being geek-cool? Of course when Google made it so. Of all the things that google makes money of, you surely are going to work for the projects that don't. Because you're so terrific, they love you. Yes, they'll spare all the boring and un-exciting things any serious, production-level job consists of (like actually user-testing 41 shades of fucking blue), just to let you play with the geek-appealing things.

Yes, I'm talking about the "geek appeal" thing. Which is not so much appreciating the geeks themselves, as appreciating whichever subculture norms the geeks are used to identify with - and they get the largest and most discounted piece of employee ass ever served to an employer for doing just this.

They manipulate the entire potential employee pool to their own advantage, and the geeks still can't grasp the trick! Cornelius Castoriades ought to resurrect himself, kneel down and blow them a bunch of jobs, just for the feat of them having achieved this!

Who else would have the balls to do that, besides Google?

- But... What about THE CHICKS?

...sorry... which chicks?

- ALL these chicks who'll come running with their underwear wet, upon learning I'm working for Google!

OK. That's a noble reason, actually. Go for it.

- You're just jealous you aren't working for Google, aren't you?

No. What I'm actually jealous of, is the guy in the beach. The one with the fairy.

- So, all this rant is just to tell us you hate Google?

I'm not hating them. I actually admire them. I admire their engineering, their products, their services, their strive for excellency, their stance on public IT policy - everything.

But what I value more than this, is the individual's freedom to choose a career, without the illusions of whatever sub-culture norms he has compelled to give value to, either through peer-pressure or just by the dire need for geek conformity.

And now, consider, for the sake of the argument, that while you're proudly working for them, they decide - for whichever reason - to fuck you over.

How longer would you choose to stand this - compared to any other job - just for having the privilege to still work for Google?

That's exactly the price tag you have already put in your freedom. For a neatly colored bicycle.

And this is no fault of Google. It's just another fault of us, the geeks.