Παρασκευή 20 Νοεμβρίου 2009
Teamwork, really?
Πέμπτη 10 Σεπτεμβρίου 2009
Let's talk geek...
Σε Windows, με βόλεψε αφάνταστα ο TextPad (άσχετα αν τώρα χρησιμοποιώ NotePad++). Ο editor του είναι φανταστικός. Έχει κάποια features στον editor που (εμένα τουλάχιστον) με διευκόλυναν πολύ, τώρα αυτά τα features ψάχνω σε Text Editors στο Linux.
- Στο άνοιγμα αγκίστρου για το σώμα μεθόδου, να κλείνει το άγκιστρο σε νέα γραμμή.
- Αν δεν κλείνει αυτόματα το άγκιστρο σε νέα γραμμή, όταν φτάσω στο τέλος του σώματος μεθόδου και κλείσω το άγκιστρο, αυτόματα να το στοιχίσει στο σωστό indent.
- Αν δεν κλείνει αυτόματα το άγκιστρο σε νέα γραμμή, όταν πατάω enter για να μπώ στο σώμα της μεθόδου, να μεταφέρει το άγκιστρο σε νέα γραμμή.
- Όταν πατάω enter μετά το άγκιστρο και μπαίνω στο σώμα μεθόδου, ν' αυξάνει το indentation κατά ένα.
Αυτές είναι λίγο χαζές απαιτήσεις αλλά κακά τα ψέματα, αν σε βολέψει κάτι δε το αλλάζεις εύκολα. Τα IDEs όπως το NetBeans, τα κάνουν αυτά μια χαρά. Αλλά όπως είπα, δε θα το φορτώσω για να γράψω ένα δοκιμαστικό πρόγραμμα.
Ο gedit φτάνει μέχρι ένα σημείο. Μπαίνεις στο σώμα της μεθόδου με enter αλλά δεν αυξάνει το indentation. Ε δε θέλω να πατάω εκείνο το tab για να μπαίνω μέσα κατά ένα.
Ο emacs κι αυτός πηγαίνει μέχρι ένα σημείο. Αν ανοίξεις άγκιστρο και πατήσεις enter, θα σε πάει μεν στην αρχή της επόμενης γραμμής, μ' ένα tab όμως σε πάει αυτόματα στο σωστό indentation του σώματος της μεθόδου. Δεν κλείνει αυτόματα το άγκιστρο, όταν όμως το κλείσεις κλείνει στο σωστό indentation της γραμμής δήλωσης. Και πάλι όμως, έχουμε ένα επιπλέον tab.
---Εδώ να πώ ότι ο emacs είναι παραμετροποιήσιμος σε τρομακτικό βαθμό, έλα όμως που έχει και τρομακτικό σύστημα ρυθμίσεων. Άστο καλύτερα.
Βρήκα πάντως το πρόγραμμα που κάνει όλα τα παραπάνω. Δε χρειάζεται επιπλέον tab, κλείνει σωστά τ' άγκιστρα κι έχει και δυνατότητα collapse για τις μεθόδους...
Ο λόγος για το Geany. Πρόκειται για lightweight IDE αλλά όχι τόσο βαρύ όσο τα κλασικά IDEs. Με βόλεψε αφάνταστα, ακόμα και γι' αυτά τα απλά πράγματα. Έχει ρυθμίσεις σχεδόν για το κάθε τι, αναλυτικές κι εύκολες στην κατανόηση.
Κλασικά, σε Ubuntu sudo apt-get install geany για εγκατάσταση.
Αντί επιλόγου, θέλω να επισημάνω ότι οι παραπάνω απαιτήσεις βασίζονται στον τρόπο γραφής της Java. Σε άλλες γλώσσες δεν ξέρω τί παίζει ή αν βολεύουν τα παραπάνω features...
Σάββατο 4 Ιουλίου 2009
Ubuntu + Subversion + NetBeans
Βρήκα λοιπόν 2 links για την όλη διαδικασία.
Δημιουργία τοπικού repo σε Ubuntu
Εδώ λίγη προσοχή. Η εντολή κανονικά είναι svnadmin create /home/vaibhav/svnrepo
NetBeans + local Subversion repo
Απ' το να κρατάς απλά backup τα sources σε άλλο φάκελο, είναι χίλιες φορές προτιμότερο το subversion. Άντε αλλιώς να δεις τις αλλαγές στον κώδικα...
Ξέρω ότι τώρα τελευταία το Git παίζει πολύ περισσότερο, ας το πάρουμε όμως σιγά σιγά.
Τρίτη 12 Μαΐου 2009
Java EOF
Η Java δεν έχει μέθοδο που ελέγχει αν έχουμε φτάσει στο τέλος του αρχείου (δε ξέρω αν είναι καλό ή κακό). Κάποιες τάξεις (η BufferedReader αν δεν κάνω λάθος) διαβάζουν αυτόματα μέχρι το τέλος του αρχείου. Επειδή εμάς μας είπε να χρησιμοποιήσουμε μόνο την ObjectInputStream για να διαβάσουμε, έπρεπε να διαβάζουμε κάθε επόμενο αντικείμενο αφού κάνουμε έλεγχο αν φτάσαμε στο τέλος του αρχείου.
Εκεί ήταν το πρόβλημά μου. Δε θυμόμουν πώς ελέγχεις αν έφτασες στο EOF. Τελικά είναι εξαιρετικά απλό. Η Java αν φτάσει στο τέλος του αρχείου, ρίχνει -1. Επομένως τσεκάρεις μόνο αυτό. Διαβάζεις κανονικά απ' το stream κι ελέγχεις αν είναι ίσο με -1. Αν είναι, βγαίνει απ' το loop.
Το έλυσα (τώρα δυστυχώς) μ' αυτόν τον τρόπο. Φυσικά βάζω int γιατί γράφαμε/διαβάζαμε ακεραίους.
Μάθημα λοιπόν, τώρα ξέρουμε τί να κάνουμε αν μας ζητούν συγκεκριμένες τάξεις...
Πέμπτη 9 Απριλίου 2009
MySQL Rules!!!

Κυριακή 5 Απριλίου 2009
Creating the GUI...
Το μόνο που πρέπει να βρώ τώρα, είναι πού θα βάζω τις βοηθητικές μεθόδους (τις οποίες π.χ. καλώ σε άλλη μέθοδο) και πού θα δημιουργώ τ' αντικείμενα που θα "τρέχουν" στο πρόγραμμα...
Έχω κανα 2 προγραμματάκια στο μυαλό μου οπότε θα φάω πολύ trial-and-error καταστάσεις...
Το κακό είναι ότι δεν έχω πολλή υπομονή και θέλω να βλέπω αποτελέσματα άμεσα (κακή τακτική και πρέπει να την αλλάξω), οπότε να κάτσω να διαβάσω οδηγούς ψιλο-αποκλείεται. Ειδικά τώρα που έχω να κάνω και 2 εργασίες για τη σχολή (η μία σε VB.NET που λέγαμε... μπλιαχ), kiss the tutorials goodbye!!!
Τετάρτη 25 Μαρτίου 2009
VB.NET Multiline Comments...
Πάλι καλά που έβαλαν επιλογή στον editor, γιατί αλλιώς θα μιλούσαμε για τις μεγαλύτερες μαλακίες ever...
Ψάχνω εν τω μεταξύ να βρώ πώς αλλάζει το πλήκτρο με το οποίο θα συμπληρώνεται το code completion απ' το Intelisense. Δε με βολεύει το tab ρε γαμώτο. Μέχρι στιγμής δε βρήκα τέτοια επιλογή. Αν κι αυτό δε μπορείς να το αλλάξεις...
Πέμπτη 12 Φεβρουαρίου 2009
NetBeans Starter Kit - Πολύ Quick Tour
Ξεκινώντας το δισκάκι βλέπουμε αυτό:

Δεύτερη καρτέλα και βρισκόμαστε στη σελίδα των screencasts:




Τετάρτη 11 Φεβρουαρίου 2009
NetBeans IDE 6.5 ML DVD Starter Kit
Ακόμα το κατεβάζω βέβαια, δε το έχω τσεκάρει ακόμα αλλά φαίνεται και γαμώ!!!
Software:
- NetBeansTM IDE 6.5 ML (English, Simplified Chinese, Brazilian Portuguese, and Japanese)
- NetBeansTM IDE 6.5 for JavaFX 1.0
- JDK Update 6 Update 11
- GlassFishTM V2 UR2 and v3 Prelude
- Apache Tomcat 6.0.18
Documentation & Tutorials:
- NetBeans IDE Documentation and Video (in English, Simplified Chinese, Brazilian Portuguese, Japanese and Russian)
- "Java Programming with Passion!" course by Sang Shin based on NetBeans IDE 6.5
- Java Platform API Specification
- The Java Tutorials
Εντάξει ΟΚ, όλα αυτά μπορούν να βρεθούν κι online αλλά να τα έχεις όλα στο pc σου μαζεμένα είναι μεγάλη υπόθεση.
original post
Τρίτη 2 Δεκεμβρίου 2008
C# Coding Guidelines and Best Practices
Σάββατο 22 Νοεμβρίου 2008
Happy developer :)
Καταρχήν, η πρώτη μου εφαρμογή με γραφικό περιβάλλον είναι γεγονός! Τώρα ειδικά που γύρισα σε C#, μ' αρέσει ακόμα περισσότερο που άρχισα να τα καταφέρνω. Anyway, ένας απλός Password Generator είναι η εφαρμογή. Απολύτως λειτουργική στην πρώτη έκδοση, ιδέες υπάρχουν για ενσωμάτωση λειτουργιών, ριζικές αλλαγές θα γίνουν σε μετέπειτα εκδόσεις, εν ολίγοις άρχισα και δε σταματάω! Έχω ήδη σημειώσει να φτιάξω άλλα 6 προγράμματα (το ένα ξεκίνησε ήδη αλλά κόλλησα σε βλακεία).
Ξεκίνησα να φτιάχνω και το website. Μέχρι στιγμής μόνο το layout έχω φτιάξει και το ανέβασα δοκιμαστικά (κυρίως θέλω να ρωτήσω κάποια πράγματα), μες στο σαββατοκύριακο όμως θ' ανέβει υλικό (developer θέλοντος ;P ).
Λοιπόν, πάω σιγά σιγά για ύπνο γιατί η λάμπα του γραφείου μ' έχει σκάσει τόσες ώρες...
I'll keep you posted
Παρασκευή 21 Νοεμβρίου 2008
Posting code snippets
Δεν φαίνεται πολύ καλύτερα;
Gist Code:
Paistie Code:
Το καλό είναι ότι καμία απ' τις 2 υπηρεσίες δε χρειάζεται registration, απλά copy & paste. Σίγουρα πάντως προτιμώ το gist αφού έχει επιλογή για περισσότερες γλώσσες (C# για παράδειγμα).
Πέμπτη 13 Νοεμβρίου 2008
DZone Refcardz
Αν πας από πάνω αριστερά στο DZone Network > Refcardz, βρίσκεσαι σε μια πολύ καλή υλοποίηση για εργαλεία developing.
Πρόκειται στην ουσία για "σκονάκια" ενός συγκεκριμένου θέματος, ένα pdf που μπορείς να έχεις συνεχώς μαζί σου με μαζεμένες διάφορες πληροφορίες.
Εγώ κατέβασα πρώτα πρώτα το RefCard για Core Java. Έχει σχεδόν τα πάντα. Κάνει ένα τάχιστο reference στη γλώσσα. Πάρτε λίγο μάτι.


Γυρνώντας στα RefCardz που έχουν φτιάξει, αναφέρω κάποια ακόμα που μου κίνησαν το ενδιαφέρον. Core CSS, Getting Started With MyEclipse, PHP, Core .NET, C#, Getting Started With Ajax, κι έχει ένα σωρό άλλα.
Το κατέβασμα των RefCardz είναι δωρεάν, μόνο που κατά τη διαδικασία εγγραφής θεωρούν ότι είσαι επαγγελματίας developer (δηλ. required fields) ζητώντας πληροφορίες για την εταιρία που δουλεύεις, τί θέση έχεις, πόσα άτομα απασχολεί η εταιρία κλπ.
Anyway, ρίξτε μια ματιά γιατί μπορεί να βρείτε κάτι που θέλετε.
Τετάρτη 12 Νοεμβρίου 2008
GUI Building
Όπως και να το κάνουμε, το .NET χρησιμοποιείται ολοένα και περισσότερο. Γιατί λοιπόν να μην ασχοληθώ με τέτοια γλώσσα; Ναι ΟΚ, το Java Swing είναι cross-platform κλπ, στην τελική τί με νοιάζει;
Όταν θα βγώ να δουλέψω (ελπίζω δηλαδή), τον άλλο δε θα τον ενδιαφέρει αν η εφαρμογή που θα του κάνω τρέχει και σ' άλλες πλατφόρμες. Σίγουρα η εφαρμογή θα είναι για Windows. Γιατί λοιπόν να χρησιμοποιήσω Java κι όχι κάτι μου θα μου δώσει το εκτελέσιμο πρόγραμμα στο άψε σβήσε χωρίς πολλά φρου-φρου κι αρώματα. Αυτό είναι άλλωστε το ζητούμενο.
Στην τελική εντάξει, για δική μου τρέλα κάνω το GUI και σε Java, δε με εμποδίζει κανείς.
Και μην ξεχνάμε ότι η C# (αυτήν επέλεξα για .NET γλώσσα) έχει δανειστεί πολλά από Java και C++, επομένως θα μου είναι πιο εύκολη στην εκμάθηση.
Θέλω πάντως να συγκρίνω το GUI building σ' αυτές τις δύο γλώσσες. Έχω την εντύπωση (ακόμα κι από τώρα) ότι η C# είναι πιο rapid κατάσταση, σ' αντίθεση με τη Java που ναι μεν έχω κάποια εμπειρία, έχει χίλια-δυο πράγματα που σιγά μη χρησιμοποιήσω ποτέ.
Αυτό το MSDN ρε παιδί, τί γαμάτο που είναι! Έχει τα πάντα. Κατέβασα μόνο την έκδοση για C# αλλά είναι και γαμώ! Έχει τα πάντα που χρειάζεται κάποιος. Ένα γρήγορο οδηγό, διάφορες πληροφορίες για το Visual C# Studio, το C# Reference, to .NET Framework... Θησαυρός λέμε!
Άντε να δούμε, θα κάνω κανα προγραμματάκι μέχρι τα Χριστούγεννα ή όλο μαλακίες λέω;
Μην απαντήσετε στο τελευταίο :P
Πέμπτη 23 Οκτωβρίου 2008
Assembly 8086
Εντάξει το μάθημα είναι του δευτέρου εξαμήνου (άσχετα αν εγώ το πήρα στο έβδομο) αλλά και πάλι. Σίγουρα μόνο για "γεύση" μας το κάνουν, δε υπάρχει άλλη εξήγηση. Ναι ΟΚ, τρελή καινοτομία ο 8086 επεξεργαστής, έκανε πράγματα που κανονικά δεν θα έπρεπε (με την καλή έννοια) αλλά ρε γαμώτο τί με βάζεις να προγραμματίσω σε Assembly;
Μια απλή πρόσθεση να θέλεις να κάνεις και να εκτυπώσεις ένα μήνυμα μαζί με το αποτέλεσμα, γράφεις 20 σειρές κώδικα.
Δείτε εδώ:
TITLE ADDITIONΌλο αυτό για να εκτυπώσει: APOTELESMA και 7 στην από κάτω γραμμή.
CODE SEGMENT
ASSUME CS:CODE,DS:DATA
ARXI:
MOV AX,DATA
MOV DS,AX
MOV AL,NUM1
ADD AL,NUM2
MOV BL,AL
LEA DX,MSG
MOV AH,9H
INT 21H
MOV DL,BL
ADD DL,30H
MOV AH,2
INT 21H
CODE ENDS
DATA SEGMENT
NUM1 DB 3
NUM2 DB 4
MSG DB 'APOTELESMA: ',13,10,'$'
DATA ENDS
END ARXI
Βέβαια στην αρχή είχα πρόβλημα με την Assembly 8086, καθυστέρησα να διαβάσω αλλά με λίγη προσπάθεια τα κατάφερα και γουστάρω να πώ την αλήθεια. Μπήκαμε τώρα σε loop, jump και compare κι έχει φάση.
Και πάλι όμως δεν καταλαβαίνω γιατί μας το διδάσκουν. Λες και θα πάει κανένας να γίνει cracker.
Τετάρτη 15 Οκτωβρίου 2008
DZone feeds
Αλλά ρε γαμώτο, με τόση ανανέωση κάθε μέρα δεν προλαβαίνεις να διαβάζεις. Φυσικά και δε διαβάζω κάθε link που έρχεται στον reader μου. Μαρκάρω αυτά που μ' ενδιαφέρουν και τα ξεσκαρτάρω άλλη ώρα. Αλλά και πάλι, μετά θα χρειάζεσαι πολύ χρόνο να κάνεις το ξεκαθάρισμα.
Την προηγούμενη βδομάδα είχαν μαζευτεί 120+ feeds απ' το DZone. Μου πήρε 3,5 ώρες να διαβάσω τους τίτλους, να μαρκάρω αυτά που θέλω και μετά να διαβάσω αυτά που επέλεξα. Υπό κανονικές συνθήκες πού να βρεις 3,5 ώρες για κάτι τέτοιο. Ε βασικά ξεχάστηκα και δεν κατάλαβα πότε πέρασε η ώρα.
Πρέπει να βρώ ένα τρόπο να κάνω ακόμα γρηγορότερο scanning...
Κυριακή 29 Ιουνίου 2008
Binary
Εύλογα τον ρώτησαν οι άλλοι για ποιό λόγο θέλει να γράψει σε δυαδικό κι αυτός λέει "θέλω να μάθω κάτι καινούργιο a.k.a να περάσει το καλοκαίρι", ή κάτι παρόμοιο τέλος πάντων.
Πάνε καλά ρε; Καταλαβαίνουν τί θέλουν να κάνουν; Εδώ άλλοι κι άλλοι στη σχολή μου χρωστάνε ακόμα Προγραμματισμό Ι απ' το πρώτο εξάμηνο, ο άλλος να πούμε θέλει να γράψει σε δυαδικό!
Άραγε ο τύπος ήξερε ότι θα φάει τη ζωή του για να μάθει κάτι τέτοιο; Αλλά φαντάζομαι τέτοια ερώτηση από κάποιον μικρής ηλικίας θα έρχεται οπότε ένα έχω να πώ, καλά είσαι με τα pc games σου. Κόλλα εκεί πέρα κι άσε το δυαδικό γι' άλλους.
Τετάρτη 11 Ιουνίου 2008
Idea
Γιατί όλες οι ιδέες περί προγραμματισμού να μου 'ρχονται το βράδυ όταν νυστάζω; Και μετά δε μπορώ την άλλη μέρα να τις δουλέψω γιατί έχω άλλα μαθήματα να διαβάσω.
Έχω μαζέψει καμιά δεκαριά τετράγωνα χαρτάκια (γραφείου) με διάφορες ιδέες. Να δώ πότε θα κάτσω να τις γράψω.
Δευτέρα 5 Μαΐου 2008
Packages
Δε μπορώ να καταλάβω γιατί δε χρησιμοποιώ πακέτα για να οργανώνω τα source αρχεία μου. Είναι πιο λογικό να έχω 2-3 φακέλους με διάφορα αρχεία και να ψάχνω κάθε φορά ποιό θ' ανοίξω; Αυτό που κάνω είναι το λιγότερο μαζοχιστικό. Και να πώ ότι μ' αρέσει; Δε μ' αρέσει.
Βέβαια η αλήθεια είναι ότι δε δουλέψαμε και πολύ με πακέτα. Μας τα έδειξαν σ' ένα μάθημα, όταν πια μάθαμε(;) να ετοιμάζουμε τον κώδικα. Απ' την άλλη βλέπεις είναι πιο εύκολο να δουλεύεις χωρίς πακέτα, απ' τη στιγμή που μπορείς να δημιουργήσεις το φάκελο του εκάστοτε εργαστηρίου στη σχολή (πχ Lab5) κι εκεί μέσα να βάλεις τ' αρχεία που χρειάζεσαι μ' έν' απλό drag'n'drop απ' τους άλλους φακέλους. Ο compiler μετά θα κάνει τη δουλειά του. Κι εσύ θα την κάνεις, προς το παρόν τουλάχιστον.
Αν μαζευτεί αρκετό υλικό και χρειάζεσαι αρχεία είτε για μια συνδιαστική άσκηση ή για μια επανάληψη, τότε γίνεται το ψιλο-σώσε. Αρχεία σ' αυτό το φάκελο, αρχεία στον άλλο, βάλε και τις λυμένες ασκήσεις που μας έδωσαν απ' τη σχολή...
Ποιά είναι η απλή λύση; Τα πακέτα όπως είπα και πιο πάνω.
Κάνεις σ' ένα IDE ένα καινούργιο project πχ DataStructures. Έχεις μετά ένα πακέτο TheoryCode για τον κώδικα που δίνουν οι σημειώσεις της θεωρίας. Κάτω απ' αυτό, κάνεις ένα TheoryCodeTest για να τεστάρεις τον κώδικα.
Απ' τη στιγμή που χρησιμοποιούμε το πολύ 5-6 interfaces, κάνεις ένα πακέτο Interfaces και τα βάζεις όλα εκεί. Τις τάξεις με τα exceptions το ίδιο. Όταν χρειαστείς κάποια τάξη την κάνεις απλά import, δεν ανοίγεις σ' άλλο text editor το αρχείο. Κι έτσι αν χρειαστεί ν' αλλάξεις κάτι στον κώδικα, αλλάζεις εννοείται μόνο ένα αρχείο.
Καλά όλ' αυτά, απλά δε μας έδειξε κανείς πώς να δουλεύουμε σε ολοκληρωμένα περιβάλλοντα (σωστός κι αυτός που θα πεί "καλά ρε μεγάλε, δύσκολο να το καταλάβεις; Κάτσε ένα δίωρο κι είσαι μια χαρά") ή με πακέτα.
Πλάκα πλάκα, θα κάτσω να το κάνω μάλλον σήμερα το απόγευμα. Έχουμε άλλα 5 ακόμα εργαστήρια και θα συσσωρευτούν αρχεία.
Α ναι, πρέπει να βάζω σωστά comments στις τάξεις μου. Με το JavaDoc μετά, βγαίνει ένα documentation μούρλια!
Τετάρτη 23 Απριλίου 2008
NetBeans IDE 6.1
Δεν πέρασε πολύς καιρός απ' την αναβάθμιση σε 6.0.1 κι η έκδοση 6.1 βρίσκεται σε Release Candidate στάδιο.
Κάποια features μπορείτε να δείτε εδώ. Δε μπορώ να εκφέρω γνώμη μιας και δεν το έχω δουλέψει πολύ το πρόγραμμα, τουλάχιστον όμως η διαφορά στις επιδόσεις φαίνεται σημαντική.
Ελπίζω τώρα που θα βγει η καινούργια έκδοση, να κάτσω να το δουλέψω λίγο και να κάνω καμιά απλή εφαρμογή γιατί αλλιώς δε με βλέπω καλά. Δουλεύοντας με JCreator στη σχολή δε γίνεται και τίποτα. Όχι τίποτα, πήρα και βιβλίο για το NetBeans κι είναι ευκαιρία ν' ασχοληθώ. Άντε γιατί εδώ και 2 εξάμηνα λέω θα δουλέψω με IDE.