.Net vs Java

Συζητήσεις για γλώσσες προγραμματισμού και θέματα σχετικά με προγραμματισμό.
User avatar
AmmarkoV
Wow! Terabyte level
Wow! Terabyte level
Posts: 2838
Joined: Thu Nov 04, 2004 2:55 pm
Gender:
Location: Reloaded @ Santa Friday
Contact:

Post by AmmarkoV » Tue Mar 15, 2005 8:54 pm

Όμορφο το screenshot .. :)
Skeftomilos wrote:Ο object browser και το πολύ καλό documentation του VS ...
To documentation είναι η μεγαλύτερη υπόθεση αρχικά και έχεις δίκιο ,υπάρχει αλλά είναι ελειπές για απευθείας προγραμματισμό με Win32API ,όσο για τα DeleteDC DeleteObject , πάει πρώτα ένα DeleteObject στα objects και μετά DeleteDC για να κλείσει το context στο οποίο υπήρχε το Object :) Αλλιώς το Object μένει ξεκρέμαστο..
Είπα 2D γιατί όπως έχω ακούσει/διαβάσει τα καινούργια λειτουργικά Windows θα έχουν 3D GUI στο μέλλον οπότε αυτό συνεπάγεται αλλαγές στα πάντα και το Win32API θα αντικατασταθεί από ένα νέο core που θα συμπεριλαμβάνει μέσα του Direct X..
Επίσης οι GPU που σήμερα χρησιμέυουν κυρίως για παιχνίδια θα χρησιμοποιούνται πολύ εκτενέστερα από το λειτουργικό, το οποίο θα είναι αρκετά φανταζέ,και πολύ πιο βαρύ..
Δεν νομίζω λοιπόν πως η Java με το σκεπτικό με το οποίο λειτουργεί (λέγε με Virtual Machine) θα μπορέσει να ανταπεξέλθει.. Ο χρόνος θα δείξει..
(Πάντως εγώ έχω στα σκαριά και μία υλοποίηση των library calls σε OpenGL για να προλάβω το μέλλον.. :razz:)

Ξέρω από παλαιότερο thread πως o Einherjar έχει εμπειρία σε Java , έχει φτιάξει ένα Othello!
Παίρνω την ελευθερία να postarω το link :roll: --> ΟΤΟΤΗΕLΟ <--
Spoiler: εμφάνιση/απόκρυψη
I would love to change the world, but they won't give me the source code. Οι καθηγητές πληρώνονται από το δημόσιο αρα από όλους τους Έλληνες για να κάνουν τα μαθήματα. Όλοι οι Έλληνες θα έπρεπε να μπορούν να δουν τα μαθήματα τα οποία πληρώνουν! Tο πνευματικό έργο που επιτελείται με τα χρήματα του δημοσίου ΔΕΝ είναι μόνο δικό σας Όποιος δεν δίνει πανελλήνιες έχει δικαίωμα στην γνώση που πληρώνει [url=http://ammar.gr/gddg]gddg blog[/url]
Image
User avatar
Einherjar
Venus Project Founder
Venus Project Founder
Posts: 3751
Joined: Tue Jan 27, 2004 4:42 pm
Academic status: Alumnus/a
Gender:
Location: Washington DC, USA
Contact:

Post by Einherjar » Wed Mar 16, 2005 1:08 pm

Καλά αυτό δεν είχε καθόλου χρήση γραφικών. μόνο κάποιες εικονίτσες και από κει και πέρα υπερβολικό gui design.
η μόνη εκτεταμένη χρήση 2D γραφικών είχε γίνει σε μια απαλλακτική στα γραφικά πριν από 4 χρόνια. δεν είναι τίποτα ιδιαίτερο (πρωτόγονο ίσως). μπορείτε να το δείτε εδώ
[Better to understand a little than to misunderstand a lot]
User avatar
AmmarkoV
Wow! Terabyte level
Wow! Terabyte level
Posts: 2838
Joined: Thu Nov 04, 2004 2:55 pm
Gender:
Location: Reloaded @ Santa Friday
Contact:

Post by AmmarkoV » Wed Mar 16, 2005 1:20 pm

Εσύ Εinherjar έχεις ασχοληθεί με .Net , η Windows API καθόλου ?
H Java σε βολεύει για τέτοιου είδους δουλειές?
Spoiler: εμφάνιση/απόκρυψη
I would love to change the world, but they won't give me the source code. Οι καθηγητές πληρώνονται από το δημόσιο αρα από όλους τους Έλληνες για να κάνουν τα μαθήματα. Όλοι οι Έλληνες θα έπρεπε να μπορούν να δουν τα μαθήματα τα οποία πληρώνουν! Tο πνευματικό έργο που επιτελείται με τα χρήματα του δημοσίου ΔΕΝ είναι μόνο δικό σας Όποιος δεν δίνει πανελλήνιες έχει δικαίωμα στην γνώση που πληρώνει [url=http://ammar.gr/gddg]gddg blog[/url]
Image
User avatar
Einherjar
Venus Project Founder
Venus Project Founder
Posts: 3751
Joined: Tue Jan 27, 2004 4:42 pm
Academic status: Alumnus/a
Gender:
Location: Washington DC, USA
Contact:

Post by Einherjar » Wed Mar 16, 2005 3:09 pm

έχω ασχοληθεί με c++ .net όπου είχα φτιάξει το gui για μια εφαρμογή. Το βρήκα αρκετά ενδιαφέρον. μπορώ να πω ούτε πιο εύκολο, αλλά ούτε πιο δύσκολο από Java. μου πήρε βέβαια κάποιο χρόνο μέχρι να μάθω το API, τα managed extentions κλπ καθώς εξώ ήξερα μόνο ansi/iso cpp. όταν όμως το συνήθισα πήγαινε αρκετά γρήγορα
[Better to understand a little than to misunderstand a lot]
User avatar
Skeftomilos
bit level
bit level
Posts: 43
Joined: Fri Mar 04, 2005 8:08 am
Location: Ν.Κόσμος

Post by Skeftomilos » Thu Mar 17, 2005 7:34 am

EDIT: Ωραία τα προγράμματά σου Einherjar. Μου αρέσει το object model του Othello. :cool:

EDIT: AmmarkoV πιο είναι το Username & password για την Adrianna? ;)

Windows 3D GUI? Ενδιαφέρον! Η πρώτη μου κίνηση μόλις τα εγκαταστήσω θα είναι να βρω τον τρόπο απενεργοποίησης του. 2D και άγιος ο Θεός!
:)
AmmarkoV wrote:Δεν νομίζω λοιπόν πως η Java με το σκεπτικό με το οποίο λειτουργεί (λέγε με Virtual Machine) θα μπορέσει να ανταπεξέλθει.. Ο χρόνος θα δείξει..
Ως προς αυτό το .NET framework δε διαθέτει κάποιο πλεονέκτημα σε σχέση με τη Java καθώς η φιλοσοφία του είναι η ίδια. Προσωπικά δε νομίζω ότι αυτό είναι πρόβλημα για καμία από τις δύο τεχνολογίες. Ας είναι καλά ο JIT! Από τα λίγα που ξέρω νομίζω ότι στα Windows Longhorn το .NET θα πάψει να είναι ένα plug-in αλλά θα αποτελεί τον πυρήνα του λειτουργικού. Αν κάνω λάθος διορθώστε με.
The pure and simple truth is rarely pure and never simple. Ο μη νους δε σκέπτεται μη σκέψεις για το τίποτα.
User avatar
Einherjar
Venus Project Founder
Venus Project Founder
Posts: 3751
Joined: Tue Jan 27, 2004 4:42 pm
Academic status: Alumnus/a
Gender:
Location: Washington DC, USA
Contact:

Post by Einherjar » Thu Mar 17, 2005 11:37 am

Η λογική αυτό λέει. Δε πιστεύω να μη προωθήσει η microsoft αυτό το ανταγωνιστικό της προϊόν. Εκτός και αν έχει πάλι προβλήματα μονοπωλείου
[Better to understand a little than to misunderstand a lot]
User avatar
AmmarkoV
Wow! Terabyte level
Wow! Terabyte level
Posts: 2838
Joined: Thu Nov 04, 2004 2:55 pm
Gender:
Location: Reloaded @ Santa Friday
Contact:

Post by AmmarkoV » Thu Mar 17, 2005 12:57 pm

AmmarkoV πιο είναι το Username & password για την Adrianna? Wink

Η adrianna δεν είναι encrypted αν αυτό εννοείς , απλά το αρχείο είναι σε μορφή aps ("ΑmmarsPicturingSystem" :razz: ) , είναι δική μου εμπνευσή και σε μικρές φωτογραφίες με λίγες αλλαγές χρώματων αποδίδει καλύτερα από BMP,GIF δουλεύει σε 8bita χρώματα χωρίς απώλειες στις χρωματικές πληροφορίες και χωρίς να χρησιμοποιεί τον LZW (Lempel-Ziv-Welch) αλγόριθμο (Όπως τα GIF,PNG κτλ)
Τα προγράμματα μου όμως υποστηρίζουν και JPG και BMP και προσπαθώ να βάλω υποστήριξη για PNG..
Έχει καταφέρει κανείς να αποκωδικοποιήσει μόνος του PNG ??? :???: , κατέβασα επίσημα sources και documentation , αλλά δεν καταλαβαίνω την λογική :roll:
Ορίστε και μια φωτογραφία του αισθητικού αποτελέσματος του Demo για όσους βαριούνται :-D
Image
Spoiler: εμφάνιση/απόκρυψη
I would love to change the world, but they won't give me the source code. Οι καθηγητές πληρώνονται από το δημόσιο αρα από όλους τους Έλληνες για να κάνουν τα μαθήματα. Όλοι οι Έλληνες θα έπρεπε να μπορούν να δουν τα μαθήματα τα οποία πληρώνουν! Tο πνευματικό έργο που επιτελείται με τα χρήματα του δημοσίου ΔΕΝ είναι μόνο δικό σας Όποιος δεν δίνει πανελλήνιες έχει δικαίωμα στην γνώση που πληρώνει [url=http://ammar.gr/gddg]gddg blog[/url]
Image
Erevodifwntas
Gbyte level
Gbyte level
Posts: 1098
Joined: Thu Apr 22, 2004 2:18 pm
Academic status: Alumnus/a
Gender:
Location: In a Long Time Ago in A Galaxy far far away
Contact:

Post by Erevodifwntas » Thu Mar 17, 2005 4:52 pm

AmmarkoV wrote:
Ο πιο δύσκολος/γρήγορος τρόπος για να φτιάξει κανείς GUI είναι με κατευθείαν πρόσβαση στο Video backbuffer,
Πραγματικά το να κάθεσαι να γράφεις κατευθείαν στη μνήμη της κάρτας γραφικών είναι απλά μαζωχισμός (το είχα κάνει ένα φεγγάρι, αλλά ευτυχώς το έκοψα γρήγορα... όμως χουσούρια μου άφησε -σε πρόλαβα MikeM). Το να αλλάζεις bit-bit τα χρώματα είναι όντως πολύ πιο γρήγορο, από ότι τα μολύβια του MFC και του Win32, αλλά δυστυχώς όσα γράφεις λειτουργούν στην καλύτερη περίπτωση μόνο στην κάρτα γραφικών σου (π.χ. παλιότερα πολλά παιχνίδια γράφονταν σε 24bit χρώμα για να καταλαμβάνουν λιγότερη μνήμη... έλα όμως που ο σύχρονες κάρτες της nVidia (GeForce και μετά - δε θυμάμαι για την ATI) χρησιμοποιούν 32bit αναγκαστικά.
AmmarkoV wrote: τώρα για τη διαδικασία με την οποία μπορεί να έχει κάποιος το ίδιο αποτέλεσμα μέσω Win32 calls δεν μπορώ να πώ πως είναι πάρα πολύ χρονο-απαιτητική και όντας κατευθείαν portable σε Win98/ME/NT/2000/XP (και ακόμα και σε 64bitα από ότι γνωρίζω..) έχει και το ατού του αυτοσχεδιασμού αλλά και portability,τα προγράμματα δε που χρησιμοποιούν τις βιβλιοθήκες δεν απαιτούν πρόσθετη δουλειά από την στιγμή που δημιουργείς μόνος σου κ έναν designer σαν κερασάκι στην τούρτα.. :-D
Το Win32 είναι σχετικά πιο εύκολο, αλλά όχι τόσο ώστε να πούμε ότι ικανοποεί η χρονοαπόδοσή της. Απαιτεί πάρα πολύ δουλειά και κρύβει πολύ λίγα πράγματα από το χρήστη (αν κοιτάζεις κατευθείαν τον πυρήνα, μπορεί και να τυφλωθείς :-) Προσωπικά το προτιμώ γιατί σου δίνει μεγάλη ελευθερία, αλλά με μεγάλο αντίτιμο (δεν είναι και τόσο C++, άντε μέχρι C+).

(συνδιασμός Win32 και κατευθείαν γράψιμο στη μνήμη ήταν το Othelo για την A.I. -έλα HdKilLer θάψ' το πάλι ;-)

Το MFC έκανε το προγραμματισμό για Windows λίγο πιο C++ like, αλλά δυστυχώς έκοψε την ελευθερία που εξασφάλιζε το Win32.

τώρα φτάσαμε και στο .Net... (a.k.a. managed code).
Πραγματικά το να σου φτιάχνει το 20-30% του κώδικα μόνο του (και λίγο βάζω), ναι είναι χλίδα!!!! σου λύνει τα χέρια και περνάς πολύ περισσότερο χρόνο στην εξέλειξη του πραγματικού κώδικα και όχι για τα διαδικαστικά.
Τώρα αν μιλάμε για γραφικά, το managed DirectX όντως κατευθύνεται προς τη σωστή κατεύθυνση. Tα αντικείμενα (αν και ψεύτικα -στην ουσία είναι ένα απλό τύλιγμα των αντίστοιχων για C++) βοηθούν αρκετά τον developer. Από εκεί και πέρα όμως είσαι τελείως μόνος σου. Το Documentation αν και της M$ είναι απαράδεκτο (από την έκδοση b στην έκδοση c έγιναν κάποιες αλλαγές προς τη σωστή κατεύθυνση, αλλά όποιος το ανοίξει σίγουρα θα βρει διασκεδαστικά το σχόλιο που το συνοδεύει). Επίσης άλλο ένα πρόβλημα είναι ότι (τουλάχιστον πριν από 8 μήνες), ο google επέστρεφε ουσιαστικά μόνο 2 sites που είχαν σχέση με το managed DirectX
(ένα project μπορείτε να βρείτε στο http://venus.cslab.aueb.gr/~mikem/tinke ... ather.html
(δε θα πρότεινα να το εγκαταστήσετε, αφού θα πρέπει να έχετε NET Framework 1.1
Managed DirectX 9.0b ή νεότερο
Microsoft Speech SDK 5.1 )
Last edited by Erevodifwntas on Thu Mar 17, 2005 9:42 pm, edited 1 time in total.
Go To Statement Considered Harmful (Τιτλος δημοσίευσης του Edsger Dijkstra).

my personal site
User avatar
Skeftomilos
bit level
bit level
Posts: 43
Joined: Fri Mar 04, 2005 8:08 am
Location: Ν.Κόσμος

Post by Skeftomilos » Thu Mar 17, 2005 9:26 pm

Ωραίο η οθόνη με το tiled background και το 3D dialog box AmmarkoV, αλλά μετά τη γίνεται? Δε βγάζει η Adrianna το βρακάκι της? Γιατί εγώ αυτό υπέθεσα ότι θα είναι το κλου του προγράμματος!
[-o< \:D/ :smt055
BTW, το demo.zip αρχείο είναι 1,37M αντί για 714KB. Eπίσης το screenshot που επισύναψες είναι PNG 24bit με μέγεθος 63,1ΚΒ. Σε PNG 8bit 256 colors θα ήταν 26,2KB με αόρατες στο μάτι αλλαγές. Ακόμα και σε PNG 8bit 64 colors (23,8KB) παραμένει σχεδόν πιστό αντίγραφο.
The pure and simple truth is rarely pure and never simple. Ο μη νους δε σκέπτεται μη σκέψεις για το τίποτα.
User avatar
AnINffected
Gbyte level
Gbyte level
Posts: 1935
Joined: Fri Jul 30, 2004 7:12 am
Location: There and Back Again

Post by AnINffected » Fri Mar 18, 2005 1:46 am

mikem ευχαριστώ για τις απαντήσεις σου ήσουν πολύ κατατοπιστικός!
mikem4600 wrote:Κάποια στιγμή της ζωής μου με είχε πιάσει μία κρίση με το DirectX, και ξεκίνησα και έγραφα κώδικα σε απλή ταπεινή C, και χύμα στο Win32 API. Εκεί ανακάλυψα ότι ακόμα και τα controls δεν ήταν στην πραγματικότητα controls αλλά... παράθυρα, και μάλιστα πλήρη, με χερούλια (hWnds)...
Αυτό που προσφωνείς τα hWnds χερούλια είναι ανεπανάληπτο!!! :smt042
mikem4600 wrote:Ευτυχώς, αυτή η παραζάλη μου πέρασε γρήγορα (τότε έγραφα πλέον όλα τα resources με το χέρι, και για να φτιάξω ένα, μοναδικό, άδειο, ταπεινό παραθύρι, το οποίο να έχει απλώς ένα ελεεινό title bar έπρεπε να γεμίσω 3 structs και να καλέσω καμιά ντουζίνα συναρτήσεις :!:).
Αυτό συνειδητοποίησα και εγώ οταν δεν είχα βρεί ακόμη κάποιον designer ο καψερός!Και απορώ αν μπορεί κάποιος ν'αντέξει τόση πληκτρολόγηση για να φτιάξει μισό κουμπί... :smile:
Ταπεινή μου γνώμη είναι πως η απ'ευθείας σχεδίαση GUI σε w32 api αξίζει το κόπο μόνο οταν θέλεις να φτιάξεις ας πούμε ένα πολύ ιδιαίτερο control και δε σου δίνεται η δυνατότητα αυτή από κανένα άλλο API/IDE κλπ.
Αυτό που δεν έχω βρεί τόσο καιρό είναι ένας GUI designer που να βασίζεται στην κλασσική C/C++.Αληθεύει η υποψία μου πως κάτι τέτοιο δεν υπάρχει;
mikem4600 wrote:
AnINffected wrote:Το πόσο βάρος θα ρίξεις σε CPU cycles ή στο ανθρωποκεντρικό κομμάτι εξαρτάται από την εκάστοτε εφαρμογή.Όπως λέει και ο κ. Μαλεύρης στα Θέματα Τεχν.Λόγ. στο σύστημα ενός αεροδρομίου που βρίσκεται σε συνθήκες κανονικής λειτουργίας σ'ενδιαφέρουν οι κύκλοι και όχι το interface ή πόσο καθαρογραμμένος είναι ο κώδικας.!Χωρίς αυτό να σημαίνει οτι η αναγνωσιμότητα και η συντηρισιμότητα έρχονται σε δεύτερη μοίρα, καθώς παίζουν σημαντικότατο ρόλο σε κάθε έργο.
Όμως ο έξυπνος προγραμματισμός σε καμία περίπτωση δεν υπάρχει μόνο για τα μάτια του συγγραφέα του: υπάρχει για να επαναχρησιμοποιείται και για να προωθεί την εξέλιξη!Αντίθετα η συντηρησιμότητα, η αναγνωσιμότητα κλπ. δεν είναι εξελίξιμοι τομείς από project σε project (δεν είναι static Wink) .Γι'αυτό και νομίζω πως απο τη μεριά του ο HdkiLLeR πολύ καλά κάνει και ενδιαφέρεται για την ταχύτητα.
Άσε που δεν πρέπει να υποτιμούμε τα κυκλάκια...Με κάθε γραμμή κώδικα, τα συνολικά CPU cycles στην ουσία πολλαπλασιάζονται!Όπως δεν πρέπει να υποτιμάς εναν αλγόριθμο που έχει εκθετικό χρόνο εκτέλεσης.
Δεν είπα ότι θα χρησιμοποιούσα ποτέ εκθετικούς αλγορίθμους ελαφρά τη καρδία, ή ότι θα τα άφηνα όλα στην τύχη τους, γι' αυτό άλλωστε τόνισα σε βαθμό που δεν επηρεάζει τους στόχους μίας εφαρμογής ότι θα προτιμούσα την συντηρησιμότητα/αναγνωσιμότητα. Αντίστοιχα προβλήματα με αυτά που αναφέρεις υπάρχουν και στην αντίθετη περίπτωση (π.χ. θυμάμαι στην Επικοινωνία Ανθρώπου Υπολογιστή μας είχαν πει για ένα πυρινικό εργοστάσιο στις ΗΠΑ που οδηγήθηκε σε meltdown επειδή δεν είχε προσεγμένο interface η εφαρμογή διαχείρισής του).
Συγγνώμη, φαίνεται δε κατάλαβα καλά το νόημα της φράσης "σε βαθμό που δεν επηρεάζει τους στόχους μίας εφαρμογής".Έτσι ναι έχεις περισσότερο δίκιο.Αλλά επιμένω στο οτι ένας αποδοτικός αλγόριθμος δεν υπάρχει απλά για να τον χαίρονται οι δημιουργοί του.
Πάντως το αντιπαράδειγμα σου με την Επικοινωνία το βρήκα πολύ έξυπνο!
Skeftomilos wrote:Σχετικά με την ταχύτητα εκτέλεσης μίας εφαρμογής, αυτή σε καμία περίπτωση δεν είναι απόλυτη αξία. Είναι μία από τις συνιστώσες κατά την παραγωγή του λογισμικού και ανταγωνίζεται άλλες προτεραιότητες. Ένα πρόγραμμα δεν φτιάχνεται στο κενό, υπάρχει ημερομηνία παράδοσης και διαθέσιμο budget. Ο manager του έργου είναι υπεύθυνος για τη σωστή κατανομή πόρων προκειμένου να παρουσιάσει τελικά το καλύτερο δυνατό προϊόν σε σχέση με τους παραπάνω περιορισμούς. Ο νούμερο ένα πολύτιμος πόρος δεν η CPU αλλά ο χρόνος εργασίας του/των προγραμματιστών. Μάλιστα η συγκριτική αξία αυτού του πόρου εμφανίζει μόνιμη και ταχεία αύξηση καθώς η ανθρώπινη παραγωγικότητα μένει σταθερή ενώ το hardware γίνεται συνεχώς φθηνότερο και αποδοτικότερο. Στο παράδειγμα με το αεροδρόμιο π.χ. εάν μία διαδικασία μπορεί να επιταχυνθεί το ίδιο με 30 ώρες πρόσθετης προγραμματιστικής εργασίας ή με την προσθήκη μίας κάρτας μνήμης 256M, τι θα πρέπει να προτιμήσουμε? Είναι μάλλον απίθανο να μη μπορέσουμε να βρούμε καλύτερους τρόπους αξιοποίησης του πολύτιμου ανθρωποχρόνου. Ένα ενδιαφέρον άρθρο επί του θέματος με εύγλωττο τίτλο είναι το Optimizing Person-time, Not Computer-Time.
Δεν υποστήριξα ότι η ταχύτητα εκτέλεσης είναι απόλυτη αξία, αλλά απλώς οτι δε πρέπει να την υποτιμούμε σε γενική βάση.
Προσπαθώντας να αντικρούσω πάντως τα λεγόμενα σου (και για τη χαρά της συζήτησης) θα σου πώ: Optimizing Computer-Time, Not
Computer-(Horse)Power! (btw ευχαριστώ για το link ;))
Δε συμφωνώ με την άποψη του αρθρογράφου οτι (...) many programs are run only periodically, and take effectively no time to execute (...), διότι, από τη μία, υπάρχου πολλά προγράμματα που (πρέπει να) τρέχουν μονίμως και, από την άλλη, η απίστευτη ταχύτητα εκτέλεσης μπορεί να είναι απατηλή, σε μερικές "ευαίσθητες" εφαρμογές.Πάρτε για παράδειγμα το πρόβλημα αυτού του κακόμοιρου του Πλανώδιου Πωλητή...
Όσον αφορά τα λεγόμενα σου, αν η επίλυση ενός προβλήματος μπορεί να επιταχυνθεί με αλγοριθμικό τρόπο τότε θα προτιμούσα αυτόν από τα αντίστοιχα έξοδα σε hardware γιατί με το δεύτερο τρόπο φτάνουμε στους υπερ-υπολογιστές δισεκατομμυρίων που είναι βέβαια τρομερά χρήσιμοι αλλά οι απαιτήσεις τους (μας) σε ισχύ δεν θα ικανοποιηθούν ποτέ.
Αντίθετα, με έναν έστω ανεκτό (δηλ. όχι εκθετικό) αλγόριθμο έχουμε τελειώσει μια και καλή.
Να σου αντιπαραθέσω και τον πρόλογο στο Max Planck Institute for Computer Science:
Max Planck Inst. wrote:While the acceleration of hardware has been a landmark of progress in computing technology in the past few decades, the computing enhancements that it provides is dwarfed by the increase in speed, performance, and robustness resulting from new algorithms. As a point in case, the status of hardware and algorithms in 1970 allowed to compute an optimal tour of a traveling salesman (a classical optimization problem and accepted benchmark for computing power) through 120 cities. Increasing the number of cities from n to n+1 leads to a multiplicative increase of the number of possible tours by a factor of n. Thus, relying only on the increase of hardware speed, with today’s technology, and the algorithms or 1970 we could find optimal tours among only 135 cities. It is the progress in algorithms that, today, enables us to find optimal tours between many thousand of cities. Relying only on progress in hardware this performance would not be achievable in hundreds of years.
Skeftomilos wrote:
AnINffected wrote:η συντηρησιμότητα, η αναγνωσιμότητα κλπ. δεν είναι εξελίξιμοι τομείς από project σε project,
δεν είναι static
Ο συλλογισμός αυτός έχει πολύ ενδιαφέρον. Φοβάμαι όμως ότι ίσως δεν τον κατανοώ απολύτως. Αν ένας προγραμματιστής φτιάξει ένα μη συντηρήσιμο - μη αναγνώσιμο πρόγραμμα, μάλλον και το επόμενο που θα φτιάξει θα έχει τα ίδια χάλια. Η προχειρότητα εθίζει και το κουσούρι πρέπει να κόβεται με το μαχαίρι όσο είναι νωρίς.
Δέν εννοούσα ακριβώς αυτό που λές, αλλά γενικότερα οτι π.χ. για να φτιάξεις ένα πιό αποδοτικό αλγόριθμο/πρόγραμμα μπορείς να βασιστείς σε/βελτιώσεις αλγορίθμους άλλων, ενώ η δουλεία του να κάνεις το πρόγραμμα συντηρήσιμο/αναγνώσιμο εξαρτάται από την κρίση του εκάστοτε προγραμματιστή η/και από την εφαρμογή και δε μπορεί να μεταφερθεί αυτούσια σε άλλο project.Μπορεί βέβαια να σε διδάξει ή να σε βοηθήσει κάποιος πιο έμπειρος αλλά δεν είναι εγγυημένο το οτι οι τομείς αυτοί θα βελτιώνονται συνεχώς.
The Analytical Engine has no pretensions to originate anything. It can do whatever we know how to order it to perform (...)
Ada Lovelace


Θέλω και εγώ να παίξω D&D λέμε!!! :-( :-(
User avatar
AmmarkoV
Wow! Terabyte level
Wow! Terabyte level
Posts: 2838
Joined: Thu Nov 04, 2004 2:55 pm
Gender:
Location: Reloaded @ Santa Friday
Contact:

Post by AmmarkoV » Fri Mar 18, 2005 5:01 pm

Ωραίο η οθόνη με το tiled background και το 3D dialog box AmmarkoV, αλλά μετά τη γίνεται? Δε βγάζει η Adrianna το βρακάκι της? Γιατί εγώ αυτό υπέθεσα ότι θα είναι το κλου του προγράμματος!
Pray Dancing
Διαβάζοντας αυτό συνειδητοποίησα το λάθος μου , ξανακατέβασε την updated έκδοση
Demo.zip - 838,5 KB
Username : adrianna
Password : naked
:smt038 :smt007 ;)
το screenshot που επισύναψες είναι PNG 24bit με μέγεθος 63,1ΚΒ. Σε PNG 8bit 256 colors θα ήταν 26,2KB με αόρατες στο μάτι αλλαγές. Ακόμα και σε PNG 8bit 64 colors (23,8KB) παραμένει σχεδόν πιστό αντίγραφο
Εγώ έκανα printscreen , πέρασα στο Windows Paint την εικόνα , clipara ένα κομμάτι και έκανα save σε PNG μορφή , προφανώς ο Windows encoder σώζει μόνο σε 24bit format .. :roll:

Και εγώ είμαι της γνώμης πως είναι χαζό να βασιζόμαστε στην δύναμη του Hardware για να είναι αποδωτικά τα προγράμματα μας την στιγμή που με περισσότερη δουλειά εκ μέρους μας μπορούμε να τα επιταχύνουμε..
Και δεν χρειάζεται κάποιο τόσο δύσκολο πρόβλημα όσο του πλανόδιου πωλητή!
Είναι δηλαδή σαν κάποιος σε μια βάση δεδομένων να χρησιμοποιεί πεισματικά bubbleshort και ενώ γνωρίζει πως χαντακώνει το σύστημα να περιμένει τον καινούργιο επεξεργαστή Χ στον οποίο ο κώδικας θα τρέχει πλέον αρκετά ικανοποιητικά!
Επίσης χρησιμοποιώντας το ένα interface πάνω από το άλλο , δημιουργώντας ένα είδος emulation, δηλαδή αν προσαρμώσω το GUI μου μέσω μιας ενδιάμεσης library ωστε να δουλέυει σε Java , για να χρησιμοποιήσει το Swing API(?Είναι API , δεν έχω ασχοληθεί οπότε μπορεί να λέω βλακεία?) , το οποίο θα τρέχει καθαρά σε Java , η οποία τρέχει τελικά μέσω της VM η οποία χρησιμοποιεί η ίδια τα Windows , τα οποία χρησιμοποιούν το hardware και ο πιο γρήγορος αλγόριθμος να είναι θα καθυστερεί..
Γι`αυτό γράφεις το πρόγραμμα με όσο το δυνατόν λιγότερα στάδια και είναι πιο γρήγορο εγγενώς από μόνο του..
Οι low level λύσεις είναι οι καλύτερες κατα την γνώμη μου :!:
Spoiler: εμφάνιση/απόκρυψη
I would love to change the world, but they won't give me the source code. Οι καθηγητές πληρώνονται από το δημόσιο αρα από όλους τους Έλληνες για να κάνουν τα μαθήματα. Όλοι οι Έλληνες θα έπρεπε να μπορούν να δουν τα μαθήματα τα οποία πληρώνουν! Tο πνευματικό έργο που επιτελείται με τα χρήματα του δημοσίου ΔΕΝ είναι μόνο δικό σας Όποιος δεν δίνει πανελλήνιες έχει δικαίωμα στην γνώση που πληρώνει [url=http://ammar.gr/gddg]gddg blog[/url]
Image
User avatar
Skeftomilos
bit level
bit level
Posts: 43
Joined: Fri Mar 04, 2005 8:08 am
Location: Ν.Κόσμος

Post by Skeftomilos » Sat Mar 19, 2005 5:13 am

Για τα screenshots ένα πολύ καλό free πρόγραμμα είναι το MWSnap. Ούτε αυτό έχει όμως επιλογή για Color Mode: Paletted 8bit. Έτσι χρησιμοποιώ μετά το Corel Photo Paint για να αλλάξω το Color Mode στα screenshots. Επιλέγω όσο γίνεται μικρότερο αριθμό χρωμάτων, συνήθως 64, και σώζω πάντα σε PNG. Χάνεται βέβαια λίγη πληροφορία - ειδικά στα gradients - αλλά είναι πολύ προτιμότερο από τα artifacts που προσθέτει το JPEG γύρω από τα γράμματα. Και βέβαια τα αρχεία αποκτούν εντυπωσιακά μικρό μέγεθος (bytes). Η μείωση των χρωμάτων (από τα standard 256) εκτός του ό,τι μειώνει την παλέτα, καθιστά αποτελεσματικότερο τον αλγόριθμο συμπίεσης. Προσοχή, μιλάμε πάντα για windows screenshots, όχι φωτογραφίες!

Οι λύσεις που έχουν ανακαλυφθεί για το πρόβλημα του πλανόδιου πωλητή θα έχουν βρει σίγουρα ένα σωρό εφαρμογές σε τομείς όπως networking και αλλού. Πραγματικά όμως δε νομίζω ότι βοήθησαν ποτέ αυτούς που προκάλεσαν την αρχική διατύπωση του προβλήματος: τους πλανόδιους πωλητές. Από την εμπειρία μου ως πωλητής σε όλη σχεδόν την Ελλάδα μπορώ να πω ότι ο καθορισμός της διαδρομής δεν είναι συνήθως δύσκολη υπόθεση και εκτός από την απόσταση μεταξύ των πόλεων εξαρτάται και από πολλούς άλλους παράγοντες:

α) Αριθμός πελατών σε κάθε πόλη.
β) Ωράρια των καταστημάτων σε κάθε πόλη.
γ) Αναγκαιότητα επίσκεψης συγκεκριμένων πελατών σε συγκεκριμένες ώρες.
δ) Ύπαρξη ή όχι αξιοπρεπών ξενοδοχείων για διανυκτέρευση σε κάθε πόλη.
ε) Επικίνδυνες διαδρομές που πρέπει να αποφεύγονται νυχτερινές ώρες.
στ) Συνήθεια. Η τυχόν αλλαγή του πελατολογίου μπορεί να κάνει ένα πολύ διαφορετικό δρομολόγιο συντομότερο, αλλά τέτοιες ριζικές αλλαγές αποσυντονίζουν τον πωλητή.

Στο θέμα της ταχύτητας των αλγορίθμων νομίζω ότι έχουμε χωριστεί σε δύο στρατόπεδα:

1) Η ταχύτητα εκτέλεσης είναι πολύ σημαντική, εκτός από τις περιπτώσεις που δεν είναι.
2) Η ταχύτητα εκτέλεσης δεν είναι σημαντική, εκτός από τις περιπτώσεις που είναι.

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

Παράδειγμα 1ο: Μόλις έφτιαξα ένα πρόγραμμα μετατροπής ελληνικών σε greeklish και αντιστρόφως (σε VB6). Είμαι πολύ περήφανος με τη λειτουργικότητα του προγράμματος, λαμβάνει υπ'όψη τόνους και διακρίνει τις αγγλικές λέξεις. Οι δοκιμές μου έχουν γίνει με κείμενα 100 χαρακτήρων. Μόλις του δίνω όμως ένα αρχείο 20KB να το μετατρέψει, κάνει ... κανένα δεκάλεπτο! Από τις προσπάθειες που έκανα για να επιταχύνω αυτό το πρόγραμμα έμαθα πάρα πολλά. Μετά από βελτιώσεις σε τουλάχιστον τέσσερα σημεία, το πρόγραμμα μπορούσε να μετατρέψει κείμενα 100KB σε λιγότερο από 1 sec. Το πιο χαζό λάθος ήταν το συνεχές string concatenation. Έλυσα αυτό το πρόβλημα με μία custom κλάση (BigString) που δέσμευε εκ των προτέρων την απαραίτητη μνήμη. Όταν αργότερα βγήκε το .NET είδα ότι περιλάμβανε μία έτοιμη κλάση με την ίδια ακριβώς λειτουργικότητα, τη System.Text.StringBuilder.

Παράδειγμα 2ο: Μόλις υλοποίησα τον αλγόριθμο Quick Sort για να ταξινομήσω τα ονόματα των πελατών που διαβάζω από τη βάση, για να τα βάλω έπειτα ταξινομημένα μέσα σε ένα ListBox. Ο αλγόριθμος είναι αστέρι, χαλάλι τις τρεις ώρες που με παίδεψε για να τον αντιγράψω από Pascal και να τον τεστάρω. Διαπιστώνω όμως λίγο αργότερα ότι ο χρόνος εισαγωγής χιλίων πελατών στο ListBox είναι περίπου 1000 msec και δεν υπάρχει τρόπος βελτιστοποίησης. Η διαφορά απόδοσης της ταξινόμησης με Quick Sort σε σχέση με τη Direct Insertion που είχα αρχικά είναι αντίθετα 5 msec.

Νομίζω το έχω ξαναπεί αλλά είναι ενδιαφέρον και θα το επαναλάβω. Ένας γρήγορος αλγόριθμος μπορεί να κάνει το πρόγραμμά σας πιο αργό! Αντίφαση? Όχι και τόσο. Ο γρήγορος αλγόριθμος είναι επιπλέον κώδικας για το πρόγραμμά σας και μεγαλώνει το μέγεθός του. Τα επιπλέον αυτά bytes για να έχουν την ευκαιρία να τρέξουν πρέπει να μεταφερθούν από το δίσκο στη μνήμη, και αυτό θέλει χρόνο! Αν ο αλγόριθμος χρησιμοποιηθεί μία-δύο φορές μπορεί να μην καταφέρει καν να ισοφαρίσει το αρχικό αυτό handicap. Ακόμα χειρότερα, ο αρχικός χαμένος χρόνος, με τον χρήστη να κοιτά ανυπόμονα τη splash screen είναι πολύ πιο αισθητός από ανεπαίσθητες καθυστερήσεις στη ροή του προγράμματος. Ο χρήστης μπορεί τότε να εκμεταλευτεί το χρόνο cursor:hourglass προετοιμάζοντας νοητικά τις επόμενες κινήσεις του. Δεν υπάρχει καλύτερος τρόπος να απογοητεύσετε ένα χρήστη από το να δοκιμάζετε την υπομονή του στην εκκίνηση του προγράμματος.

Η παραπάνω παρατήρηση είναι ακόμα σημαντικότερη στο web client scripting. Η ταχύτητα εκτέλεσης ενός script είναι συνήθως αμελητέα ποσότητα σε σχέση με το χρόνο downloading του κώδικα. Εδώ το μέγεθος μετράει πολύ, και δε χωράνε αστεία όπως να κατεβάζετε στον client Quick Sort αλγορίθμους ή Red Black Trees. Επιπλέον η πιο συνηθισμένη θέση για ένα script είναι στο head της HTML σελίδας, προτού δηλαδή κατέβει το παραμικρό κείμενο για να έχει κάτι ο χρήστης να ασχολείται. Μετά από μερικά δευτερόλεπτα αναμονής αντικρίζοντας τη λευκή σελίδα θα αρχίσει να κάνει κύκλους με το ποντίκι του πάνω από το μαγικό κουμπί Back. Κλικ ... άντε γεια.

Δε θέλω να νομίσετε ότι υποτιμώ την performance. Προσωπικά έχω χρονομετρήσει σχεδόν όλες τις build-in συναρτήσεις της VB6, και έχω συγκρίνει την απόδοση πολλών διαφορετικών μεθοδολογιών από ADO και .NET μέχρι animation. Αν πάτε μία βόλτα στο MSDN θα δείτε ότι η .NET Performance διαθέτει το δικό της αποκλειστικό τμήμα, και μάλιστα με πολύ σεβαστό μέγεθος. Αν δείτε τον όγκο του υλικού θα διαπιστώσετε ότι για ασχοληθείτε με αυτήν σοβαρά πρέπει να της διαθέσετε όλο σας το χρόνο. Υπάρχει ήδη η ειδικότητα του Performance Expert, αυτού του τύπου δηλαδή που κοιτάει λίγο το πρόγραμμά σας, κάνει ένα υποτιμητικό "τσ τσ", και με λίγες μαγικές κινήσεις μεταμορφώνει τη χελώνα σας σε F4 Fantom.
:bball:

EDIT:AmmarkoV το zip ήταν τώρα 1,62ΜΒ, τι συμβαίνει? Τα textbox σου είναι τα πιο εχθρικά κοντρόλια που έχω συναντήσει μέχρι σήμερα στη ζωή μου. Νομίζω πως χρειάζονται οδηγίες χρήσεως. Τέλος, οι fun της Adrianna ζητάνε περισσότερες photo, και πιο καυτές αν γίνεται! :razz:
The pure and simple truth is rarely pure and never simple. Ο μη νους δε σκέπτεται μη σκέψεις για το τίποτα.
User avatar
AmmarkoV
Wow! Terabyte level
Wow! Terabyte level
Posts: 2838
Joined: Thu Nov 04, 2004 2:55 pm
Gender:
Location: Reloaded @ Santa Friday
Contact:

Post by AmmarkoV » Sat Mar 19, 2005 12:56 pm

Skeftomilos wrote: το θέμα της ταχύτητας των αλγορίθμων νομίζω ότι έχουμε χωριστεί σε δύο στρατόπεδα:
1) Η ταχύτητα εκτέλεσης είναι πολύ σημαντική, εκτός από τις περιπτώσεις που δεν είναι.
2) Η ταχύτητα εκτέλεσης δεν είναι σημαντική, εκτός από τις περιπτώσεις που είναι.
Εγώ είμαι της γνώμης οτι η ταχύτητα ειναι πολύ σημαντική. (<-Τελεία :-D)
Skeftomilos wrote:Ακόμα χειρότερα, ο αρχικός χαμένος χρόνος, με τον χρήστη να κοιτά ανυπόμονα τη splash screen είναι πολύ πιο αισθητός από ανεπαίσθητες καθυστερήσεις στη ροή του προγράμματος
Ακριβώς , κάθε φορα μέχρι να ξεκινήσει η VM σου σπάει τα νεύρα , κοκαλώνει όλο το σύστημα για 5δευτερόλεπτα, και αυτό στο γρήγορο PC μου! Στον πιο μικρό υπολογιστή μου P75 ξεκινάει μετα από 5λεπτά+
Τα κανονικά προγραμματάκια μου από την άλλη τρέχουν με μικρή μείωση της runtime ταχύτητας , και απλώς το πέρασμα bitmaps κτλ στην οθόνη γίνεται λίγο πιο αργά!
Skeftomilos wrote: AmmarkoV το zip ήταν τώρα 1,62ΜΒ,
To zip είναι (Δεν το λέω μόνος μου , ο Δίας το λέει)
-rw-r--r-- 1 p3040023 plir 858597 Mar 18 16:09 Demo.zip
858597 div 1024 = 838KB :???:
Το βλέπεις πράγματι μεγαλύτερο ή κάνεις πλάκα?
Skeftomilos wrote: Τα textbox σου είναι τα πιο εχθρικά κοντρόλια που έχω συναντήσει μέχρι σήμερα στη ζωή μου. Νομίζω πως χρειάζονται οδηγίες χρήσεως. Τέλος, οι fun της Adrianna ζητάνε περισσότερες photo, και πιο καυτές αν γίνεται! Razz
Ο,τι βλέπεις στην οθόνη σου διαχειρίζεται ξεχωριστά από τα Windows ,δηλαδή τα Windows τα χρησιμοποιώ μόνο για να ανοίξω το παράθυρο και να μπορώ να ζωγραφήσω κάπου.. (Γι`αυτό και αν περάσω σε OpenGL δεν θα υπάρχουν πολλές αλλαγές) τα text boxes δεν έχουν και σκοπεύω να προσθέσω Copy,Paste,Delete,Merge(με το Copyed κείμενο),Upcase(που μετατρέπει σε UpperCase το κείμενο μέσα στο text-box) και άλλα..
Όσο για το αν είναι είναι τα πιο εχθρικά κοντρόλια που έχεις συναντήσει στη ζωή σου χαλάρωσε λίγο , μια φορά καλύτερα από της SUN :-P
Image
:-D :-D
Θα κάνω update με μικρότερο αρχείο και περισσότερες pics :cool:
Spoiler: εμφάνιση/απόκρυψη
I would love to change the world, but they won't give me the source code. Οι καθηγητές πληρώνονται από το δημόσιο αρα από όλους τους Έλληνες για να κάνουν τα μαθήματα. Όλοι οι Έλληνες θα έπρεπε να μπορούν να δουν τα μαθήματα τα οποία πληρώνουν! Tο πνευματικό έργο που επιτελείται με τα χρήματα του δημοσίου ΔΕΝ είναι μόνο δικό σας Όποιος δεν δίνει πανελλήνιες έχει δικαίωμα στην γνώση που πληρώνει [url=http://ammar.gr/gddg]gddg blog[/url]
Image
User avatar
Skeftomilos
bit level
bit level
Posts: 43
Joined: Fri Mar 04, 2005 8:08 am
Location: Ν.Κόσμος

Post by Skeftomilos » Sun Mar 20, 2005 6:09 am

Το αρχείο που μου στέλνει ο Server είναι 1,662KB. Αν ωστόσο το αποσυμπιέσω και ξανακάνω zip τα αρχεία, το νέο zip είναι 841KB. Μήπως είναι πρόβλημα του server? Χρησιμοποιώ τον ενσωματωμένο download manager του Firefox.

Image

Για τα κοντρόλια της Sun δεν ξέρω πόσο εχθρικά είναι γιατί δεν έχει τύχει να τα δοκιμάσω. Πάντως σίγουρα άσχημα είναι - και ψεύτικα θα έλεγα. Ειδικά τα buttons είναι για κλάματα.

Αλλά για τα δικά σου κοντρόλια αδελφέ δύο λέξεις έχω να πω: unfriendiness & hostility. Για να βρω τον τρόπο να γράψω τις λέξεις adrianna και naked χρειάστηκα κανένα δεκάλεπτο σκληρής προσπάθειας. Όσο για bugs, δοκίμασε να κάνεις switch σε άλλη application και να γυρίσεις πάλι πίσω. Screenshots: [1][2].

Σχετικά με την ταχύτητα εκκίνησης μίας Java εφαρμογής είναι πράγματι τόσο τραγική? Πάντως τα προγράμματα που έχω φτιάξει σε .NET δε θέλουν πάνω από 1 sec για να εμφανίσουν το UI, παρόλο το Just In Time compilation. Κι αν ακόμα αυτό είναι πρόβλημα, υπάρχει η δυνατότητα τελικής μεταγλώττισης ενός .NET προγράμματος από MSIL σε native code. Αυτό μειώνει το χρόνο εκκίνησης αλλά παραδόξως επιβραδύνει κάπως την εκτέλεση του υπόλοιπου προγράμματος. Βλέπεις ο JITer μπορεί να ράψει on-the-fly καλύτερο native κώδικα σε σχέση με το μηχάνημα στο οποίο τρέχει (CPU, memory κ.λπ.).

C:\WINDOWS\Microsoft.NET\Framework\v1.1.4322\ngen.exe

Erevodifwntas στις απαιτήσεις του Multimedia Weather αναφέρεται και κάρτα γραφικών με 3D accelerator. Είναι υποχρεωτική ή optional? Χωρίς accelerator θα δω το πρόγραμμα?
The pure and simple truth is rarely pure and never simple. Ο μη νους δε σκέπτεται μη σκέψεις για το τίποτα.
User avatar
AmmarkoV
Wow! Terabyte level
Wow! Terabyte level
Posts: 2838
Joined: Thu Nov 04, 2004 2:55 pm
Gender:
Location: Reloaded @ Santa Friday
Contact:

Post by AmmarkoV » Sun Mar 20, 2005 6:23 pm

Skeftomilos wrote:δοκίμασε να κάνεις switch σε άλλη application και να γυρίσεις πάλι πίσω
Όλα αυτά που λές κ δείχνεις στα screenshots τα ξέρω , το συγκεκριμένο compilation έχει γίνει μέσα σε 10 λεπτά με τις library σε φάση development , δεν είναι οτι θα τα δώσω έτσι σε αυτόν που θα τα πουλήσω πχ..
Είναι εύκολο να βάλεις περιορισμούς στο μέγεθος των strings κτλ και τα bugs θα διορθωθούν με τον καιρό..
Επίσης για τον task μαναger , μόνο σε μορφή fullscreen γίνεται αυτό , όταν υποτίθεται οτι είναι το μοναδικό πρόγραμμα..
Τώρα αυτό με το μέγεθος δεν μπορώ να το καταλάβω,κάποιος λόγος θα υπάρχει γιατί στέλνει διπλάσιο αρχείο ο Δίας! Πάντως εκεί που βρίσκεται το αρχείο πιάνει σίγουρα μέγεθος 838ΚΒ
Είσαι fan μόνο της Adrianna ή σου κάνουν και άλλες ??? , (γιατί δεν βρίσκω πολλές "καλές" της φωτογραφίες ;) )
Spoiler: εμφάνιση/απόκρυψη
I would love to change the world, but they won't give me the source code. Οι καθηγητές πληρώνονται από το δημόσιο αρα από όλους τους Έλληνες για να κάνουν τα μαθήματα. Όλοι οι Έλληνες θα έπρεπε να μπορούν να δουν τα μαθήματα τα οποία πληρώνουν! Tο πνευματικό έργο που επιτελείται με τα χρήματα του δημοσίου ΔΕΝ είναι μόνο δικό σας Όποιος δεν δίνει πανελλήνιες έχει δικαίωμα στην γνώση που πληρώνει [url=http://ammar.gr/gddg]gddg blog[/url]
Image
Erevodifwntas
Gbyte level
Gbyte level
Posts: 1098
Joined: Thu Apr 22, 2004 2:18 pm
Academic status: Alumnus/a
Gender:
Location: In a Long Time Ago in A Galaxy far far away
Contact:

Post by Erevodifwntas » Sun Mar 20, 2005 8:28 pm

Skeftomilos wrote: Erevodifwntas στις απαιτήσεις του Multimedia Weather αναφέρεται και κάρτα γραφικών με 3D accelerator. Είναι υποχρεωτική ή optional? Χωρίς accelerator θα δω το πρόγραμμα?
Να είμαι ειλικρινής από τι στιγμή που διάβασα το posts σου προσπαθώ να θυμηθώ κάποια κάρτα χωρίς 3d επιτάχυνση.... πραγματικά δεν τα κατάφερα(μόνο κάτι συμβατές με VESA, Hercules θυμήθηκα προ 12ετίας).... ακόμα και τα chipάκια της Intel τα ενσωματωμένα στην μητρική έχουν 3d ικανότητες... Πάντως θεωρητικά, αρκεί να έχεις drivers με direct3D (γι'αυτό χρησιμοποιήσαμε το API... τώρα για το πώς το υλοποιούν οι κατασκευαστές στους drivers είναι ένα άλλο τεράστιο θέμα :-)

(αν βρεις κάποιο πρόβλημα πες το μας ;-)
Go To Statement Considered Harmful (Τιτλος δημοσίευσης του Edsger Dijkstra).

my personal site
User avatar
mikem4600
Gbyte level
Gbyte level
Posts: 1363
Joined: Fri Mar 12, 2004 2:00 pm
Academic status: Alumnus/a
Gender:
Location: A Galaxy Far, Far Away
Contact:

Post by mikem4600 » Wed Mar 30, 2005 10:44 pm

Επιστρέφοντας στο θέμα, έπεσα πάνω σε ένα post του blog του John Carmack (όποιος δεν ξέρει ποιος είναι, τι να πω... ας ψάξει στο google).

Το post έχει όνομα Cell phone adventures, αναφέρεται στην Java 2 Micro Edition (δηλ. για κινητά) αλλά αυτά που αναφέρει είναι χωρίς βλάβη της γενικότητας της Java... :roll: ;) Έχει τα εξής ενδιαφέροντα σημεία:

Περί περιβάλλοντος ανάπτυξης...
I wound up using the latest release of NetBeans with the mobility module, which works pretty well. It certainly isn’t MSDev, but for a free IDE it seems very capable. On the downside, MIDP debugging sessions are very flaky, and there is something deeply wrong when text editing on a 3.6 ghz processor is anything but instantaneous.
Περί ταχύτητας...
The biggest problem is that Java is really slow. On a pure cpu / memory / display / communications level, most modern cell phones should be considerably better gaming platforms than a Game Boy Advanced. With Java, on most phones you are left with about the CPU power of an original 4.77 mhz IBM PC, and lousy control over everything.
Περί μεταφερσιμότητας...
Write-once-run-anywhere. Ha. Hahahahaha. We are only testing on four platforms right now, and not a single pair has the exact same quirks. All the commercial games are tweaked and compiled individually for each (often 100+) platform. Portability is not a justification for the awful performance.
Autocracy hates questions. Anarchy hates answers.
User avatar
Einherjar
Venus Project Founder
Venus Project Founder
Posts: 3751
Joined: Tue Jan 27, 2004 4:42 pm
Academic status: Alumnus/a
Gender:
Location: Washington DC, USA
Contact:

Post by Einherjar » Thu Mar 31, 2005 1:37 am

εδώ και λίγο καιρό που ασχολούμαι με ένα πρόγραμμα για pdas/smartphones κλπ (midlet a.k.a. J2ME) και αποφάσισα να το γράψω σε java για λόγους portability, διαπίστωσα κάποια προβλήματα/γεγονότα που παίζουν στο background δηλαδή σε όχι και τόσο δημοφιλή πεδία, με αποτέλεσμα να μη τα γνωρίζουν πολλοί.
Το πρόγραμμα το έφτιαξα στο netbeans (v4) με το Mobility pack, με τη σιγουριά ότι όποια συσκευή και να πάρω θα είναι οκ. όταν δανείστικα το pda για να κάνω δοκιμές (με windows pocket pc v3 πάνω) κόντεψα να πηδήξω από το παράθυρο γιατί όλη η δουλειά που είχα κάνει κατά 99% θα πεταγόταν.
Το πρόβλημα ήταν ότι η Sun δεν είχε επίσημη υποστήριξη για το συγκεκριμένο λειτουργικό σύστημα οπότε δεν υπήρχε υποστήριξη για midlet :evil:
έκτοτε μπήκα σε έναν απίστευτο λαβύρινθο από διάφορα JVMs (free και mostly non free) προσπαθώντας να βρω υποστήριξη! ο καθένας με το ψιλό του και το κοντό του. εν τω μεταξύ διαπίστωσα κάποια πράγματα σχετικά με το licence με το οποία βγάζει την java η sun που δε μου πολυάρεσαν. λέει τώρα, ότι όποιος φτιάξει κάποιο vm που λέει ότι υποστηρίζει τα JSRs (ή κάπως έτσι) θα αποτελεί ιδιοκτησία της Sun (καλό ε?) οπότε οι άνθρωποι δε λέγαν ότι είχε υποστήριξη το vm του για τη Java. Εκτός αυτού ο καθένας επειδή έτσι γούσταρε (ή επειδή για κάποια άλλο άγνωστο λόγο) μπορεί να μην είχε υλοποιήσει κάποιο feature της java, άρα δεν ήξερες αν θα παίζει το prog σου.

Ευτυχώς στο cd με το software του pda, υπήρχε ένα jre (jeode runntime) το οποίο είχε υποστήριξη μόνο για J2SE το οποίο δεν είναι γενικότερα free. Για να μη πολυλογώ, η λύση βρέθηκε, χρησιμοποιώντας ένα package, το me2se που κάνει μετατροπή των κλήσεων. Το πρόγραμμα κάνει περίπου 15-20'' να ξεκινήσει, αλλά μετά δουλεύει απρόσκοπτα. προς Θεού όμως... μη κλείσει και πρέπει να το ξαναανοίξεις!

τα συμπεράσματα δικά σας.

τώρα σχετικά με το
Write-once-run-anywhere. Ha. Hahahahaha. We are only testing on four platforms right now, and not a single pair has the exact same quirks. All the commercial games are tweaked and compiled individually for each (often 100+) platform. Portability is not a justification for the awful performance.
για το θέμα αυτό νομίζω ότι δεν ευθύνεται κανείς άλλος εκτός από τον κατασκευαστή, ο οποίος και είναι υπεύθυνος να υλοποιήσει τις κλήσεις της java για τη συγκεκριμένη συσκευή. η sun φτιάχνει τα πρότυπα και οι κατασκευαστές οφείλουν τα τα υλοποιούν σωστά. Αυτό έχει ως αποτέλεσμα δεδομένου ενός προγράμματος, αυτό να εμφανίζεται διαφορετικά σε κάθε συσκευή, ακόμη και του ίδιου κατασκευαστή. Τα παιχνίδια πρέπει να έχουν συγκεκριμένες ιδιότητες γι'αυτό μάλλον πρέπει να το πειράζουν για κάθε συγκεκριμένη συσκευή. Για μια γενικού σκοπού εφαρμογή και όχι εξειδικευμένη, το Write-once-run-anywhere ισχύει!
[Better to understand a little than to misunderstand a lot]
User avatar
sudtuwup
Mbyte level
Mbyte level
Posts: 707
Joined: Fri May 14, 2004 6:46 pm
Academic status: MSc
Gender:
Location: Xavier Institute for Higher Learning

Post by sudtuwup » Thu Mar 31, 2005 11:33 am

Ρε παιδια που τα εχετε μαθει ολα αυτα;
Image
User avatar
Einherjar
Venus Project Founder
Venus Project Founder
Posts: 3751
Joined: Tue Jan 27, 2004 4:42 pm
Academic status: Alumnus/a
Gender:
Location: Washington DC, USA
Contact:

Post by Einherjar » Thu Mar 31, 2005 11:38 am

internet!
[Better to understand a little than to misunderstand a lot]
User avatar
sudtuwup
Mbyte level
Mbyte level
Posts: 707
Joined: Fri May 14, 2004 6:46 pm
Academic status: MSc
Gender:
Location: Xavier Institute for Higher Learning

Post by sudtuwup » Thu Mar 31, 2005 11:42 am

Θα με κουφανεις. Ολα αυτα απο το net;
Image
User avatar
Einherjar
Venus Project Founder
Venus Project Founder
Posts: 3751
Joined: Tue Jan 27, 2004 4:42 pm
Academic status: Alumnus/a
Gender:
Location: Washington DC, USA
Contact:

Post by Einherjar » Thu Mar 31, 2005 1:40 pm

βιβλίο για java πάντως, εκτός από του Κάβουρα, δεν έχω
[Better to understand a little than to misunderstand a lot]
Post Reply

Return to “Προγραμματισμός”