Εμφάνιση αναρτήσεων με ετικέτα web based. Εμφάνιση όλων των αναρτήσεων
Εμφάνιση αναρτήσεων με ετικέτα web based. Εμφάνιση όλων των αναρτήσεων

Κυριακή 25 Σεπτεμβρίου 2011

HTML5 Rocks

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

Μια από αυτές τις τεχνολογίες είναι η HTML5 η οποια πλέον είναι ένα standard με αρκετές δυνατότητες που παλιότερα υλοποιούνταν από διάφορες περίπλο-κες JavaScript βιβλιοθήκες ή δεν υποστηρίζονταν και καθόλου.


Ψάχνοντας να μάθω πως να υλοποιώ web apps σε HTML5 μελέτησα διάφορες πηγές, αλλά θεωρώ ότι η πλέον κατάλληλη είναι ο ιστοχώρος html5rocks.com.

Κυριακή 21 Φεβρουαρίου 2010

Replace flash with HTML 5, CSS and Javascript

Flash is a powerful tool for implementation of multimedia applications. It has been used for several year for implementation of animated content for web sites, but it is still not embedded in any operating system or web browser. It is always installed separately. This fact makes it difficult for novice users to navigate in flash sites.

The old time classic solution for this issue is to create two versions of the web site. One that uses the power of flash in order to provide a more fancy user interface and another that uses plain html. But today we have a better version of HTML (ver 5), CSS and JavaScript! The new versions let us make fancy sites without using flash!

For instance if we would like to create a slide show, then we can use the jQuery Circle Plug-in. If you need auto-complete fields for forms then you can use a component that you can find at jQuery Autocomplete Plugin. Or you can add validation to your forms using the jQuery AjaxForm Plugin... and much much more that you can find in jQuery.

If you need any help then leave a comment or send me an email [g.anagnostaros@gmail.com] and I will answer as soon as possible!


References:

Τετάρτη 3 Φεβρουαρίου 2010

How to render the content of an HTML without using iFrame

As a web developer I was asked to render the HTML code of a static HTML file in a div of dynamically generated HTML page. So I found out several alternative solutions.
Solution#1 Parse the static HTML file in the server-side and render only the content that is between "<body>" and "</body>". This solution would cost time to access the file, memory to keep the files content, process to parse the file's content, memory to keep the process result and finally time to send the result to the client.
Solution#2 Keep only the content of the HTML that is between "<body>" and "</body>" in the file in order to avoid process. Again time to access, memory to keep and time to send the result was needed. And additionally we had to edit the static HTML in each update. Cost of maintenance is the first that we try to reduce. We aren't developing a small and static web site but a dynamic web application that may include several static HTML files.
Solution#3 Do whatever is described in Solution#1 but do it in the client's side using ajax. Response is sent including only the javascript call which will retrieve the HTML file and will parse and render it in the right place. No memory needed. Web server handler static HTML file transfer as any other file's.
Solution#4 Do whatever is described in Solution#3 but additionally retrieve which are the included style sheet and javascript files and include them. So the web designer gives you the whole set of HTML Code, Style Sheet files [CSS], JavaScript code [JS] and other resources [images, flash and whatever] and you simple add a small ajax call that retrieved the HTML and renders it in a given div.

NOTE: I combined code from two sources "Dynamic Ajax Content [Dynamic Drive DHTML Script]" and "XUL Ajax" and I also added a piece of code to make it possible to retrieve which .js and .css files are included in the static file in order to add them in the container HTML via ajax.

In order to use the javascript you should add in the container HTML the following:

<div id="storage" style="display:none;"></div>
<div id="displayed"></div>
<script type="text/javascript">
document.onload=ajaxpage('YOU_STATIC_PAGE.html','displayed');
</script>

and you should also include the "AjaxPage.js" in the header of the container.

In case you have any problem using the javascript simply leave a comment and I will help you as soon as possible.

Sources:

Files:

Παρασκευή 18 Δεκεμβρίου 2009

Thin Client, μια λύση για οικονομικότερα και πιο συντηρίσιμα Δίκτυα

Τα τελευταία χρόνια η εξέλιξη του Διαδικτύου (Internet) έχει οδηγήσει σε ανάπτυξη εφαρμογών που "τρέχουν" μέσω του φυλομετρητή ιστοσελίδων (Web Browser). Αυτό ουσιαστικά υλοποιεί την ιδέα του Thin Client, όπου υπάρχει ένας κεντρικός υπολογιστής (Server) ο οποίος εκτελεί την εφαρμογή, ενώ από την άλλη μεριά υπάρχουν οι Thin Clients που την χρησιμοποιούν. Με αυτή την προσέγγιση οι clients δεν χρειάζεται να έχουν εγκατεστημένο κανένα επιπλέον λογισμικό πέραν του web browser. Αυτή η προσέγγιση μειώνει δραματικά το κόστος εγκατάστασης νέου client καθώς αφενός δεν χρειάζεται να έχει ιδιαίτερη επεξεργαστική ισχύ και μνήμη αλλά ούτε χρειάζεται διαδικασία εγκατάστασης λογισμικου.

Χαρακτηριστικά παράδείγματα web εφαρμογών αποτελούν τα GMAIL, Google Documents, Google Reader και άλλες αντίστοιχες εφαρμογές. Το κόστος κατασκευής μιας τέτοιας εφαρμογής δεν είναι μεγαλύτερο από την κατασκευή μιας stand alone ή client/server, ενώ το κέρδος από το μειωμένο κόστος συντήρισης και αγοράς εξοπλισμού είναι ιδιαιτέρος μεγάλο.

Παραπομπές:
http://en.wikipedia.org/wiki/Thin_client#History

Σάββατο 5 Δεκεμβρίου 2009

Χρησιμοποιώντας Wicket..

Το τελευταίο καιρό έχω αρχίσει να ασχολούμαι με ένα ακόμα web framework, το wicket. Το wicket είναι ένα framework για Java που ανήκει στην μεγάλη οικογένεια του Apache Foundation. Το ιδιαίτερο χαρακτηριστικό που έχει, σε σχέση με άλλα παρόμοια, είναι ότι διαχωρίζει την εμφάνιση από την λογική. Αυτό επιτυγχάνεται με το να απαιτείται για κάθε τι που εμφανίζεται αφενός ένα στοιχείο HTML σε κάποια σελίδα και αφεταίρου αντίστοιχο Wicket Component's instance που να δημιουργείται στον Constructor κάποιας ομώνυμης με την σελίδα κλάσης. Επίσης διαθέτει δυνατότητα χρήσης Ajax αλλα παράλληλα και κλασικού submit/refresh.

Εαν θέλετε να μάθετε περισσότερα μπείτε στην επίσημη ιστοσελίδα του project: http://wicket.apache.org/
ή ζητήστε μου να γράψω περισσότερα.

Δευτέρα 7 Σεπτεμβρίου 2009

Πρώτη επαφή με το Grails

Σε παλιότερη άναρτηση είχα αναφερθεί στο framework Ruby On Rails. Ένα πακέτο που με χρήση scripts δημιουργεί την βασική δομή του προγράμματος και με την προσθήκη διαφόρων οδηγιών και εντολών ολοκληρώνεται η κατασκευή μιας πλήρως λειτουργικής εφαρμογής.
Ένα αντίστοιχο πακέτο είναι το Grails. Το Grails είναι ουσιαστικά η μεταφορά της λογικής του RoR σε ένα περιβάλλον όπου ο κώδικας γράφεται σε Groovy.
Η Groovy είναι μια γλώσσα βασισμένη στην Java αλλά με ελευθερία αντίστοιχη αυτής της Ruby. Οπως και στο RoR έτσι και στο Grails στοχος είναι η αποφυγη χρήσης περίπλοκων αρχείων ρυθμίσεων και η μη επανάλληψη κώδικα. Εφαρμοζεί το μοντέλο MVC (Model View Controller) στο ακέραιο και οδηγεί τον προγραμματιστή με τέτοιο τρόπο ώστε να παραμείνει στην λογική του αποδεδειγμένα καλού αυτού μοντέλου.
Ελπίζω σύντομα να μου δωθεί η ευκαιρία να αναπτύξω κάποιο ιστοχώρο με χρήση αυτής της τεχνολογίας ώστε να σας πω τις απόψεις μου σε επίπεδο εφαρμογής.

Σάββατο 9 Μαΐου 2009

Τι είναι Ruby On Rails;


To Ruby On Rails (ROR) είναι ένα framework, δηλαδή κατ' ουσίαν μια βιβλιοθήκη κώδικα, για την ανάπτυξη εφαρμογών ιστού (web applications κοινώς!). Στόχος του συγκεκριμένου framework είναι να οδηγίσει τον προγραμματιστή με απλά βήματα στην ανάπτυξη μιας εύκολα και σωστά δομήμένη εφαρμογής που να είναι ταυτόχρονα εύκολα συντηρίσιμη! Όσο κι αν αυτό μοιάζει ουτοπικό, με την ROR γίνεται εφικτό.

Η ανάπτυξη γίνεται εύκολα χάρη στα διάφορα scripts που χρησιμοποιούνται για την δημιουργία ενός αρκετά μεγάλο μέρος του γενικού κώδικα, αλλά και η ύπαρξη αρκετών έτοιμων κομματιών κώδικα που κυκλοφορούν στο Δίκτυο. Να σημειωθεί ότι το ROR είναι και database independent καθώς η βάση δεδομένων δημιουργείται αποκλειστικά και μονο με σχετικό script

Η ανάπτυξη γίνεται σωστά λόγο του ότι υπάρχουν δύο βασικές αρχές που προσπαθεί να τηρήσει, η πρώτη αρχή είναι Don't Repeat Yourself (DRY) που είναι και γενικότερα γνωστή ως επαναχρησιμοποίηση του κώδικα, ενώ η δεύτερη είναι η Convention Over Configuration (COC), δηλαδή καλύτερα να ακολουθείται μια τυποποίηση στην ονοματολογία παρά να έχουμε άπειρες ρυθμίσεις που προσπαθούν να επιτύχουν αυτο το αποτέλεσμα.

Αν εχετε οποιαδήποτε απορία ή θέλετε περισσότερες πληροφορίες αφήστε σχόλια ή στείλτε μου email, θα σας απαντησω σύντομα!

Τρίτη 19 Ιουνίου 2007

Μην μπαλώνεις τα προβλήματα..

Χθες πρωί πρωί με "μπουζουριάσανε" στο meeting room για να κάνουμε conference call.. για ένα πολύ critical issue, που είχε προκύψει. Χαλαρός και ήρεμος [αφου δεν ειχα καταλάβει γιατι προκειται] περίμενα να μάθω, θεωρώντας ότι θα είναι και πάλι κάτι απλό [όπως τις περισσότερες φορές].. αλλά δυστυχώς δεν ήταν και τόσο απλό.
Είχαμε πάρα πολύ χοντρο πρόβλημα. Εδώ να ανοιξω μια παρένθεση (η εφαρμογή που αναπτύσουμε ειναι web based, το οποίο σημαίνει ότι τρέχει σε έναν κεντρικο υπολογιστή [application server] στον οποίο ανοίγει ένα session για κάθε σύνδεση που κάνει ο κάθε χρήστης [όπως γίνεται σε όλες τις web based applications])
Το πρόβλημα ήταν ότι έμπλεκε αυτά τα session. Δηλαδή σε άσχετη στιγμή πέταγε κάποιο χρήστη απο το σύστημα ή εμφάνιζε στον έναν αυτό που έπρεπε να εμφανίζει στον άλλον.. Κοινώς, "πιάσε το αυγό και κούρευτο!".. Μετά απο σκέψη μερικών ορών απο 5 άτομα [μεταξυ των οποίων κι εγώ,φυσικά!] πέσανε 2-3 καλές ιδέες για το πως να λυθεί..και στην αρχή έδειξε να ειναι σωστές. Το δοκιμάσαμε, έπαιζε => όλα μια χαρα. Ελα ντε όμως που η χαρά μας δε κράτησε πολύ! [Η χαρά κράτησε απο χθες μέχρι σήμερα το πρωί!]
Αλλά τι θέλω να πω ο ποιητής με όλη αυτή την ιστορία, "ποτέ μην νομίζεις ότι έχεις βρει την λύση, απλά και μόνο έχοντας κάνει ένα μπάλωμα".

ΥΓ: Ακόμη το παλεύουμε, αλλά που θα πάει θα το λύσουμε

LinkWithin

Blog Widget by LinkWithin

Mobile edition