Δημόσια διαβούλευση του νέου site της βουλής

Η βουλή έφτιαξε νέο site το οποίο έθεσε σε δημόσια διαβούλευση. Μέχρι τις 31/03/2010 μπορεί όποιος θέλει να αφήσει σχόλια.

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

Η γενική μου άποψη είναι πως πρόκειται για ένα λιτό site, πλούσιο σε περιεχόμενο. Σε γενικές γραμμές δε το βρίσκω κακό παρόλο που παρακάτω επικεντρώνομαι στα αρνητικά.

Φόρμα επικοινωνίας (και υποβολής σχολίων)

  • Το νόημα είναι να κάνω upload ένα αρχείο;
  • Το textarea είναι απίστευτα μικρό, έχει middle vertical align και δεν κάνει wrap τις λέξεις.
  • Το CAPTCHA είναι δύσκολο και έχει λατινικούς χαρακτήρες. Καλύτερα να είχε μόνο αριθμούς.

Ημερομηνίες

Λεπτομέρεια αλλά γιατί ‘11 | 02 | 2010′; Pipe για delimiter; Το / είναι πολύ πιο συνηθισμένο.

Χρώμα συνδέσμων

Το βασικότερο πρόβλημα – με δυσκόλεψε πάρα πολύ.

Στην 1η σελίδα, στα κουτιά “Επικαιρότητα” και “Πρόσφατα ψηφισθέντα νομοσχέδια” ο τίτλος των άρθρων είναι με μπλε χρώμα αλλά δεν είναι links. Πρέπει να πατήσω το μικρό μπλε “περισσότερα” που έχει από κάτω. Αντίθετα στο κουτί “Επικαιρότητα Νομοθετικού Έργου”, οι μπλε λέξεις είναι links.

Σε ένα τέτοιο site (κρατικό, content based) θα προτιμούσα τα links να είναι underlined. Αν όχι underlined μόνιμα, να γίνονται underlined στο hover και να έχονυν κάποιο κοινό χαρακτηριστικό (πχ μπλε χρώμα). Τώρα μόνο από το cursor που γίνεται pointer (χεράκι) καταλαβαίνει κανείς τι είναι link. Γενικά όσο το κοιτάω τόσο καταλαβαίνω ότι είναι τυχαίο τι είναι link και τι όχι.

Οπωσδήποτε τα visited links να έχουν άλλο χρώμα.

Top menu

Το “Βουλή των Ελλήνων | Σύνθεση και Οργάνωση | Εργασίες | Ενημέρωση | Πρακτικά” θα έπρεπε να είναι πιο έντονο και θα βόλευε να είναι ένα css dropdown menu.

Αγγλικά

Πράγματα όπως “F.A.Q.”, “Agenda” κλπ θέλουν αντικατάσταση στην ελληνική έκδοση.

Ημερολόγιο

Το ημερολόγιο στην κεντρική σελίδα είναι δύσχρηστο. Τα βελάκια για αλλαγή μήνα είναι 3×3 pixel. Για να πάω σε μια ημέρα πρέπει να πατήσω ακριβώς τον αριθμό (πχ 1) ενώ θα μπορούσα να πατάω ολόκληρο το <td>.

Αναζήτηση

Η αναζήτηση είναι μέτρια. Βρίσκει πράγματα μεν (άτονα, κεφαλαία κλπ) αλλά δε τα ταξινομεί με βάση την αξία. Πχ ψάχνεις ‘παπανδρεου’ και το βιογραφικό του είναι τρίτο αποτέλεσμα.

Επίσης χρειάζεται ένα autocomplete τουλάχιστον στα ονόματα των 300. Είναι περίεργο να γράφω στο search box ‘σαμαρ’ και να μη πετάγονται suggestions.

Τέλος η αναζήτηση σκάει με ένα * πχ γράφοντας ‘παπανδρ*’. Καλό είναι επίσης να κλείσει το error output στον server…

Τίτλος

Το title tag είναι σχεδόν παντού ίδιο – πολύ ενοχλητικό αν έχεις ανοίξει πολλά βιογραφικά ή νόμους κλπ.

Link προς το παρόν άρθρο έστειλα χρησιμοποιώντας τη φόρμα επικοινωνίας.

C:\Documents and Settings\dtsantakos\My Documents\Projects\parliament_1\Portal\searchapp\searchResults.ascx.cs:50

Google Ad Planner

Μόλις ανακάλυψα το Google Ad Planner. Σας επιτρέπει τη δημιουργία & διαχείριση ενός διαφημιστικού πλάνου.

Το ενδιαφέρον όμως είναι ότι δίνει traffic estimates για όποιο site θέλετε [1]. Το δοκίμασα για περίπου 10 sites στα οποία έχω πρόσβαση και οι προβλέψεις είναι 100% σωστές.

Για 2 μεγάλα site τα στατιστικά που δίνει για Οκτώβριο 2009 είναι [2]:

naftemporiki.gr

skroutz.gr

[1] Δεν είναι estimates αν κάποιος έχει Google Analytics και έχει κάνει opt-in.

[2] Δε ξέρω φυσικά αν είναι σωστά!

Μια επιδότηση που έπιασε τόπο

Στην Ελλάδα τρέχουν πολλά επιδοτούμενα προγράμματα με τα οποία οι εταιρίες που κατεβαίνουν αποκτούν λογισμικό ή/και υλικό. Συχνά αυτό που παίρνουν “μαραζώνει” – ένα χρόνο μετά δεν το χρησιμοποιεί κανείς.

Θα γράψω για ένα επιδοτούμενο πρόγραμμα στο οποία συμμετείχα και το οποίο με εξέπληξε ευχάριστα.

Η Νομική Βιβλιοθήκη, ένας εκδοτικός οίκος νομικών και λογιστικών βιβλίων, δημιούργησε (μέσω επιδοτούμενου προγράμματος) ένα εντελώς νέο προϊόν: την υποδομή να εκδίδει τα βιβλία και περιοδικά της στο internet, χρεώνοντας φυσικά την πρόσβαση.

Έξι μήνες μετά την παραλαβή του έργου, το προϊόν είναι ζωντανό: νέα βιβλία και περιοδικά εισάγονται, νέα FAQ γράφονται, βελτιώνεται η εμφάνιση των site. Ακόμα, το τμήμα πληροφορικής της ΝΒ εξελίσσει τον κώδικα (που ήταν στα παραδοτέα): καλύτερη τιμολόγηση, SMS για την εγγραφή, χωρισμός λογιστικού / δικηγορικού site, ειδήσεις κ.α..

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

Νομίζω τα επιδοτούμενα έργα θα έπρεπε να δίνουν μέρος του ποσού σαν bonus σε όσα έργα μπαίνουν αληθινά σε παραγωγική λειτουργία.

Μερικά links:

Το  case study, που περιγράφει τι έκανε η ομάδα της InNews που υλοποίησε το έργο.

Το epixeirisionline.gr, απευθύνεται σε λογιστές.

Το nbonline.gr, απευθύνεται σε δικηγόρους.

www

Ένα site πρέπει να απαντάει και με και χωρίς το πρόθεμα www. Ο ευκολότερος τρόπος να γίνει αυτό είναι η προσθήκη ενός CNAME record στο DNS.

Μου κάνει εντύπωση που κάποια μεγάλα site είναι ρυθμισμένα μόνο για το ένα ή το άλλο. Για παράδειγμα η Forthnet δε δουλεύει χωρίς www: http://forthnet.gr/.

Νομίζω μερικοί browser προσθέτουν μόνοι τους το www αν δεν απαντήσει το site. Άλλοι απλά βγάζουν error.

Επίσης χρήσιμο για λόγους SEO και ομοιομορφίας είναι να γίνεται permanent redirect το ένα στο άλλο. Προσωπικά προτιμώ να μην υπάρχει πρόθεμα κι έτσι αν κάποιος επισκεφτεί το www.daremon.gr θα μεταφερθεί αυτόματα στο daremon.gr

Για να γίνει αυτό έχω προσθέσει στο .htaccess (χρειάζεται Apache) τις εξής γραμμές:

<IfModule mod_rewrite.c>
  RewriteEngine on
  # Remove www
  RewriteCond %{HTTP_HOST} ^www.daremon.gr [NC]
  RewriteRule ^(.*)$ http://daremon.gr/$1 [R=301,L]
</IfModule>

Για να γίνει το ανάποδο, δηλαδή να μπαίνει το www, θα γράφαμε:

<IfModule mod_rewrite.c>
RewriteEngine On
#add www
RewriteCond %{HTTP_HOST} ^daremon.gr [NC]
RewriteRule ^(.*)$ http://www.daremon.gr/$1 [R=301,L]
</IfModule>

Database layers and benchmarks

I usually work with MySQL although I have some experience with SQL Server. Sometimes I had the chance to work with Oracle, Access and PostgreSQL. Since PHP doesn’t provide a DB abstraction layer [1], I am using ADODB to make my life easier.

ADODB offers a lot of features beyond simple abstraction e.g. a performance monitor. I highly recommend it.

For various reasons I also use my own simple layer on top of ADODB. I call it DBI (DataBaseInterface) and it provides a) a reassurance that if for some reason I want to get rid of ADODB I can do so easily and b) extra features e.g. an audit trail for each field, row and table.

Recently I wanted to see the performance hit I am taking because of these layers. So I did some simple benchmarks. I basically executed a select query (returning ~350 rows about 1 kbyte each) multiple times (2500-5000). Keep in mind that both layers are written in PHP [2] and I am not using an accelerator.

DBI, ADODB, MYSQL

Returned rows are loaded in an array.

DBI: DBI->ADODB->mysql* functions
ADODB: ADODB->mysql* functions
MYSQL: Just mysql* functions

DBI     100%
ADODB    93%
MYSQL    67%

There is not a significant difference between ADODB and DBI. This is expected since DBI is a simple class around ADODB. However the difference between DBI and MYSQL is certainly significant.

FETCH MODE

Returned rows are loaded in an array.

I also compared ASSOC, NUM and BOTH fetch modes.

ASSOC    82%
NUM      72%
BOTH    100%

The NUM and ASSOC modes are close (the PHP manual agrees with that) but the BOTH mode is more expensive, which seems normal (since twice the amount of data is returned). There is no reason to use the BOTH mode, which by the way is the default mode for mysql_fetch_array().

Conclusion: there is certainly a performance hit when using database layers [3]. On the other hand the extra features are useful and since most applications don’t have special performance requirements I’ll certainly continue to use them.

[1] PHP 5.1 and later provides PDO, but I haven’t tried it.
[2] ADODB also provides its functionality as an extension.
[3] Also see some older benchmarks from ADODB creator.

MySQL, windows-1253 character set

Recently I had to use Windows-1253 character set with MySQL. Unfortunately it is not included with MySQL and I couldn’t find it anywhere.

So I started creating it with a fellow developer. However it wasn’t that easy. Maybe we should have studied the documentation more carefully.

Today I tried again and this time I was successful. Download Windows-1253 character set for MySQL.

Hello world!

Testing!

Snow