Προς το περιεχόμενο

Προτεινόμενες αναρτήσεις

Δημοσ.

Γεια σας,

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

Μπορεί να μου πει κάποιος αν ας πούμε μπω σε ένα site πχ στο sourceforge.net και βρω ένα πρόγραμμα που μου κεντρίσει το ενδιαφέρον τι πρέπει να κατεβάσω για να δω τον κώδικα ?

ευχαριστώ για το χρόνο σας :)

Δημοσ.

Αυτό που χρειάζεσαι σε πρώτη φάση είναι να μάθεις κάποιο version control system. Είναι τα εργαλεία που χρησιμοποιούνται για να κατεβάσεις τον κώδικα, για να κάνεις αλλαγές, και να τον συνεισφέρεις πίσω στο Project. Τα βασικά είναι τα Mercurial και Git ενώ χρησιμοποιείται και το Subversion σε παλαιότερα projects. Google is thy friend.

 

Αν έχεις άλλη απορία ρωτας.

  • Like 2
Δημοσ.

Για ποιο λόγο ας πούμε δεν μπορούμε να πατήσουμε απλά download σε ένα project ώστε να πάρουμε κατευθείαν (πχ) τα .c αρχεία έτσι ώστε να δούμε τον κώδικα ;

Δημοσ.

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

 

 

Για ποιο λόγο ας πούμε δεν μπορούμε να πατήσουμε απλά download σε ένα project ώστε να πάρουμε κατευθείαν (πχ) τα .c αρχεία έτσι ώστε να δούμε τον κώδικα ;

Δημοσ.

Έγραφα μια εκτενή απάντηση και.... κράσαρε ο browser. :mad:

 

Οπότε τώρα πολύ συνοπτικά:

  • Επειδή αν θέλεις να κάνεις ο,τιδήποτε άλλο εκτός από το να διαβάσεις τον κώδικα ή να πατήσεις compile χρειάζεσαι source control (ή version control, revision control, SCM = Software Configuration Management).
  • Όποιος δεν έχει χρησιμοποιήσει source control στη ζωή του πάντα είναι δύσπιστος στην αρχή. Πνίξε τις όποιες ενστάσεις σου έρχονται, αργότερα θα λες "είναι δυνατόν να δούλευα χωρίς αυτό κάποτε;". Διάβασε αν θέλεις και αυτό (μέχρι και τα comments, όπου επιβεβαιώνεται κιόλας αυτό που έγραψα πριν).
  • Τα SCM χωρίζονται σε δύο μεγάλες κατηγορίες: centralized (τα "παραδοσιακά", π.χ. CVS και Subversion) και distributed (git, mercurial κλπ -- φρέσκο σχετικά πράμα).
  • Αφού δεν έχεις προηγούμενη επαφή δεν αξίζει να ασχοληθείς με centralized σε πρώτη φάση, μάθε το μέλλον.
  • Αν είσαι linux hacker μάθε git, αλλιώς θα βρεις ευκολότερο το mercurial γιατί έχει και εύχρηστο γραφικό interface. Όπως και να 'χει το 99% αυτών που θα μάθεις είναι μεταφέρσιμα και στα άλλα distributed οπότε αν μάθεις ένα μετά τα μαθαίνεις όλα.
  • Hands-on mercurial tutorial. Θα σου έλεγα να το κάνεις ακόμα κι αν ήσουν τύπος που πάει για git.
  • Αν δε μάθεις το source control εργαλείο σε βαθμό που να μπορείς να το δουλέψεις μόνο από command line τότε απλά δεν το έχεις μάθει. Αφού μάθεις από command line μετά δούλευέ το όπως θες.

 

Η πρώτη μου επαφή με open source έγινε ως εξής: κατέβασα τον κώδικα και έγραφα πράγματα ξερά, ούτε source control ούτε τίποτα. Ποστάριζα τη δουλειά μου σαν zip files στα σχετικά forum. Σε κάποια φάση, αφού τα zip files είχαν μαζέψει πολλά like και γνωρίστηκα λίγο με τους main developers μου έβαλαν μια "εργασία" (γιατί αυτό ήταν στην ουσία) και μετά από την "επιτυχή" ολοκλήρωσή της ο lead μου έγραψε στο skype "ok, πες λίγο τι username και password θέλεις να σου κάνω ένα account στο CVS, welcome aboard!"

 

(δεν ρώτησε καν έτσι; το θεωρούσε δεδομένο ότι ξέρω να χρησιμοποιώ source control)

 

Ο πανικός που ένιωσα εκείνη τη στιγμή δεν περιγράφεται.

 

Καλύτερα να μάθεις με την άνεσή σου. ;)

 

  • Like 3
Δημοσ.

+1 σε όλα

 

Edit

Διαφωνώ λίγο εδώ, εκτός και αν εννοείς linux kernel hacker.

Αν είσαι linux hacker μάθε git

Το mercurial είναι imho πιο user friendly ανεξαρτήτως λειτουργικού.

Δημοσ.

Όχι, εννοώ linux command line hacker. Kernel hacker δε νομίζω να βρεις στο insomnia. :P

 

Το hg συμφωνώ και γω ότι είναι γενικά πιο friendly. Και γω αυτό είχα επιλέξει για να μάθω, αλλά μόνο επειδή σε windows το git ήταν (ειδικά τότε) αρκετά πιο ψυχοβγαλτικό.

Δημοσ. (επεξεργασμένο)

Τι είδους project θα προτείνατε σε κάποιον ο οποίος ασχολείται για πρώτη φορά με λογισμικό ανοιχτού κώδικα και γνωρίζει c/c++ και Java

(σε επίπεδο σαν αυτό που μαθαίνουν σε σχολές πληροφορικής);

Επεξ/σία από pbp
Δημοσ. (επεξεργασμένο)

Έμαθα να χειρίζομαι το Mercurial.

Απίστευτο λογισμικό! Εξαιρετικά χρήσιμο ;)

Μακάρι να το ήξερα τουλάχιστον ένα-δύο χρόνια πιο πριν :)

Θα γλίτωνα χιλιάδες copy pastes!

Επεξ/σία από pbp
Δημοσ.

Αυτό που χρειάζεσαι σε πρώτη φάση είναι να μάθεις κάποιο version control system. Είναι τα εργαλεία που χρησιμοποιούνται για να κατεβάσεις τον κώδικα, για να κάνεις αλλαγές, και να τον συνεισφέρεις πίσω στο Project. Τα βασικά είναι τα Mercurial και Git ενώ χρησιμοποιείται και το Subversion σε παλαιότερα projects. Google is thy friend.

 

Αν έχεις άλλη απορία ρωτας.

 

Σε δεύτερη φάση τι κάνω τώρα ? :)

Δημιουργήστε ένα λογαριασμό ή συνδεθείτε για να σχολιάσετε

Πρέπει να είστε μέλος για να αφήσετε σχόλιο

Δημιουργία λογαριασμού

Εγγραφείτε με νέο λογαριασμό στην κοινότητα μας. Είναι πανεύκολο!

Δημιουργία νέου λογαριασμού

Σύνδεση

Έχετε ήδη λογαριασμό; Συνδεθείτε εδώ.

Συνδεθείτε τώρα
  • Δημιουργία νέου...