Showing posts with label tuts. Show all posts
Showing posts with label tuts. Show all posts

Wednesday, July 24, 2019

OpenQA create custom image to use for validation tests

OpenQA has a job that is used to create images with the system under test (aka SUT). You can find this job in openqa.opensuse.org following the Job Groups >openSUSE Tumbleweed>Buildxxxxxx and search for create_hdd_gnome.

create_hdd_gnome creates an qcow2 image which is used to run other validations and verification under this. Usually you will find it as dependency before other test jobs. You can see those other jobs if you open the create_hdd_gnome and open the Dependencies tab. Then visiting any of the jobs in the left, you will see that the first module is the boot_to_desktop.

This help us to create one common image for many cases. this saves us time from run a full installation before any test of interest. As the #dependencies tab indicates, the job dependencies are created with the START_AFTER_TEST property. Thus in every job's settings you will find START_AFTER_TEST=create_hdd_gnome. you also you should see the HDD_1 which should have the qcow2 image created by the create_hdd_gnome.

Other jobs as the lvm+RAID1 though, they do not have such dependency. Consider that you want to run fast a custom test against lvm+RAID1. You have to run the full installation first before reach the point to test something else. This is what we will try to address with this howto.

The lvm+RAID1 job configures a system with 4 disks. We can check exactly what it does in the autoinst-log.txt. A sample is shown as the screenshot below

[2019-07-15T23:20:56.012 CEST] [debug] running /usr/bin/qemu-img create -f qcow2 /var/lib/openqa/pool/9/raid/hd0 20G
[2019-07-15T23:20:56.131 CEST] [debug] Formatting '/var/lib/openqa/pool/9/raid/hd0', fmt=qcow2 size=21474836480 cluster_size=65536 lazy_refcounts=off refcount_bits=16
[2019-07-15T23:20:56.132 CEST] [debug] running /usr/bin/qemu-img create -f qcow2 /var/lib/openqa/pool/9/raid/hd1 20G
[2019-07-15T23:20:56.338 CEST] [debug] Formatting '/var/lib/openqa/pool/9/raid/hd1', fmt=qcow2 size=21474836480 cluster_size=65536 lazy_refcounts=off refcount_bits=16
[2019-07-15T23:20:56.338 CEST] [debug] running /usr/bin/qemu-img create -f qcow2 /var/lib/openqa/pool/9/raid/hd2 20G
[2019-07-15T23:20:56.403 CEST] [debug] Formatting '/var/lib/openqa/pool/9/raid/hd2', fmt=qcow2 size=21474836480 cluster_size=65536 lazy_refcounts=off refcount_bits=16
[2019-07-15T23:20:56.403 CEST] [debug] running /usr/bin/qemu-img create -f qcow2 /var/lib/openqa/pool/9/raid/hd3 20G
[2019-07-15T23:20:56.507 CEST] [debug] Formatting '/var/lib/openqa/pool/9/raid/hd3', fmt=qcow2 size=21474836480 cluster_size=65536 lazy_refcounts=off refcount_bits=16

Then it runs the image passing those four disks.

 [2019-07-15T23:20:56.651 CEST] [debug] starting: /usr/bin/qemu-system-x86_64 -only-migratable -chardev ringbuf,id=serial0,logfile=serial0,logappend=on -serial chardev:serial0 -soundhw ac97 -global isa-fdc.driveA= -m 1536 -cpu qemu64 -netdev user,id=qanet0 -device virtio-net,netdev=qanet0,mac=52:54:00:12:34:56 -boot once=d,menu=on,splash-time=5000 -device usb-ehci -device usb-tablet -smp 1 -enable-kvm -no-shutdown -vnc :99,share=force-shared -device virtio-serial -chardev socket,path=virtio_console,server,nowait,id=virtio_console,logfile=virtio_console.log,logappend=on -device virtconsole,chardev=virtio_console,name=org.openqa.console.virtio_console -chardev socket,path=qmp_socket,server,nowait,id=qmp_socket,logfile=qmp_socket.log,logappend=on -qmp chardev:qmp_socket -S -device virtio-scsi-pci,id=scsi0 -blockdev driver=file,node-name=hd0-file,filename=/var/lib/openqa/pool/9/raid/hd0,cache.no-flush=on -blockdev driver=qcow2,node-name=hd0,file=hd0-file,cache.no-flush=on -device virtio-blk,id=hd0-device,drive=hd0,serial=hd0 -blockdev driver=file,node-name=hd1-file,filename=/var/lib/openqa/pool/9/raid/hd1,cache.no-flush=on -blockdev driver=qcow2,node-name=hd1,file=hd1-file,cache.no-flush=on -device virtio-blk,id=hd1-device,drive=hd1,serial=hd1 -blockdev driver=file,node-name=hd2-file,filename=/var/lib/openqa/pool/9/raid/hd2,cache.no-flush=on -blockdev driver=qcow2,node-name=hd2,file=hd2-file,cache.no-flush=on -device virtio-blk,id=hd2-device,drive=hd2,serial=hd2 -blockdev driver=file,node-name=hd3-file,filename=/var/lib/openqa/pool/9/raid/hd3,cache.no-flush=on -blockdev driver=qcow2,node-name=hd3,file=hd3-file,cache.no-flush=on -device virtio-blk,id=hd3-device,drive=hd3,serial=hd3 -blockdev driver=file,node-name=cd0-overlay0-file,filename=/var/lib/openqa/pool/9/raid/cd0-overlay0,cache.no-flush=on -blockdev driver=qcow2,node-name=cd0-overlay0,file=cd0-overlay0-file,cache.no-flush=on -device scsi-cd,id=cd0-device,drive=cd0-overlay0,serial=cd0

All this means that we have to create four images representing the disks and make them available to the openQA to use them. To achieve that we take a look in what the create_hdd_gnome does. And what it does is to simulate an installation and publish the image using the PUBLISH_HDD_1. The PUBLISH_HDD_1 takes the name of the published qcow2 which after the job is done you can see and verify under /var/lib/openqa/factory/hdd of your local openQA. But because we need a system with lvm and RAID1 we can use the lvm+RAID1 job which does exactly this for us and ask from it to publish the image as create_hdd_gnome does, using the PUBLISH_HDD_x four times for each disk that the job has created. We can accomplish this with the clone-job that openQA provides

Now if we check the /var/lib/openqa/factory/hdd we should be able to see our disks.
Next step is to find a job to clone that we can boot with those disks. For the scheduling we will pass also the YAML_SCHEDULE which will contain the yaml file with the scheduling that we want. Ofcourse now, the first module should be boot_to_desktop which will boot the first disk that it will find with the HDD_1 and next is just a validation script, which can be whatever you want. This will look like the following:

Create and save this under the /var/lib/openqa/share/tests/os-autoinst-distri-opensuse/schedule and then run

Go to you openQA and see that the job is running.  

Saturday, July 18, 2015

Adding filters for contact groups in gmail

May you have face the problem to create a filter for a group of your contacts. Google for some reason doesnt provide such a feature. Here what we can do to override this small problem.

create a mail and add the mail addresses of your group. Then copy the line from the 'to' field and paste it into the textfield of this link. Finally press the 'convert' button and take the output. With that last output we can create a new filter and apply our preferences to the filter. Just paste it to the 'Has the words' field. I think all the others that you have to do is obvious.

Of course you could write the condition by hand but for those that is not familiar with OR and AND operators is a bit more convenient.

Tuesday, May 05, 2015

Android and full backup notes


these are the steps for a full backup Android phones on Linux.

  1. Download the SDK
  2. install and configure the SDK
  3. Enable debugging mode on the phone and connect it to the computer
  4. Create the backup

  1. Download the SDK
Not much to say here. From the download site under SDK tools only(if you are not interested in downloading the Android Studio as well) select android-sdk_{version}-linux.tgz and unzip with
tar -xvzf android-sdk_<ver>-linux.tgz
You need to have installed java.
  1. install and configure the SDK
 It is recommended to locate it under your home directory. if so, next
cd ~/android-sdk-linux/tools
./android
and install all the updates.

Optional but probably you will need that as well for efficiency. Open .bashrc or  .bash_profile and add:

export PATH=~/android-sdk-linux/tools:~/android-sdk-linux/platform-tools:$PATH
export PATH=~/android-sdk-linux/build-tools:$PATH
export LD_LIBRARY_PATH=~/android-sdk-linux/tools/lib:$LD_LIBRARY_PATH
Now you are able to run adb command from everywhere.
  1. Enable debugging mode on the phone and connect it to the computer 
On the phone now,

Settings>developer options>enable usb debugging.
  1. Create the backup
the last step requires from you to create a folder where the backup will be stored and run

adb backup -apk -shared -all -f ~/Backups/fullbackup-20130722.ab

obviously replace "~/Backups/fullbackup-20130722.ab" with you own folder and give any name on your file that you like.

To restore the backup
adb restore ~/Backups/fullbackup-20130722.ab

That is it. If you need read some extra notes look at http://www.all-things-android.com/content/android-device-backups which was also the resource of this article.

Friday, May 16, 2014

αφαιρεση στοιχειων μιας λιστας με Python

Ενα απλο προβλημα που θα μπορουσαμε να εχουμε ειναι να διαγραψουμε καποια συγκεκριμενα στοιχεια μιας λιστας. Αν πουμε οτι αυτη η λιστα περιεχει τα στοιχεια [1,2,3,2,1]. Η πιο απλη περιπτωση ειναι να μας ζητηθει να διαγραψουμε ενα συγκεκριμενο στοιχειο. Ας πουμε το '2'.

mylist.remove(2)

αυτο θα διαγραψει το πρωτο στοιχειο που θα βρει και να γυρισει

>>[1,3,2,1]

Στην περιπτωση που θελαμε να διαγραψουμε και τα δυο δυαρια στη λιστα?

for item in mylist:
....mylist.remove(2)

Αυτο θα γυρναγε λαθος, παρολο που θα γινοταν αυτο που θελαμε, επειδη θα εφτανε στο σημειο να διαγραψει ενα στοιχειο το οποιο δεν θα υπαρχει στη λιστα.

Μια καλη 'φορμουλα' για αυτο θα ηταν:

[mylist.remove(x) for x in n if x==2]


Τι γινεται αν θελουμε να διαγραψουμε ομως τα μοναδικα στοιχεια της λιστας?
Δηλ στην περιπτωση της mylist εχουμε [1,2,3,2,1]. Το μοναδικο στοιχειο εδω ειναι το '3'. Ουσιαστικα πρεπει για καθε ενα στοιχειο στη λιστα να βρουμε αν υπαρχει αλλο παρομοιο απο το επομενο στοιχειο μεχρι το τελος της λιστας. Αν δεν υπαρχει να το διαγραψουμε.

for y in mylist:
....pos=mylist.index(y)
....if y not in mylist[pos+1:]:
........mylist.pop(pos)

Αυτο φαινεται να δουλευει μια χαρα για τη λιστα που εχουμε. Αν την τροποποιησουμε ομως λιγο το αποτελεσμα θα μας ξαφνιασει πιθανον. Δοκιμαστε να αλλαξετε σειρα, να προσθεσετε ή να αφαιρεσετε. !!!!!!

Η ερωτηση ειναι σε πιο position παει οταν διαγραφει ενα απο την αρχικη λιστα??

mylist=[1,2,3,4,5]

και τρεχουμε τον παραπανω κωδικα...
>>[2,4]

Το επομενο value που θα περνει το pos θα ειναι δηλ ενα μετα απο καθε διαγραφη, αφου το indexing θα εχει αλλαξει.

Οποτε ισως καταληξουμε σε κατι σαν

nlist=[]
    for y in mylist:
        pos=mylist.index(y)
        if y not in mylist[pos+1:]:
            nlist.append(y)
           
    for ind in nlist:
        mylist.remove(ind)

OK! Αυτο πρεπει να δουλευει... Αλλα σιγουρα δεν ειναι το πιο αποδοτικο. Κατι που παιρνω απο το Veky και μαρεσε πολυ ειναι η χρηση της μεθοδου Counter.

from collections import Counter
    nonunique = Counter(data) - Counter(set(data))
    return [x for x in data if x in nonunique]
 
Τοσο απλο. Η Counter γυρναει ενα dictionary με τη συχνοτητα καθε στοιχειου στο value. Εδω αφαιρει τα values και αυτο του δινει τα μη-μοναδικα στοιχεια. Μετα ολα ειναι απλα. 
 
 

Sunday, May 11, 2014

Τα πρωτα βήματα για μία παρουσιαση

Το να κανεις μια παρουσιαση φαινομενικα φαινεται ευκολο. Πριν λίγες μέρες εδωσα την πρωτη μου "σοβαρη" παρουσιαση. Ευκολο? δεν θα το ελεγα. Γιαυτο ειπα να γραψω την προσωπικη μου εμπειρια πανω στο θεμα. Αργα ή γρηγορα για ολους ερχεται η πρωτη φορα. Και παρολο που μια παρουσιαση θελει ενα ικανο ομιλητη, πιστευω οτι υπαρχουν μερικα πραγματα που μπορει ο οποιοσδηποτε να κανει για να αποφυγει τουλαχιστον τα χειροτερα.

Πρωτο απολα ειναι φυσικα η προετοιμασια. Γνωρισε οσο πιο καλα ξερεις το θεμα. Προετοιμασου για ερωτησεις που μπορουν να προκειψουν. Μπορεις να βαλεις τον εαυτο σου στη θεση του ακροατη και να κανεις ερωτησεις μονος σου. Σκεψου τη σειρα που θα ξεδιπλωσεις το θεμα, ετσι που να γινει ενδιαφερον αλλα ταυτοχρονα να μπορει ο ακροατης να καταλαβει. Αν το θεμα ειναι αρκετα εξειδικευμενο ή οχι τοσο ενδιαφερον απο μονο του, ισως ειναι καλο να κανεις συχνες παυσεις και να ρωτας για αποριες, ωστε να εισαι σιγουρος οτι οσα εχεις πει ειναι ξεκαθαρα ή για να "ξυπνησεις" το ακροατηριο. 

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

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 οριζουμε ενα αλλο δικτυο.

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

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.

Saturday, December 22, 2012

Shared Bash Scripts #1 - Http Method Identifination


 Σε συνεχεια των Shared Bash Scripts εκλεψα και θα παρουσιασω ενα μικρο script που η εκτέλεση του σας παρουσιαζει ποιες μεθόδους ειναι ανοιχτές σε ένα site.

Για το σκοπο αυτο δηλωνουμε μια λιστα και εκει θα δωσουμε οποια μεθοδο θελουμε να τεσταρουμε. Με ενα loop μεσα στη λιστα θα καλεσουμε τη μεθοδο σε ενα τυπικο HTTP request που περνει τη μια και μοναδικη παραμετρο που απαιτειται, το url του στοχου και θα το περασουμε απο το netcat, που θα ακουει τη port 80. Η μονη προυποθεση οπότε είναι να εχουμε εγκατεστημένο το nc. Οπως καταλαβαινετε θα μπορουσαμε να ρυθμισουμε ειτε hard-code έιτε με παραμέτρους για να τσεκάραμε αλλες πορτες.

Αυτό ήταν! Πιο απλό δε γίνεται!
#!/bin/bash
for webservmethod in GET POST PUT TRACE CONNECT OPTIONS PROPFIND;
do

printf "$webservmethod " ;
printf "$webservmethod / HTTP/1.1\nHost: $1\n\n" | nc -q 1 $1 80 | grep "HTTP/1.1"
done

Friday, December 09, 2011

ZTE Blade + Cyanogeb7

Επιτέλους καινούργιο κινητό και πιο συγκεκριμένα ένα ZTE Blade με android 2.2 Froyo. Η επιλογή πολύ συνειδητη. Πολύ γενικά, ότι καλύτερο στην τιμή του (144€ απο το site). Χαρακτηριστικά και άλλα μπορείτε να δείτε εδώ και για ενα review εδώ.

Γενικα

Τις πρώτες μέρες το κράτησα όπως ήταν για να το γνωρίσω. Το κινητάκι έρχεται με external μνήμη των 2GB microSD αλλά μπορεί να επεκτήνεις ως 32GB. Το πρώτο που προσωπικά με ενoχλούσε ήταν οτι εσωτερικά δίνει 150-160 MB storage. Το ΖΤΕ όμως μπορεί να έχει 256 ή περισσότερη μνήμη, η οποία είναι κλειδωμένη. Η RAM είναι 512 ΜΒ και η CPU είναι ARMv6.

Πρώτες Εντυπώσεις

Ο περιορισμός της μνήμης δεν μας αφήνει να εγκαταστήσουμε μεγάλο αριθμό εφαρμογών, καταρχήν. Κατ' εξορισμού, το λειτουργικό εγκαθηστά τις εφαρμογες απο το Market στο δίσκο του κινητου, γιατι θεωρεί οτι ετσι θα είναι πιο γρήγορη η απόδοση του κινητού, οπότε γρήγορα συνηδειτοποιούμε οτι δεν εχουμε αρκετο. Αυτο λύνετε ευκολα με την εγκατάσταση App2sd απο το Market. Παρόλα αυτά δεν είναι όλες οι εφαρμογές διαθέσιμες για μεταφορα στην sd καρτα. Τα 2GB της  sd παλι λιγα μου φαίνονται γιαυτό θα συνηστούσα επέκταση. Το μόνο περιοριστικό που βρήκα μέχρι τώρα με τον ARMv6 είναι οτι δεν είναι δυνατή η εκατάσταση του firefox. Διατίθεται για ARMv7, αν και δεν αποκλείεται να διατεθεί στο μέλλον και για v6. Anyway αυτές ήταν οι πρώτες μικρές παρατηρήσεις που είχα να κάνω.

Πλεονεκτήματα Unlocked Rom

Συντομα κατάλαβα οτι ήθελα να κάνω unlocked  το ZTE και να επωφεληθω απο τα πλεονεκτήματα τα οποία είναι:
  • Να  βγάλεις ανεπυθήμητα προγράμματα απο τον παροχο
  • Να λαμβανω συντομότερα τα updates (οι παροχοι απλα καμια φορα καθυστερούν)
  • Καλύτερη απόδοση
  • Root access
  • Αλλάζοντας το partition layout σε κάτι πιο προαιρετικό σου παίρνεις περισσότερο χώρο στο data partition για τις εφαρμογές
  • fastboot mode. Fastboot (χρησιμο δε περίπτωση που κανεις καποιο λαθος και δεν bootarei το κινητο)
  • δυνατότητα TPT images.
  • Unlock RAM (512MB αντι για 256 που δείχνει στα ευρωπαικα)
  • Downgrade to Gen1. (Optional, and not useful for most people) Upgrade to Gen3. (Also not useful for most people since most ROMs require Gen2)
Σημείωση οτι σου δίνει τη δυνατότητα να γυρίσεις στις αρχικές ρυθμίσεις αν ακολουθήσεις αυτές τισ οδηγιες σε αυτο το thread.

Προσέχουμε 

Εννοείτε πως υπάρχουν και αρνητικα(root,stabibility,security), αλλα σκεφτομαστε θετικα και συνεχίζουμε. Αν διαλέξετε όπως δίαλεξα εγω cyanogen7 για το κινητό σας, τα ρίσκα μειώνονται. είναι αρκετά stable και δοκιμασμένα, οπότε... Αφού επισκεφτείτε τη σελίδα του παταμε το Get Cyanogen7 και μας πάει σε μια σελίδα να διαλέξουμε το κινητό μας. Στη συγκεκριμένη περίπτωση ZTE Blade και φτάνουμε στη σελιδα που μπορουμε να κατεβάσουμε τη stable εκδοση, τη Experimental ή τη Nightly. Στο site γενικά υπάρχουν πολλές πληροφορίες και υποστήριξη.


Η διαδικασία είναι σχετικά απλή:

Κατεβάζείς μια εφαρμογη που θα σου δώσει δικαιώματα root και έγκαθιστάς ένα Rom Manager απο το Market που θα του δώσεις root access. Με τον ROM Manager θα εγκαταστήσεις το ROM image που έχεις κατεβάσει και έχεις μεταφέρει στο κινητο. Η εγκατάσταση ξεκινάει αφου κανουμε restart και μπούμε σε recovery mode ή με την επιλογή Install ROM from SD Card που βρίσκουμε στο UI της εφαρμογής. Διαλεγουμε το Image και ξεκινάμε. Καλό είναι να έχουμε φορτισμένη τη μπαταρία (τουλάχιστον 70%) για να μη διακοπεί η διαδικασία. 

Τι χρειαζόμαστε?

File Manager
Z4root
ROM Manager
CyanogenMod 7
gapps-gb-xxxxxxxxx-signed.zip

Για την μεταφορα των αρχείων δεν νομίζω οτι χρειαζεται, αλλα θα πρέπει να ενεργοποιήσετε το USB Debbuging. Τα προγραμματα για τη διαδικασία root αλλα και την remote επικοινωνία χρεισιμοποιούν ένα πρόγραμμα, το adb το οποίο πρφανώς απαιτεί την ενεργοποίηση(δεν το δοκίμασα με το usb debbuging disable). Αυτο λοιπόν δημιουργεί ενα connection client-server μεταξυ του υπολογιστη και του android.

Get Root

Για root access Υπάρχουν τρεις βασικές εφαρμογές που μπορείς να χρεισιμοποιήσεις. Μπορώ να πω οτι τις δοκίμασα και τις τρείς. Εξαρτάται και απο το τηλέφωνο. Αν και καποια site έχουν οδηγούς έμένα αυτή που δουλεξε ήταν μια custom Z4root με υποστηριξη για permanent root access.
Δεν χρειάζεται τιποτα άλλο εκτός απο ένα File Manager για την εγκατάσταση. Αφου την κατεβάσετε, την βαζετε στην sd και μεσα απο τον File Manager την κάνετε εγκατάσταση. Θα γίνει επανακίνηση και οταν μπεις  στον drawer θα βρείς εγκατεστημένη μια αλλη εφαρμογή που θα λέει superuser. Αν εγκαταστήσεις τώρα τον ROM Manager θα σου ζητησεις να δώσει πλήρη δικαιώματα στην εγαρμογη. εννοείτε οτι τα δινουμε.
Για τις άλλες διαδικασίες δεν θα αναφέρω τιποτα, αφου δεν λειτουργησαν οπως πρεπει για μένα, αλλα υπάρχουν πολλά guide σε διαδίκτυο και youtube. Η διαδικασία είναι απλή σε κάθε περίπτωση αν και δεν ξέρω γιατί σε μενα δεν δούλεψε. Ακόμα και το z4root οπως το κατεβασα η πρωτη αποπειρα ήταν σχετικα αποτυχιμένη, αν και μου εγκατέστησε το superuser οπως θα επρεπε να κάνει.Την έκδοση που χρησιμοποίησα θα την βρείτε εδώ.

ROM Manager

Ο ROM Manager χρησιμοποεί το Clockworkmod για recovery.

Cyanogen7

 Για όλα τα καλούδια του firmware ριχτε μια ματιά στο wiki.

Install Google Market

Μετά την εγκατάσταση και την επανακίνηση μπαίνουμε στο καινουργιο συστημα. Αυτο που λειπει και λογικα θα θέλαμε είναι το google market. Πρέπει να κατεβάσουμε και να εγκαταστήσουμε το πακέτο παρόμοια με το custom Rom. Το πακέτο το βρίσκουμε εδώ και αφου το περάσουμε στο sd κάνουμε reboot σε recovery mode again. Το πακέτο είναι ένα zip αρχείο που βρισκουμε εδώ. Απο το recovery mode επιλέγουμε choose zip from sdcard, το επιλέγουμε απο το φακελο της sd και επιβεβαιώνουμε με την επιλογη Yes- install gapps-gb-xxxxxxxxx-signed.zip. That's it. Reboot και το μονο που μενει είναι να βαλουμε τα στοιχεία του λογαριασμου και επιλέξουμε τις υπηρεσιες. Μολις τελειώσουμε στο app drawer θα βρουμε και το market για να εγκαταστήσουμε οτι θέλουμε.

Προβλήματα

Το προβλημα που αντιμετώπισα ήταν οτι δεν μπορούσα να εχω root access με οποιο tutorial και αν διαβασα ένω ταυτόχρονα μου έλεγε οτι είμουν ήδη root. Αυτό δεν με άφηνε να τρέξω σωστά και να εγκαταστήσω το clockwork και ROM. Καθε φορα που προσπαθούσα εμφανιζόταν ένα μύνημα "An error occurred while attempting to run privileged commands“. Με είχε τρελάνει αυτό. Δεν μπορούσα να καταλάβω πως και γιατι.

Επίσης στη διαδικασία του reboot για να μπείς σε recovery mode η οθόνη σταματούσε σε ενα λευκο πλαισιο με την ετικετα FTM. Τι διαολο ήταν αυτο. Θα πω οτι κατλαβα εν' συντομια. Απο τη στιγμη που δεν ειχα root access o fastboot (ο bootloader) δεν μπορουσε να εγκατασταθει στο bootloader του παρόχου. Το FTM ουσιαστικα σήμαινε οτι δεν έχεις εγκαταστησει bootloader ή δεν έχεις δικαιώματα.

Usefull Links

http://android.modaco.com/topic/339048-guide-flashing-firmware-to-bladelibra-via-windows/
http://www.youtube.com/watch?v=DHgZNnHdrSA
http://forum.xda-developers.com/showthread.php?t=803682
http://lifehacker.com/5789397/the-always-up+to+date-guide-to-rooting-any-android-phone
http://www.youtube.com/watch?v=J1MD7GX7Pyw&feature=related
http://www.pcsteps.gr/tutorials/mobile-phones/937-odigos-zte-blade-meros-1-pos-na-ksekleidwsete-512-mb-mnimis
http://forum.xda-developers.com/showthread.php?t=1332569
http://www.androidauthority.com/rooting-for-dummies-a-beginners-guide-to-root-your-android-phone-or-tablet-10915/


Περιμένω feedback και διορθώσεις για ανακρίβιες ή whatever...

Monday, July 18, 2011

rpm packaging diary part1

Είπα και γω να κανω κατι χρήσιμο για την κοινότητα του fedora και εψαχνα μια ευκαιρια. Ενδιαφερόμουν για rpm packaging. Πριν απο αυτο βεβαια ξεκινησα σιγα σιγα να διαβαζω το guide στο site του fedoraproject. Ότι πρέπει για να ξεκινήσει ισως κάποιος. Το αρχικό μου ερώτημα ήταν ποιό πακέτο να κάνω packaging. Στα πρώτα κεφάλαια του guide δίνει λιστες με υπάρχων πακέτα για τη διανομή. Εκεί θα πρέπει ουσιαστικά να ελέγξεις οταν φτιαξεις το δικό σου για να μην κανει supply ενα ήδη πακεταρισμο προγραμμα. Δεν είχα τιποτα λοιπόν στο μυαλό μου που να μπορούσα να κανω package.

Γενική συμβουλη είναι κάνε κατι με το οποίο ήδη χρησιμοποιείς και δεν βρίσκεις στα repos. Εμένα αυτό που μου άνοιξε την πόρτα για να κάνω την πρωτη μου απόπειρα ήταν ένα bug στο gtranslator (bug 716320). To bug λοιπον διορθονώταν λοιπόν ή τουλάχιστον ετσι δείχνει με την εγκατάσταση δυο επιπλέον πακέτων. Αυτό ηταν. Λέω γιατί να μην φτιάξω το πακέτο ξανά με τα συγκεκριμένα dependencies.

Ακολουθώντας τις οδηγίες απο το guide που αναφεραμε παραπανω κατέβασα το gtranslator-1.9.11-3.f14.src.rpm. Δεν σκοπεύω να μπω σε πολλες λεπτομέρειες αφού αρχικος σκοπός για αυτό το αρθρό ήταν να δώσει μια εμπνευση για αρχάριους που δεν ξέρουν που να βρουν πακέτα να δοκιμάσουν.
Γι' αυτο παρακάτω ειναι οι εντολες χωρις επεξηγηση που ακολούθησαν:

Σαν απλος user
rpm -ivh gtranslator-1.9.11-3.f14.src.rpm


Κατώπιν ανοιξα το αρχείο SPECS/gtranslator.spec για επεξεργασία

και

και build
rpm -v -bb SPECS/gtranslator.spec


Αυτο θα δημιουργήσει ενα binary RPM το οποίο μπορόυμε τωρα να εγκαταστήσουμε είτε με rpm -i ειτε με το yum localinstall.
Επίσης θα πρέπει να βρείτε κατω απο το φάκελο RPMS ενα i386 φακελο που θα περιέχει επίσης το καινούργιο rpm.

Σε περίπτωση σφαλμάτων το rpm δεν δημιουργείται και πάμε πάλι πίσω στο spec αρχειο. Μια πιθανότητα είναι να μην υπάρχουν εγκατεστημένα τα dependencies στο συστημα κατι που θα εμφανιστεί στο output της τελευταίας εντολης.

Καλή αρχή, newbies...

Tuesday, August 10, 2010

cleanKernel Script Doc

Στο netbook, ενα ASUS eeepc, εχω εγκαταστησει Ubuntu. Μετα απο καιρο, και καμποσα update οταν ξεκιναει εμφανιζονται αρκετα image πυρηνων που αφενος δεν χρησιμοποιω πια. Ετσι εφτιαξα ενα script για τη διαγραφη τους. Το script ολοκληρο μπορειτε να το κατεβασετε και να το δοκιμασετε απο το link που δινω πιο πανω. Για μενα ομως ηταν μια εξερευνηση στο κοσμο των script και θα παρουσιασω τις δυνατοτητες και τα εργαλεια που χρησιμοποιήθηκαν σαν οδηγο για αρχαριους για να δημιουργησουν δικα τους script. Αν και μικρο το προγραμμα χρησιμοποιει καποια πολυ δυνατα και χρησιμα εργαλεια οπως το awk στην πιο απλη μορφη του.

check it out!!!

Απο δω ξεκιναει καθε script, καλωντας το προγραμμα που θα το εκτελεσει. Οταν τρεχεις το προγραμμα αυτο τρεχει σε ενα καινουργιο bash.

#!/bin/bash


Με το συμβολο # δημιουργουμε σχολια.

#clean system and grub from old kernels that have been installed.
#the current script remove every kernel in your system and update the menu.lst
#



Η echo εμφανιζει το string στην κονσολα

echo "#############################"
echo " cleanKernels.sh "
echo "_-_-_-_-_-_-_-_-_-_-_-_-_-_-_"




Η εντολη ελεγχου if ελεγχει μια συνθηκη. Αυτη συντασετε :

if [ condition]; then
commands
fi

Η επιλογη -d ελεγχει αν το string ειναι directory και αν υπαρχει. Αν η συνθηκη ειναι αληθης θα δημιουργησει ενα φακελο log.

if [ ! -d "/home/j0ni/Documents/Scripts/Admin/logs" ] ;then

mkdir ~/Documents/Scripts/Admin/logs

fi

Αυτο που θελουμε ειναι να βρουμε ποιοι πυρηνες ειναι εγκατεστημενοι, να τους αποθηκευσουμε σε ενα αρχειο μεσα στο log directory, περνωντας ομως μονο τη στηλη που εμφανιζει την εκδοση. Καταρχην η dpkg-query -l θα δωσει μια λιστα με οτι βρει στη database της. Με διασωληνωση θα εξαιρεσουμε την τρεχουσα εκδοση, την οποια τρεχουμε. Η grep με την επιλογη -v κανει ακριβως αυτο. Η dpkg-query επιστρεφει μια λιστα πληροφοριων σε 3 στηλες (name,version,description). Για να απομονωσουμε μονο τη στηλη version oλα τα αποτελεσματα θα τα περασουμε απο το awk το οποιο θα μας επιστρεψει μονο τη δευτερη στηλη. Τελος τα αποτελεσματα θα αποθηκευτουν στο αρχειο με το ονομα που εχουμε ορισει με τη χρηση του '>' . Αυτο καθε φορα θα μας δειχνει τα αποτελεσματα της τελευταιας εκτελεσης( θα διαγραφει τα προηγουμενα). Αυτο γινεται γιατι μεσω του αρχειου θα σβησουμε τους πυρηνες και δεν θα μας χρειαζεται περαιτερο.

sudo dpkg-query -l 'linux-image-?.?.*'|grep -v `uname -r`|awk '{print $2}'>/home/j0ni/Documents/Scripts/Admin/logs/kernel-logs.txt


Η εντολη read διαβαζει απο την κονσολα οτι εισαγετε.


echo -e "do you want to erase these kernels?(yes or no)"

read yesorno


η for ειναι ελεγχος επαναληψης. Για να δειτε τη συνταξη και παραδειγματα δειτε εδω. Η for για μια σειρα μεταβλητων που οριζονται μετα το in παιρνει την περναει στην i. Ενα συντομο παραδειγμα ειναι :

$ for i in 1,2,3,4,5; do echo $i; done
1,2,3,4,5 #auto einai to output

Οπως βλεπετε και απο τον κωδικα στη λιστα μπορει να δωθει ενα αρχειο. Εδω συγκεκριμενα δινουμε την εξοδο της cat. Με αυτο τον τροπο στο i περναει καθε γραμμη του αρχειου και επειτα εκτελειται η εντολη διαγραφης.


for a in `cat /home/j0ni/Documents/Scripts/Admin/logs/kernel-logs.txt`; do

sudo apt-get -y remove $a

done


Επιτυχης εξοδος


exit 0


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

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

Monday, November 09, 2009

YouTube5

Χρησιμοποιητε καποιο brower χωρις υποστηριξη flash. Ισως καποιο λειτουργικο που δεν εχετε καταφερει να κανετε τα flash αρχεια να παιζουν σωστα. Ακομα και απλα ειστε μπροστα σε ενα ξενο υπολογιστη και θελετε να δειτε ενα βιντεακι απο YouTube η λυση ππου προτεινετε ειναι :
YouTube5

Monday, June 30, 2008

Samba tuto

θελω να γραψω μερικα πραγματα για δικτιο με Samba.
Ο λογος ειναι γιατι οτι tutorial βρηκα στα αγγλικα κυριως με μπερδευε.

αυτο ειναι λοιπον ενα συντομο tutorial για samba connection.

Χρισιμα:
cifs ειναι το καινουργιο file system για να φορτωσουμε τα ntfs διαμερισματα



Οταν εχουμε ενα υπολογιστη με Windows και ενα με το αγαπημενο μας Linux, εχουμε να
κανουμε δυο συνδεσεις. Μια για να βλεπουμε τα Windows που ειναι και το ευκολο και μια για να βλεπουν τα Windows Linux.

Καταρχην βεβαιωνουμε οτι υπαρχει δικτιο και οι οτι οι υπολογιστες εποικινωνουν

_________________________________________________________________________
| |
| # ping //windows_ip |
|________________________________________________________________________|

Για να δουμε τον απομακρυσμενο υπολογιστη με τα Windows

Στα Windows ελεγχουμε τα εξης:
1.το ονομα του υπολογιστη στο δικτιο
2.το ονομα χρηστη και τον κωδικο(αν υπαρχει)
3.οτι υπαρχει κοινοχρηστο διαμερισμα


Στο Linux ανοιγουμε κονσολα και πληκτρολογουμε
___________________________________________________________________________________
| |
|$ mount -t cifs //onoma_pc_me_windows/share_disk/ -o user=username /mount_point |
|__________________________________________________________________________________|

Θα σου ζητησει password το δινεις και
τωρα αν πας στο καταλογο mount_point θα δεις τους φακελους και τα αρχεια του share_disk. εχεις μπει σαν username με τα δικαιωματα του.

Η πρωτη διαδικασια τελειωσε και μπορουμε να δουμε τον υπολογιστη με τα windows αλλα τα windows δεν βλεπουν τιποτα στα Linux.Οποτε

Για να δουμε Linux απο τα windows

παμε στο καταλογο /etc/samba και ανοιγουμε το αρχειο smb.conf

____________________________________________________________________
| | | $ cd /etc/samba |
| $ vi smb.conf |
|__________________________________________________________________|

Ολες οι ρυθμισεις που χρειαζομαστε γινονται σ'αυτο το αρχειο.
Που για μια απλη περιπτωση τα παρακατω ειναι αρκετα. Σημειωση, καλο ειναι
να αντιγραψουμε πρωτα το αρχικο αρχειο για να μας μεινει. Για καθε περιπτωση.

______________________________________________________________________
| |
| [global] |
| workgroup= |
| netbios name= |
|security=share /user |
|guest account= |
| |
| |
|[home] | | path= /to_path/gia_to_ share |
| browsable=yes |
| guest only = yes |
| writable =yes |
| read-only+no |
|_____________________________________________________________________|

Στο global ορισαμε το workgroup οπως ΝΕΤ ας πουμε, το netbios name το οποιο μπορει να ειναι οτι θελετε.Αυτο το ονομα θα εμφανιζεται στα windows. Στο guest account βαζουμε το ονομα ενος χρηστη του συστηματος. Μεσω αυτου και με τα δικαιωματα του θα μπαινει ο απομακρισμενος υπολογιστης.

Στο home πλεον του δηλωσαμε το κοινοχρηστο καταλογο ή φακελο. Και δωσαμε τις ιδιοτητες του. Δηλαδη να ειναι περιηγισιμο, να μπορουμε να γραψουμε σε αυτο, και δεν θα ειναι μονο για διαβασμα....


................................Synexeia... allh mera
ends

Μια καινουργια βδομαδα ξεκινάει και φαινεται να ειναι λίγο δραστήρια! Προσωπικα πρεπει να ετοιμαστω για ταξιδι, το οποιο περιλαμβανει οικογενειακες υποχρεωσεις αλλα και μια εμπειρία. Greek Coding Camp. Πραγματικα νιωθω μια ανυπομονυσια να βρεθω εκει, να γνωρισω τους αλλους, να κατασκηνωσω και να... ανοιξω τον υπολογιστη (τον οποιο ελπιζω να παρω αυριο στα χερια μου, αφου ο προηγουμενος τα επαιξε!!!).

Ειναι η πρωτη φορα που θα παραβρεθω σε κατι τετοιο και αυτο ειναι αρκετο να με γεμιζει νευρικοτητα. Τα λιγα πραγματα που γνωριζω θα ηθελα να φανουν αρκετα για να συνεισφέρω σε καποιο project. Κοιταξα ενα ενα τα project και διαλεξα το Μετάφραση templates για το OpenOffice.org που ηγειται ο Χρυσοχέρης Ηλίας. Ολες οι προτασεις ηταν καλες αλλα λογο απουσιας μεγαλων γνωσεων και απειριας διαλεξα καποιο το οποιο πιστευω πως μπορω να τελειωσω. Βασικο για να πεις οτι κατι εκανες με ουσια, οπως συμαντικη επισης θεωρω και την συμμετοχη καθαυτη.

Επισης ειναι η αποδραση στην υπαιθρο, κατω απο τα αστερια, το βραδινο αερακι, η καλοκαιρινη ατμοσφαιρα της Κρητης και οι ομορφιες της. Ισως τιποτα δεν συγκρινεται με μια τετοια αποδραση..

Μεχρι τοτε ομως εχω ενα αναβαθμισμενο συστημα στο σπιτι που θελει set-αρισμα αφου αποφάσισα να του κανω καθαρη εγκατασταση. Πιστευω μια βδομαδα θα μου τη φαει σιγουρα. Το βασικο μου θεμα ειναι η εγκατασταση των drivers ati. Και μολις τελειωσω υποσχομαι να γραψω ενα tuto για αυτο.

Στην προηγουμενη διανομη ενω ολα φαινονταν να δουλευουν ξαφνικα βαζω να δω μια ταινια και σε fullscreen το desktop μαυριζει. Τιποτα! καμια ανταποκριση. Μετα απο δυο τρια reboot το συστημα εφτανε μεχρι το log screen και μαυριζε. that s it. Σκεφτηκα να ξαναπερασω τους drivers αλλα δεν γινόταν. Παρολα αυτα το λειτουργικο εμπαινε σε single mode και rescue mode, χωρις να μπορω να κανω κατι για να διορθωσω την κατασταση. Ετσι χωρις πολυ σκεψη εκανα update χάνοντας τη ευκαιρια να μαθω αιτια και λυση. Στο fedora 10 ειχα περασει σχετικα ευκολα τους οδηγους αλλα ειχα στο κανω τις δυο οθονες να δουλεψουν σε επεκταση. Δεν ξερω τι πηγε στραβα anyway αλλα αν καποιος εχει καμια ιδεα ή του εχει συμβει και το εφτιαξε ας ενημερωσει.

Θα αναφερω ομως ενα "θεματακι" που βρηκα σχετικα. Αυτο ανεφερε το εξης:

* Installing ATi driver

Since the ATi kernel module won't built with the 2.6.29 kernel that Fedora 11 uses, currently there are no fglrx drivers available from RPMFusion. RPMFusion is going to wait for ATi to 2.6.29 support since all the available pathces aren't satisfactory.

Το νου σας...........

Friday, April 25, 2008

connect on tvcard

ontelecoms tvbox connect on tvcard

το προβλημα ηταν πως δεν ειχα τηλεοραση με scart αλλα ουτε αλλη εισοδο πανω σε αυτη.
Θελουμε λοιπον τη συνδεση του tvbox με την καρτα βιντεο για να βλεπω απο τον υπολογιστη. την πρωτη μερα που πηρα την On, ο τεχνικος μου ειπε πως δεν υποστιριζεται η συγκεκριμενη συνδεση. λοιπον απλα πρεπει να τους ενημερωσουμε οτι γινεται και να πανε σε κανα σεμιναριο ή να σιαβασουν αυτο το howto. Γιατι δεν γινεται να μη γινεται.

καταρχην πιστευω πως δουλευει απο οποιοδηποτε καρτα και αν εχετε.Αυτη ειναι η δουλεια της ετσι και αλλιως.

χρειαζομαστε:
-ενα scart σε composite(εγω το πηρα και σε svideo γιατι ηταν η πρωτη επιλογη στο μυαλο μου)
-καλωδιο ηχου
-καλωδιο composite

βαζεις το adaptor στο tvbox
composite cable (αρσενικο) στη κιτρινη υποδοχη και στη αναλογη video in υποδοχη της καρτας.
συνδεεις και το καλωδιο ηχου και εισαι σχεδον ετοιμος.
ανοιγεις το software kai ουσιαστηκα ρυθμιζεις μονο την εισοδο σε composite in.

το tvbox θα εμφανισει ολα τα καναλια μονο του χωρις να χρειαστει αλλη ρυθμιση απο τη καρτα ή στο κουτι.εμανα επαιξε αψογα και εικονα και ηχο.