Βασική χρήση του git

...του ubuntu και έργων ΕΛ/ΛΑΚ (Έργα-Οδηγοί-Προτάσεις)

Συντονιστής: konnn

Βασική χρήση του git

Δημοσίευσηαπό Μάριος Ζηντίλης » 05 Ιουν 2009, 22:48

Το πιο κάτω άρθρο αποτελεί μια επιμελημένη εκδοχή του αρχείου καταγραφής ενός μαθήματος που μας έκανε στο IRC ο simosx.

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

1. Το πρώτο είναι να βάλουμε το πακέτο για git. Σε Ubuntu Linux είναι το git-core.
Κώδικας: Επιλογή όλων
sudo apt-get install git-core

2. Φτιάχνουμε ένα υποκατάλογο στο λογαριασμό μας (π.χ. κάτω από το /home/user/), με π.χ. όνομα WORK. Οπότε, τα αποθετήρια θα τα ρίχνουμε σε ένα υποκατάλογο μόνο. Θα προτιμήσουμε την κατάσταση όπου συνδέουμε το αποθετήριο με μια από τις υπηρεσίες git. Από όλες τις υπηρεσίες, αυτή που είναι πιο δημοφιλής και καλή για νέους χρήστες είναι το github.com

Οπότε, στο σημείο αυτό πάμε στο http://www.github.com/ και δημιουργούμε ένα λογαριασμό. Στη δημιουργία λογαριασμού θα ζητηθεί το δημόσιο κλειδί μας για SSH. Αν έχετε ήδη στο ~/.ssh/ ένα id_rsa.pub, βάζετε το κλειδί. Αν δεν έχετε κλειδί SSH, μπορείτε με ssh-keygen (γίνεται μια φορά).
Είναι καλό να μπει το κλειδί SSH. Με το κλειδί SSH μπορείτε να στέλνετε τις ενημερώσεις δίχως να ζητάει κωδικό κάθε φορά.

Spoiler: show
Στο ssh-keygen βάλτε για passphrase έναν οποιονδήποτε κωδικό. Προσπαθήστε να κρατήσετε τον κωδικό αυτό. Μετά, με τον ίδιο κωδικό μπορείτε να μπαίνετε π.χ. στο dreamhost, και όπου αλλού έχετε λογαριασμό SSH. Το κλειδί αυτό είναι από τα σημαντικά σας κλειδιά. Υπάρχει πολύ καλή υποστήριξη από GNOME με ssh. Βάζεις το passphrase μια φορά και μετά δε χρειάζεται να γράψεις κωδικούς, κτλ. Το github απλά δουλεύει, το ssh στο dreamhost και αλλού.


Αν πάμε στο https://github.com/ βλέπουμε την αρχική σελίδα με τα στοιχεία μας επάνω δεξιά. Στη δεξιά στήλη αναφέρει «Your repositories». Tο επόμενο στάδιο είναι να φτιάξουμε ένα δοκιμαστικό αποθετήριο, και να κάνουμε τις δοκιμές μας.

Κάνουμε κλικ στο Your Repositories (create a new one)
Δώστε project name π.χ. mytest
Η περιγραφή είναι ελεύθερο κείμενο.
Το homepage δεν είναι αναγκαίο.
Και «Create repository».

3. Στο επόμενο στάδιο αναφέρει να τρέξουμε μια σειρά από εντολές.
Εκεί που λέει «Global setup», είναι εντολές που τρέχουμε μια φορά, σήμερα. Εκτελέστε τες.
Με τις εντολές αυτές θα δημιουργηθεί απλά το αρχείο ~/.gitconfig με το όνομα, ηλ. αλληλογραφία.
Έξτρα! Εκτελέστε και:
Κώδικας: Επιλογή όλων
git config --global color.ui auto

Bάζει ωραία χρώματα μετά, είναι ωραίο.

Με:
Κώδικας: Επιλογή όλων
git config -l

μπορείτε να δείτε τις ρυθμίσεις αυτές (αν βαριέστε το cat ~/.gitconfig). Μόλις τελειώσετε με το Global setup, πάτε στο Next steps και εκτελέστε τις εντολές. Με τις εντολές αυτές απλά βάζετε ένα README στο αποθετήριο. Tο directory που θέλει να φτιάξετε θα γίνει μέσα στο WORK directory;

Η διεύθυνση του αποθετηρίου σας τώρα θα είναι κάτι σαν http://github.com/όνομα_χρήστη/mytest/tree/master

Τώρα έχουμε φτιάξει αποθετήρια στους υπολογιστές μας, και τους έχουμε συνδέσει με το δημόσιο χώρο μας στο github.com. Αυτή τη στιγμή είμαστε σε κατάσταση πλήρους ενημέρωσης (ότι έχουμε στο δίσκο υπάρχει και στο github.com). Ας δούμε πως μπορούμε να προσθέσουμε κάτι σε εκείνο το README.

α. με κάποιο επεξεργαστή κειμένου γράφουμε στο README μερικές γραμμές, π.χ. «Αυτή είναι μια δοκιμή στη χρήση του git», κ.τλ. Μόλις τελειώσετε, τρέξτε git status και θα πρέπει να εμφανίζει ένα μήνυμα που θα δείχνει ότι το git κατάλαβε ότι έχει αλλάξει ένα από τα αρχεία που παρακολουθεί (track) και το αναφέρει.

Εδώ πρέπει να κάνουμε «commit» την αλλαγή που κάναμε. Υπάρχουν διάφοροι τρόποι (όλοι σχεδόν ίδιοι). Προσωπικά προτιμώ:
Κώδικας: Επιλογή όλων
git commit README -m "Updated the README file"


Δηλαδή, 'git commit' <ποιο αρχείο/α> -m "message for commit"

Είναι σημαντικό να δείτε τώρα ότι το 'commit' που κάναμε έχει γίνει μόνο τοπικά, στο τοπικό αντίγραφο του αποθετηρίου. H εντολή 'git commit' κατέγραψε το έργο που κάναμε (τροποποίηση του README) στο τοπικό αποθετήριο. Για να στείλουμε τις αλλαγές που κάναμε στο github, οπότε να είμαστε πλήρως ενημερωμένοι, εκτελούμε:
Κώδικας: Επιλογή όλων
git push


Τώρα, πού ξέρει το git για τα αρχεία που βάζουμε, τις αλλαγές, κτλ; Για τρέξτε:
Κώδικας: Επιλογή όλων
git log

Με την εντολή git log βλέπουμε τα commit που έχουμε κάνει στο τοπικό αποθετήριο. Το git βάζει ότι τα δεδομένα για το αποθετήριο στον κρυφό κατάλογο '.git'. Μπορείτε να τον εντοπίσετε μέσα στον κατάλογο του αποθετηρίου;

Το README που βλέπετε υπάρχει και σε συμπιεσμένη μορφή μέσα στο '.git/...'. Υπάρχει εκεί με τις πληροφορίες των αλλαγών που έχουν γίνει. Το README και τα άλλα αρχεία που θα βάλετε πιθανόν μετά είναι το 'working copy'. Τα ίδια αρχεία υπάρχουν (αφού κάνετε commit) και μέσα στο .git. Οπότε διατηρούμε εκείνο τον υποκατάλογο. Τα αρχεία αποθηκεύονται με ειδικό τρόπο μέσα στο .git, με συμπίεση, και χρήση του MD5 checksum, κ.τλ, επομένως δεν το βρίσκετε το αρχείο που φτιάξατε ως README μέσα στο τοπικό αποθετήριο.

Με τις εντολές του git γίνεται το πάρε δώσε μεταξύ .git και του τρέχοντος working copy των αρχείων που έχουμε μπροστά μας.

Κάντε μερικές ακόμα προσθήκες/αλλαγές στο README. Μόλις τελειώσετε, εκτελέστε 'git diff' (όχι ακόμα commit), και δείχνει τις διαφορές.
Τώρα κάντε commit:
Κώδικας: Επιλογή όλων
git commit README -m "Updated the README file"

και μετά
Κώδικας: Επιλογή όλων
git push


Tώρα, το τελευταίο στάδιο. Μιας και έχουμε τα αρχεία στο αποθετήριο στο github.com, σβήνουμε τους καταλόγους με τη δουλειά μας. Αυτό είναι για εκπαιδευτικούς σκοπούς, δεν είναι κάτι που κάνουμε έτσι για την πλάκα.
Κώδικας: Επιλογή όλων
rm -fr mytest

Ο στόχος είναι να δούμε πως δημιουργούμε το τοπικό αποθετήριο από το δημόσιο που έχουμε στο github.

Αν δείτε στο http://github.com/όνομα_χρήστη/mytest/tree/master αναφέρει ένα σύνδεσμο για Private clone URL. Κάντε κλικ και αντιγραφή. «Your Clone URL:»
Κώδικας: Επιλογή όλων
git clone git@github.com:όνομα_χρήστη/mytest.git


Η εντολή git clone δημιουργεί ένα πλήρη κλώνο του αποθετηρίου. Οπότε τώρα είμαστε πλήρεις με το αποθετήριο. Έφτιαξε ακριβώς το ίδιο που είχαμε πριν, πριν σβήσουμε τον κατάλογο.

Λοιπόν, ολοκληρώσαμε μια ώρα με το e-μάθημα. Θα σταματήσουμε εδώ. Στο σημείο αυτό ξέρουμε τα πιο σημαντικά για να φτιάχνουμε δημόσια αποθετήρια και να προσθέτουμε τη δουλειά μας, ένα στάδιο κάθε φορά.

Ελπίζω ότι θα έχουμε και δεύτερο μάθημα στο git κάποια στιγμή, οπότε και θα ξαναδημοσιευτεί εδώ το αρχείο καταγραφής. Ευχαριστούμε το Σίμο για το χρόνο που διέθεσε!
Άβαταρ μέλους
Μάριος Ζηντίλης
punkTUX
punkTUX
 
Δημοσιεύσεις: 220
Εγγραφή: 25 Σεπ 2008, 11:16
Εκτύπωση

Re: Βασική χρήση του git

Δημοσίευσηαπό simosx » 24 Μαρ 2011, 19:06

Αν υπάρχουν ερωτήματα για το git και το πως μπορεί να ωφελήσει στον προγραμματισμό, μπορείτε να ρωτήσετε εδώ.
προσωπικό ιστολόγιο ϗ πλανήτης Ubuntu-gr
Συμβάλετε και εσείς στο ελληνικό βιβλίο Ubuntu!
1 Γνώσεις Linux: Πολύ καλό ┃ Προγραμματισμού: Πολύ καλό ┃ Αγγλικών: Πολύ καλό
2 Ubuntu 13.10 saucy 3.11.0-031100rc1-generic 64bit (el_GR.UTF-8, Unity ubuntu)
3 AMD E-450 APU with Radeon HD Graphics ‖ RAM 3555 MiB ‖ Sony Corporation VAIO
4 AMD nee ATI Wrestler [Radeon HD 6320] [1002:9806] {fglrx_pci}
5 eth0: Atheros Inc. AR8151 v2.0 Gigabit Ethernet [1969:1083] (rev c0) ⋮ wlan0: Atheros Inc. AR9285 [168c:002b] (rev 01)
Φτιάξτε και εσείς τη δική σας υπογραφή (παραπάνω κείμενο) αυτόματα με κλικ εδώ!
simosx
Επίτιμο μέλος
Επίτιμο μέλος
 
Δημοσιεύσεις: 10334
Εγγραφή: 11 Μάιος 2008, 18:52
Launchpad: simosx
IRC: simosx
Εκτύπωση

Re: Βασική χρήση του git

Δημοσίευσηαπό giannosfor » 23 Ιουν 2011, 20:59

Έχω κάποιες ερωτήσεις,πρώτον πώς λειτουργεί το αρχείο Makefile,γιατί το αρχείο .gitignore δε το βλέπω τοπικά δίνωντας git pull και πως φτιάχνω ένα τέτοιο αρχείο.Είχα δώσει εντολή git show όπως και git help show και δεν ξέρω πως να βγω μετά :-x
1 Γνώσεις Linux: Καθόλου ┃ Προγραμματισμού: Ικανοποιητικό ┃ Αγγλικών: Ικανοποιητικό
2 Ubuntu 12.04 precise 3.2.0-58-generic 32bit (en_US.UTF-8, Unity ubuntu), Ubuntu 3.2.0-57-generic, Microsoft Windows XP Professional
3 Intel Core2 Duo CPU E4600 2.40GHz ‖ RAM 2012 MiB ‖ ASUS INC. P5Q - � P5Q
4 nVidia G94 [GeForce 9600 GT] [10de:0622] {nvidia}
5 eth0: Qualcomm Atheros AR8121/AR8113/AR8114 Gigabit or Fast Ethernet [1969:1026] (rev b0) ⋮ wlan0: 148f:3070 Ralink Technology, Corp. RT2870/RT3070 Wireless Adapter
Άβαταρ μέλους
giannosfor
punkTUX
punkTUX
 
Δημοσιεύσεις: 297
Εγγραφή: 24 Απρ 2011, 20:24
Τοποθεσία: Ηράκλειο
Εκτύπωση

Re: Βασική χρήση του git

Δημοσίευσηαπό simosx » 23 Ιουν 2011, 21:05

giannosfor έγραψε:Έχω κάποιες ερωτήσεις,πρώτον πώς λειτουργεί το αρχείο Makefile,γιατί το αρχείο .gitignore δε το βλέπω τοπικά δίνωντας git pull και πως φτιάχνω ένα τέτοιο αρχείο.Είχα δώσει εντολή git show όπως και git help show και δεν ξέρω πως να βγω μετά :-x


Είμαι στο IRC, στο http://ubuntu-gr.org/webchat
οπότε μπες για να δούμε όλες τις ερωτήσεις.

Στο viewtopic.php?p=193603#p193603 υπάρχει το log από πρόσφατο μάθημα.
προσωπικό ιστολόγιο ϗ πλανήτης Ubuntu-gr
Συμβάλετε και εσείς στο ελληνικό βιβλίο Ubuntu!
1 Γνώσεις Linux: Πολύ καλό ┃ Προγραμματισμού: Πολύ καλό ┃ Αγγλικών: Πολύ καλό
2 Ubuntu 13.10 saucy 3.11.0-031100rc1-generic 64bit (el_GR.UTF-8, Unity ubuntu)
3 AMD E-450 APU with Radeon HD Graphics ‖ RAM 3555 MiB ‖ Sony Corporation VAIO
4 AMD nee ATI Wrestler [Radeon HD 6320] [1002:9806] {fglrx_pci}
5 eth0: Atheros Inc. AR8151 v2.0 Gigabit Ethernet [1969:1083] (rev c0) ⋮ wlan0: Atheros Inc. AR9285 [168c:002b] (rev 01)
Φτιάξτε και εσείς τη δική σας υπογραφή (παραπάνω κείμενο) αυτόματα με κλικ εδώ!
simosx
Επίτιμο μέλος
Επίτιμο μέλος
 
Δημοσιεύσεις: 10334
Εγγραφή: 11 Μάιος 2008, 18:52
Launchpad: simosx
IRC: simosx
Εκτύπωση

Re: Βασική χρήση του git

Δημοσίευσηαπό simosx » 23 Ιουν 2011, 21:18

1. Το makefile έχει εντολές όπου επιτρέπουν να μεταγλωττίζουμε ένα πρόγραμμα πιο εύκολα.
Για παράδειγμα
Κώδικας: Επιλογή όλων
ExampleQuit.class: ExampleQuit.java
      javac -cp /usr/share/java/gtk.jar ExampleQuit.java

run:
      java -cp /usr/share/java/gtk.jar:. ExampleQuit

από https://github.com/giannosfor/ExampleQu ... r/Makefile

Οι πρώτες δύο εντολές πάνε μαζί:

Κώδικας: Επιλογή όλων
ExampleQuit.class: ExampleQuit.java
          javac -cp /usr/share/java/gtk.jar ExampleQuit.java


Είναι ο πρώτος κανόνας, οπότε όταν τρέξουμε σκέτο make, το πρόγραμμα make θα ψάξει για ένα αρχείο Makefile στον τρέχον κατάλογο
και θα προσπαθήσει να παράγει το «ExampleQuit.class» (επειδή είναι πρώτο, πριν από : ).
Το ExampleQuit.class: ExampleQuit.java
σημαίνει ότι το ExampleQuit.class εξαρτάται από το ExampleQuit.java. Απαιτεί να υπάρχει το ExampleQuit.java. Αν η ημερομηνία του ExampleQuit.java είναι νεότερη από το ExampleQuit.class, τότε εκτελεί την εντολή, και η εντολή είναι αυτό που αναφέρεται στην επόμενη γραμμή.

Η εντολή είναι πάντα με εσοχή (προς τα δεξιά) με ένα χαρακτήρα Tab. Μερικοί χρήστες βάζουν διάστημα (space) και αυτό είναι σφάλμα. Το make παραπονιέται για separator, κτλ.
Κώδικας: Επιλογή όλων
run:
      java -cp /usr/share/java/gtk.jar:. ExampleQuit


Εδώ φτιάχνουμε ένα ιδεατό στόχο, το run. Οπότε, αν τρέξουμε
Κώδικας: Επιλογή όλων
make run

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

Μια βελτίωση στο παραπάνω είναι να γράψουμε
Κώδικας: Επιλογή όλων
run: ExampleQuit.class
      java -cp /usr/share/java/gtk.jar:. ExampleQuit


οπότε εδώ θα δει αν υπάρχει το ExampleQuit.class. Αν δεν υπάρχει, θα χρησιμοποιήει τον πρώτο κανόνα και θα μεταγλωττίσει,
και μετά θα τρέξει το πρόγραμμα.
προσωπικό ιστολόγιο ϗ πλανήτης Ubuntu-gr
Συμβάλετε και εσείς στο ελληνικό βιβλίο Ubuntu!
1 Γνώσεις Linux: Πολύ καλό ┃ Προγραμματισμού: Πολύ καλό ┃ Αγγλικών: Πολύ καλό
2 Ubuntu 13.10 saucy 3.11.0-031100rc1-generic 64bit (el_GR.UTF-8, Unity ubuntu)
3 AMD E-450 APU with Radeon HD Graphics ‖ RAM 3555 MiB ‖ Sony Corporation VAIO
4 AMD nee ATI Wrestler [Radeon HD 6320] [1002:9806] {fglrx_pci}
5 eth0: Atheros Inc. AR8151 v2.0 Gigabit Ethernet [1969:1083] (rev c0) ⋮ wlan0: Atheros Inc. AR9285 [168c:002b] (rev 01)
Φτιάξτε και εσείς τη δική σας υπογραφή (παραπάνω κείμενο) αυτόματα με κλικ εδώ!
simosx
Επίτιμο μέλος
Επίτιμο μέλος
 
Δημοσιεύσεις: 10334
Εγγραφή: 11 Μάιος 2008, 18:52
Launchpad: simosx
IRC: simosx
Εκτύπωση

Re: Βασική χρήση του git

Δημοσίευσηαπό simosx » 23 Ιουν 2011, 21:26

giannosfor έγραψε:γιατί το αρχείο .gitignore δε το βλέπω τοπικά δίνωντας git pull και πως φτιάχνω ένα τέτοιο αρχείο. Είχα δώσει εντολή git show όπως και git help show και δεν ξέρω πως να βγω μετά :-x


Πρέπει να τρέξεις
Κώδικας: Επιλογή όλων
ls -la

για να δεις το αρχείο .gitignore. Αυτό το a λέει να δείξει και τα αρχεία που ξεκινούν από τελεία (κρυφά αρχεία).

Όταν δίνεις π.χ. git help show, πατάς q για να βρεις. Είναι τυπικό να πατάς q στο τερματικό σε τέτοιες καταστάσεις.

Προτείνω

Κώδικας: Επιλογή όλων
sudo apt-get install gitg
gitg


Άμα τρέξεις gitg μέσα από το αποθετήριο, τότε θα δεις με γραφικό και όμορφο τρόπο την εξέλιξη του αποθετηρίου.
προσωπικό ιστολόγιο ϗ πλανήτης Ubuntu-gr
Συμβάλετε και εσείς στο ελληνικό βιβλίο Ubuntu!
1 Γνώσεις Linux: Πολύ καλό ┃ Προγραμματισμού: Πολύ καλό ┃ Αγγλικών: Πολύ καλό
2 Ubuntu 13.10 saucy 3.11.0-031100rc1-generic 64bit (el_GR.UTF-8, Unity ubuntu)
3 AMD E-450 APU with Radeon HD Graphics ‖ RAM 3555 MiB ‖ Sony Corporation VAIO
4 AMD nee ATI Wrestler [Radeon HD 6320] [1002:9806] {fglrx_pci}
5 eth0: Atheros Inc. AR8151 v2.0 Gigabit Ethernet [1969:1083] (rev c0) ⋮ wlan0: Atheros Inc. AR9285 [168c:002b] (rev 01)
Φτιάξτε και εσείς τη δική σας υπογραφή (παραπάνω κείμενο) αυτόματα με κλικ εδώ!
simosx
Επίτιμο μέλος
Επίτιμο μέλος
 
Δημοσιεύσεις: 10334
Εγγραφή: 11 Μάιος 2008, 18:52
Launchpad: simosx
IRC: simosx
Εκτύπωση

Re: Βασική χρήση του git

Δημοσίευσηαπό Ilias95 » 25 Αύγ 2011, 13:42

Καλησπέρα. Μια απορία σχετικά με το git και το github.
Στο φάκελο του αποθετηρίου μου είχα το αρχείο x.
Έδωσα:
Κώδικας: Επιλογή όλων
git mv x x2
Μετά:
Κώδικας: Επιλογή όλων
git commit x2 -m "comment"
Και τέλος:
Κώδικας: Επιλογή όλων
git push


Το αποτέλεσμα είναι να έχω στον κατάλογο στον υπολογιστή μου μόνο το αρχείο x2 (αυτό που μετονομάστηκε δηλαδή), ενώ στο github έχω και το χ1 και το χ2. Μάλιστα το χ2 εμφανίζεται σαν νέο αρχείο, δηλαδή δεν εμφανίζονται τα commits που υπήρχαν προηγουμένως.
Πως μπορώ τώρα να διαγράψω το χ1 απ' το github;
Ilias95
saintTUX
saintTUX
 
Δημοσιεύσεις: 1548
Εγγραφή: 29 Απρ 2011, 23:26
Εκτύπωση

Re: Βασική χρήση του git

Δημοσίευσηαπό clepto » 25 Αύγ 2011, 13:48

ρίξε μια ματιά εδώ, μπορεί να βρεις αυτό που θέλεις.
1 Γνώσεις Linux: Ικανοποιητικό ┃ Προγραμματισμού: Ικανοποιητικό ┃ Αγγλικών: Ικανοποιητικό
2 Ubuntu 13.04 raring 3.8.0-30-generic 64bit (en_US.UTF-8, Unity ubuntu), Ubuntu 3.8.0-19-generic, Windows 7
3 Intel Core i7-3537U CPU @ 2.00GHz ‖ RAM 3840 MiB ‖ ASUS K56CB
4 Intel 3rd Gen Core processor Graphics Controller [8086:0166] {i915}
5 wlan0: Atheros Inc. AR9485 Wireless Network Adapter [168c:0032] (rev 01) ⋮ eth0: Realtek RTL8111/8168 PCI Express Gigabit Ethernet controller [10ec:8168] (rev 0a)
clepto
antiwinTUX
antiwinTUX
 
Δημοσιεύσεις: 4102
Εγγραφή: 07 Ιαν 2010, 16:27
Τοποθεσία: Πάτρα
Launchpad: christriant
IRC: Clepto
Εκτύπωση

Re: Βασική χρήση του git

Δημοσίευσηαπό Ilias95 » 25 Αύγ 2011, 13:54

clepto έγραψε:ρίξε μια ματιά εδώ, μπορεί να βρεις αυτό που θέλεις.

Δυστυχώς δεν βλέπω κάτι σχετικό.
Ilias95
saintTUX
saintTUX
 
Δημοσιεύσεις: 1548
Εγγραφή: 29 Απρ 2011, 23:26
Εκτύπωση

Re: Βασική χρήση του git

Δημοσίευσηαπό evolgen » 25 Αύγ 2011, 14:00

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

Γνώσεις Linux: Μέτριο++ ┃ Προγραμματισμός: Perl, R, Python, SQL, C, Common Lisp, BashΑγγλικά: Άριστα

1. Ubuntu 14.04 trusty
2. Intel Core i7-3520M CPU @ 2.90GHz ‖ RAM 7892 MiB
3. Intel 3rd Gen Core processor Graphics Controller [8086:0166] {i915}
4. eth0: Broadcom NetXtreme BCM57765 Gigabit Ethernet PCIe [14e4:16b4] (rev 10) ⋮ eth1: Broadcom BCM4331 802.11a/b/g/n [14e4:4331] (rev 02)
Άβαταρ μέλους
evolgen
daemonTUX
daemonTUX
 
Δημοσιεύσεις: 1031
Εγγραφή: 28 Ιούλ 2010, 14:22
Τοποθεσία: UK
IRC: bioevolgenec
Εκτύπωση

Επόμενο

  • ΣΧΕΤΙΚΑ ΘΕΜΑΤΑ
    ΑΠΑΝΤΗΣΕΙΣ
    ΠΡΟΒΟΛΕΣ
    ΣΥΓΓΡΑΦΕΑΣ

Επιστροφή στο Ανάπτυξη Λογισμικού / Αλγόριθμοι

cron