Categoria: sistemi operativi

  • (non)Lavoro: mattinata produttiva

    Per tutto un complesso di cose (TM) il rapporto con il vecchio committente si è incrinato.

    Diciamo che quando tu parli e dall’altra parte trovi qualcuno che assente senza capire niente (magari ripetendo le tue parole o aggiungendo dei dettagli completamente fuori rotta), oppure dissente e adduce motivazioni senza fondamento, riesce difficile credere che quello che stai facendo sia reale …

    …Tutto un complesso di cose.

    Ma stamattina mi metto in testa di installare odoo nel kubernetes che ho messo dentro a delle VM in un server Proxmox … è tutto un inscatolamento di cose dentro cose …

    Parto con helm chart. Ma odoo si lamenta di cose, non parte.

    Mi viene in mente che non ho una CNI installata.

    Mi documento e trovo che calico sia la migliore opzione.

    Per tutta la mattina sbatto il muso con la configurazione.

    Alla fine riesco a fare andare calico (la CIDR scelta di default da tigera non era disponibile: kubectl edit a mano).

    Poi passo a odoo. Ecco, mancavano i PersistentVolume.

    Ne faccio 2 a caso.

    Poi mi dico, dopo 8 ore di lavoro, “ma questo è quello che mi piace fare”.

    E perché dunque non lo faccio? Semplice: committente sbagliato.

    Ora sono sul mio server: https://www.youtube.com/playlist?list=PLkTQw47r-fPKVTRqBgsD91zdVuPq2EJAu

  • Risoluzione degli indirizzi e instradamento nelle reti IP

    Ieri sono stato rompiballe al GLM, ma si trattava di chiarire una questione purtroppo poco chiara, almeno per me.

    Sì è parlato di firewall, così bisognava anche impostare delle tabelle di routing e fare esempi di instradamenti “strani”.

    Il primo aspetto che ho dovuto chiarire riguardo all’instradamento dei pacchetti è che una macchina che vuole contattare un ip fuori dalla classe della sottorete in uso, manda questo pacchetto comunque alla macchina collegata su quel link. Es.:

    1. sottorete configurata 10.0.0.0/24
    2. macchina mittente con ip 10.0.0.5 invia un pacchetto ip con sorgente 192.168.0.201 e destinazione 192.168.0.200
    3. macchina collegata alla sottorete 10.0.0.0/24 con ip 10.0.0.1 riceve comunque questo pacchetto e prova a farci qualcosa: risolve e invia alla macchina destinazione se riesce ed è configurato per questo, altrimenti lo butta.

    Secondo aspetto: se una macchina ha un ip facente parte di una certa sottorete, essa cercherà di risolvere gli indirizzi a livello link (livello 2) dell’OSI Model, vale a dire a livello mac address per le reti ethernet. Es.

    1. macchina mittente 192.168.0.201, sottorete configurata 192.168.0.0/24 (cioè netmask 255.255.255.0) invia pacchetto a 192.168.0.200
    2. la risoluzione dell’indirizzo viene fatta così (protocollo ethernet):
      1. ARP asks who has 192.168.0.201
      2. nessuna risposta
      3. ritorna al punto A. fino ad un timeout
      4. butta il pacchetto.

    Vale a dire che c’è una sorta di pairing tra il protocollo ethernet e il protocollo IP relativo alla sottorete, oppure tra la sottorete IP e la scheda di rete relativa. Questo rafforza il concetto di sottorete e netmask dicendo: questa sottorete è risolta tramite ethernet.

    Si solleva ora un altro dubbio:

    la sottorete è univocamente assegnata ad una interfaccia ethernet? Vale a dire se assegno ad eth0 la sottorete 10.0.0.0/24, non posso assegnare ad eth1 la stessa sottorete 10.0.0.0/24? – Da quello che trovo non è obbligatorio, dipende dal software, cioè dal sistema operativo, ma è altamente sconsigliato: si avrebbero gli stessi messaggi di richiesta a livello link (OSI Model level 2) sulle 2 sottoreti, e richiede, a livello di sistema operativo una tabella con riferimento alla interfaccia. (in Linux la tabella ARP ha una colonna relativa all’interfaccia, quindi questa limitazione non c’è)

    Quindi: una sottorete può essere risolta tramite più interfaccia, e al limite utilizzando diversi protocolli di livello 2 (non mi è mai capitato di vedere un protocollo diverso da ethernet a livello link, ma è possibile).

    Passando ad IPV6 la cosa dovrebbe farsi interessante, di fatto il protocollo impone di mandare il pacchetto specificando il destinatario finale effettivo: tipicamente il NAT non è previsto. Lo spazio degli indirizzi è talmente ampio che non c’è bisogno di NAT, ma comunque il pacchetto viene gestita dalla macchina deputata al routing, sempre. Cioè la macchina deputata al routing gestisce tutti i pacchetti, quindi li instrada verso il destinatario della sottorete. …. da vedere.

  • Java Sun Plugin Ubuntu AMD64

    sudo apt-get install sun-java6-bin
    sudo ln -sf /usr/lib/jvm/java-6-sun-1.6.0.12/jre/lib/amd64/libjavaplugin_jni.so /etc/alternatives/mozilla-javaplugin.so
    sudo ln -sf /usr/lib/jvm/java-6-sun-1.6.0.12/jre/lib/amd64/libjavaplugin_jni.so /etc/alternatives/firefox-javaplugin.so
    sudo ln -sf /etc/alternatives/mozilla-javaplugin.so /usr/lib/mozilla/libjavaplugin.so
    sudo ln -sf /usr/lib/jvm/java-6-sun-1.6.0.12/jre/bin/javaws /etc/alternatives/
    sudo ln -sf /usr/lib/jvm/java-6-sun-1.6.0.12/jre/lib/amd64/libnpjp2.so /usr/lib/mozilla/plugins/

    suggerito da  http://federicomoretti.name/2009/01/01/come-installare-java-a-64-bit-su-ubuntujaunty/

  • Ubuntu: Shift+Backspace Kill X

    http://gentoo-wiki.com/HOWTO_XGL/Troubleshooting#Shift_backspace qui c’è una soluzione

    https://bugs.launchpad.net/ubuntu/+source/xorg/+bug/46814

    quello è il bug di ubuntu, usando XGL Shift+Backspace kill X (è una feature???)

    cia

  • Ubuntu hardy alpha3 e b43 driver

    b43 – Linux Wireless  istruzioni per far funzionare il driver per wireless Broadcom 4318 (AirForce One) di Acer Aspire 9300 con kernel linux 2.6.24

  • Simulate user input

    void CMyAppView::SignalImageStored()
    {
    TKeyEvent aKeyEvent;
    TEventCode aType;
    aKeyEvent.iCode = EKeyMenu;
    aKeyEvent.iScanCode = EStdKeyMenu;
    aType = EEventKey;
    iCoeEnv->SimulateKeyEventL(aKeyEvent, aType);
    }

    iCoeEnv is a member of CAknView class, this is useful to open menu automatically, maybe after a laps of time.

    … and this cause only menu event, not the corresponding key be pressed when menu is visible, so setting a timer event that cause SignalImageStored be called (i.e. from a CActive derived class) could not cause select action. There can be some problem if the view is no more visible/activated … (to be added a test on active state of this view.

  • Symbian DBMS .. what damn does it supported?

    I am going mad for Symbian DBMS and SQL supported features … what is supported what not? My experience right now:

    SELECT C1 FROM T1 WHERE C2=0

    Not supported: C2 must be in the set of column selected

    SELECT C1, C2 FROM T1 WHERE C1=C2

    Not supported: C1 = C2 clause is not accepted (!!!)

    …. what kind of story are you telling me?

    Supported Symbian SQL Subset .. and no, no update for Symbian OS 9.1 .

  • Ubuntu (o Debian) startup

    In /etc/init.d/rc sostituire

    CONCURRENCY=none
    con

    CONCURRENCY=shell

    Risultato: gli rc?.d script con stessa priorità (SXX e KXX con XX uguali) vengono eseguiti in parallelo riducendo (forse) il tempo di startup.

    L’opzione non è attivata di default