iTalc

Ξεκίνησε από Δημήτρης Δαλαγιώργος, 10 Σεπ 2009, 01:18:49 ΜΜ

« προηγούμενο - επόμενο »

alkisg

Η λειτουργία αυτόματης αναζήτησης clients δεν είναι ενσωματωμένη στο iTalc, αλλά υπάρχει μόνο στο Ubuntu, με τη μορφή δύο scripts (ica-launcher και italc-launcher), τα οποία φτιάχνουν το σχετικό αρχείο με τους clients (~/.italc/globalconfig.xml) πριν τρέξουν το iTalc.

Άρα, αφού είναι απλά wrapper scripts (περιτύλιγμα), δεν μπορούν να κάνουν αναζήτηση ενώ τρέχει το iTalc.
Για να γινόταν αυτό που λες θα έπρεπε να προστεθεί η δυνατότητα εντός του iTalc. Αν θες στείλε ένα feature request στη mailing list του στο sourceforge, ίσως ο developer το βάλει στην 2.0 έκδοση που ετοιμάζει...

Προσωπικά έχω δηλωμένους στατικά όλους τους clients (client01.local, client02.local) και δεν χρησιμοποιώ autodetection. Για να το κάνεις αυτό αρκεί να σώσεις το αρχείο ~/.italc/globalconfig.xml ενώ λειτουργεί το iTalc με autodetection, και στη συνέχεια να απενεργοποιήσεις το autodetection από το αρχείο /etc/italc/italc.conf.
Η στατική δήλωση των clients βολεύει και στο να κάνεις μαζική εκκίνηση, αφού όταν οι clients είναι κλειστοί το autodetection είναι άχρηστο.

Δημήτρης Δαλαγιώργος

Παράθεση από: alkisg στις 10 Νοε 2009, 11:39:58 ΠΜ
Προσωπικά έχω δηλωμένους στατικά όλους τους clients (client01.local, client02.local) και δεν χρησιμοποιώ autodetection. Για να το κάνεις αυτό αρκεί να σώσεις το αρχείο ~/.italc/globalconfig.xml ενώ λειτουργεί το iTalc με autodetection, και στη συνέχεια να απενεργοποιήσεις το autodetection από το αρχείο /etc/italc/italc.conf.
Η στατική δήλωση των clients βολεύει και στο να κάνεις μαζική εκκίνηση, αφού όταν οι clients είναι κλειστοί το autodetection είναι άχρηστο.

Αυτό προϋποθέτει και static IP;
Ενάντια στην ηλιθιότητα, ακόμα και οι θεοί, μάταια αγωνίζονται.
Friedrich Schiller


Δημήτρης Δαλαγιώργος

Πώς απενεργοποιώ το auto detection;

Έφτιαξα ένα αρχείο /etc/italc/italc.conf

Έφτιαξα επίσης ένα directory /etc/italc/configfiles

Αντέγραψα μέσα στο configfiles το ~/.italc/globalconfig.xml

Το italc.conf περιέχει τα εξής:
PUBLISH_CLIENT=False

[paths]
globalconfig=/etc/italc/configfiles/globalconfig.xml


Τι άλλο πρέπει να κάνω;
Ενάντια στην ηλιθιότητα, ακόμα και οι θεοί, μάταια αγωνίζονται.
Friedrich Schiller

alkisg

Βάλε μόνο τα παρακάτω στο αρχείο /etc/italc/italc.conf:
PUBLISH_CLIENT=False
AUTODETECT_CLIENTS=False


Το παραπάνω προς το παρόν ισχύει μόνο για Karmic, όχι για προηγούμενες εκδόσεις. Με την πρώτη ευκαιρία θα κάνω μερικές διορθώσεις και θα ανεβάσω ενημερωμένη έκδοση στο αποθετήριο.
Μην βάζεις το [paths], δεν μπαίνει σ' αυτό το αρχείο, αλλά στο /etc/xdg/iTALC Solutions/iTALC.conf.

Για global configuration files για το iTalc δεν το έχω ψάξει, οπότε αν δεν βρεις άκρη απλά άστο να χρησιμοποιήσει τον προεπιλεγμένο φάκελο ~/.italc.

Δημήτρης Δαλαγιώργος

Και το globalconfig.xml που αντέγραψα από το ~/.italc/ τι το κάνω;
Ενάντια στην ηλιθιότητα, ακόμα και οι θεοί, μάταια αγωνίζονται.
Friedrich Schiller

alkisg

Ερμ, τίποτα, δεν το είπα καλά, σαν backup εννοούσα.
Απλά άνοιξέ το και άλλαξε το όνομα της τάξης «Autodetected clients» σε κάτι πιο νορμάλ, π.χ. «Εργαστήριο Πληροφορικής».
Αν έχει IP μέσα (νομίζω δεν έχει) βγάλτες και άσε μόνο τα client01.local και τις mac addresses.

Δημήτρης Δαλαγιώργος

Το globalconfig.xml όσο ίσχυε το autodetect είχε την εξής μορφή:

<globalclientconfig version="1.0.9">
  <body>
<classroom forcevisible="yes" name="Auto-detected computers">
<client id="0" localip="10.x.y.155:5901" mac="00:10:" name="client12" type="0"/>
<client id="1" localip="10.x.y.140:5900" mac="00:10:" name="client05" type="0"/>
<client id="2" localip="10.x.y.137:5900" mac="00:0c:" name="client04" type="0"/>
<client id="3" localip="10.x.y.136:5900" mac="00:10:" name="client08" type="0"/>
<client id="4" localip="10.x.y.135:5900" mac="00:10:" name="client02" type="0"/>
<client id="5" localip="10.x.y.134:5900" mac="00:10:" name="client09" type="0"/>
<client id="6" localip="10.x.y.133:5900" mac="00:10:" name="client07" type="0"/>
<client id="7" localip="10.x.y.132:5901" mac="00:10:" name="client11" type="0"/>
<client id="8" localip="10.x.y.131:5900" mac="00:10:" name="client03" type="0"/>
<client id="9" localip="10.x.y.130:5900" mac="00:10:" name="client06" type="0"/>
<client id="10" localip="10.x.y.129:5900" mac="00:10:" name="client10" type="0"/>
<client id="11" localip="10.x.y.128:5900" mac="00:10:" name="client01" type="0"/></classroom></body>
</globalclientconfig>


έσβησα τις ip, άλλαξα τις ρυθμίσεις του autodetection και ξανάνοιξα το iTalc. Είχε μια λίστα με 12 υπολογιστές αλλά δεν έκανε τίποτα πέρα απ' το να τους ανοίξει (και αυτό επειδή είχε η λίστα τις mac διευθύνσεις).

Κοίταξα το globalconfig.xml. Το iTalc το είχε πειράξει λίγο. Κατάλαβα ότι χρειαζόταν και τα ονόματα των clients. Συνεπώς το σωστό είναι:

<?xml version="1.0"?>
<!DOCTYPE italc-config-file>
<globalclientconfig version="1.0.9" >
  <body>
    <classroom name="EAITY" >
      <client hostname="client01.local" mac="00:10:" type="0" id="11" name="client01" />
      <client hostname="client02.local" mac="00:10:" type="0" id="4" name="client02" />
      <client hostname="client03.local" mac="00:10:" type="0" id="8" name="client03" />
      <client hostname="client04.local" mac="00:0c:" type="0" id="2" name="client04" />
      <client hostname="client05.local" mac="00:10:" type="0" id="1" name="client05" />
      <client hostname="client06.local" mac="00:10:" type="0" id="9" name="client06" />
      <client hostname="client07.local" mac="00:10:" type="0" id="6" name="client07" />
      <client hostname="client08.local" mac="00:10:" type="0" id="3" name="client08" />
      <client hostname="client09.local" mac="00:10:" type="0" id="5" name="client09" />
      <client hostname="client10.local" mac="00:10:" type="0" id="10" name="client10" />
      <client hostname="client11.local" mac="00:10:" type="0" id="7" name="client11" />
      <client hostname="client12.local" mac="00:10:" type="0" id="861460" name="client12" />
    </classroom>
  </body>
</globalclientconfig>


εννοείται ότι έχω σβήσει τις πραγματικές διευθύνσεις IP και MAC.
Ενάντια στην ηλιθιότητα, ακόμα και οι θεοί, μάταια αγωνίζονται.
Friedrich Schiller

Δημήτρης Δαλαγιώργος

Πώς μπορώ να κάνω restart το iTalc σε κάποιο μηχάνημα; Τώρα που απενεργοποιήθηκε το autodetection στη λίστα εμφανίζεται ο υπολογιστής, αλλά μερικές φορές δεν επικοινωνούν με τον master στην ίδια πόρτα με αποτέλεσμα να πρέπει να κάνω επανεκκίνηση στον υπολογιστή των παιδιών προκειμένου να ξαναξεκινήσει το iTalc και να μπορέσω να τον δω συνδεδεμένο στη λίστα. Άλλες φορές, βλέπει τον υπολογιστή, αλλά επιμένει ότι δεν έχει συνδεθεί κανένας χρήστης.
Ενάντια στην ηλιθιότητα, ακόμα και οι θεοί, μάταια αγωνίζονται.
Friedrich Schiller

alkisg

Ανέβασα μια νέα έκδοση του iTalc στο αποθετήριο ελέγχου ενημερώσεων ΣΕΠΕΗΥ.

Δημήτρη είσαι αρκετά έμπειρος, βάλ' το στις πηγές σου και δοκίμασε με αυτό. Έχω λύσει τα παρακάτω προβλήματα:
  * When re-running ica-launcher, kill all ica processes from that user.
  * First kill the ica processes, and then search for free ports.
  * Don't consider ports in TIME_WAIT state as used.
  * Don't assume that isvport=isdport+100. This made italc-launcher
    put localhost in the autodetected computers in some cases.


Λογικά μετά από αυτά οι clients θα χρησιμοποιούν πάντα την ίδια πόρτα. Και εκείνο το bug που σου έδειχνε τον server σαν client, πρέπει να είναι εντάξει ακόμα κι αν σβήσεις το PUBLISH_CLIENT=False από το /etc/italc/italc.conf.

Εφόσον δεις ότι σου διορθώνει κάποια προβλήματα και δεν δημιουργεί κανένα νέο, δίνεις το OK και το περνάμε στο κανονικό αποθετήριο ώστε να το λάβουν όλα τα ΣΕΠΕΗΥ...

Δημήτρης Δαλαγιώργος

Μόλις την εγκατέστησα. Έσβησα και τη γραμμή PUBLISH_CLIENT=False απ' το  /etc/italc/italc.conf. Αύριο θα το δοκιμάσω σε πραγματικές συνθήκες.

Πρώτες εντυπώσεις: Επιτέλους αυτόματη τακτοποίηση και ταξινόμηση των παραθύρων! Επιτέλους! Εξακολουθεί πάντως να μη σβήνει τους υπολογιστές όταν πατάω το αντίστοιχο κουμπάκι.
Ενάντια στην ηλιθιότητα, ακόμα και οι θεοί, μάταια αγωνίζονται.
Friedrich Schiller

Δημήτρης Δαλαγιώργος

#41
Παράθεση από: Δημήτρης Δαλαγιώργος στις 12 Νοε 2009, 04:08:54 ΜΜ
Πρώτες εντυπώσεις: Επιτέλους αυτόματη τακτοποίηση και ταξινόμηση των παραθύρων! Επιτέλους! Εξακολουθεί πάντως να μη σβήνει τους υπολογιστές όταν πατάω το αντίστοιχο κουμπάκι.

Πολύ περίεργο: Άλλη toolbar έχει το iTalc όταν είμαι στον server και άλλη έχει όταν συνδέομαι μέσω NX. Βάζω screenshot απ' τον server και θα βάλω το απόγευμα screenshot απ' το σπίτι. Δεν πιστεύω όμως, ότι έχει να κάνει με την προτεινόμενη αναβάθμιση. Κάτι άλλο παίζει.
Ενάντια στην ηλιθιότητα, ακόμα και οι θεοί, μάταια αγωνίζονται.
Friedrich Schiller

alkisg

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

Για το nx και τη γραμμή εργαλείων μη δίνεις σημασία, απλά ο x-server που προσφέρει δεν είναι "πλήρης" κι έτσι π.χ. κόβονται εφέ, αλλάζει λίγο η εμφάνιση κτλ. Μικρό το κακό για την ταχύτητα που προσφέρει. :)

Δημήτρης Δαλαγιώργος

1) Το update πρέπει να γίνει μόνο στον server ή και στους clients;

2) Πώς κάνω restart το iTalc σε έναν client από τον server; Επειδή μερικές φορές ενώ ο υπολογιστής είναι ανοιχτός και κάποιος χρήστης συνδεδεμένος, ο master δεν τον βλέπει.
Ενάντια στην ηλιθιότητα, ακόμα και οι θεοί, μάταια αγωνίζονται.
Friedrich Schiller

alkisg

Χρειάζεται update και στους clients.

Το restart του iTalc, όπως και γενικότερα η εκτέλεση εντολών στο GUI περιβάλλον των χρηστών, είναι λίγο δύσκολη, επειδή το ~/.Xauthority των χρηστών δεν σου επιτρέπει την πρόσβαση. Γίνεται μεν να προσθέσεις π.χ. τον teacher στο .Xauthority των χρηστών ώστε να έχεις πρόσβαση (αυτό κάνει το gst-broadcast script που έχω ανεβάσει σε άλλο θέμα), αλλά είναι πιο βολικό να υπάρχει κάποιο ειδικό πρόγραμμα γι' αυτή τη δουλειά, όπως το ica του iTalc, το οποίο τρέχει εντός της συνεδρίας των χρηστών, ακούει για εντολές του καθηγητή, και τις εκτελεί εντός της συνεδρίας (άρα δεν επηρεάζεται από το .Xauthority).

Δηλαδή ο καλύτερος τρόπος να εκτελείς εντολές στο γραφικό περιβάλλον των χρηστών είναι μέσα από το iTalc.

Πιστεύω ότι το update θα λύσει το πρόβλημα... αν δεν το λύσει ξαναπές μου, να αναρτήσω ένα script για απομακρυσμένη εκτέλεση γραφικών εντολών.