16.12.08

Taking a break from Java with Rails role management

Its being so long since I have written a new post..

Being working on a little something lately that entails Rails and the Ruby language. Ruby on Rails is a very interesting platform for creating web applications. It provides many tools out of the box that require little or no configuration to work. It is a bit to awkward to begin with for a Java person but this goes away with usage. I have some questions regarding performance but I guess I am going to find out about it one way or another :D.

One of the basic stuff that one comes across when trying to create a new relatively complex application is the user, role management. I guess that this is something platform independent and as long as you use the database for that kind of thing you are always going to come up with a schema of the kind:

user(id, name, etc...)
role(id, name) # one role is Manager
managed(id)


Where Managed is a little something that is managed by the user when he has a specific role.
To be complete, one must use an extra association table that will contain all possible (User, Role, Managed) triples. This is:

user_role_managed(id, user_id, role_id, managed_id)

Q: How I am going to use these tables DIRECTLY from my web page in Rails, when I want to display specific HTML elements for specific users/roles?

A: Well in rails there are these beautiful constructs named helpers:

def is_manager? user, managed
    UserRoleManaged.exists?(:user_id => user.id, :managed_id => managed.id, :role_id => Role.find_by_name('Manager').id)
end

which can be referenced like this from the view:

< %= link_to 'Delete Managed', delete_managed_path(@managed) if is_manager_of @user, @managed %>

Of course many things are not said here, but I think that the overall simplicity is obvious. As long as you have setup your model, creating the helper and using it from the view is quite straightforward.

8.4.08

PS3 firmware 2.20

PS3 divx playback now supports subtitles!

Nough said :D:D:D

29.2.08

Cloudy now

Το βάζω γιατί μου θύμισε τους Pink Floyd. Five stars..

24.2.08

Leopard 10.5.2



Σήμερα κατάφερα να εγκαταστήσω την έκδοση 10.5.2 του MacOs στον HackPro μου. Η διαδικασία μάλλον απλή αν κάποιος έχει ακολουθήσει τις οδηγίες που περιέργραψα σε προηγουμένο post και κυρίως αν έχει το κατάλληλο υλικό. Ακολουθώντας τις οδηγίες του γνωστού forum (InsanelyMac) μπόρεσα και εγκατέστησα την 10.5.2.

Αρχικά πήρα backup με την βοήθεια του TimeMachine και στην συνέχεια άρχισα να εγκαθιστώ το καινούργιο update. Προσοχή όμως.. όχι το update της Apple. Μια μικρή παραλλαγή του, παραγμένη από τον γνωστό στους κύκλους Kalyway. Η διαδικασία περιγράφεται με κάθε λεπτομέρεια εδώ. Αρχικά πρέπει να κατεβάσετε το μεταλλαγμένο update, τον νέο kernel και το graphics update. Ακολουθώντας τις οδηγίες θα είστε έτοιμοι για την νέα έκδοση του λειτουργικού.

Πρέπει να ομολογήσω ότι η διαδικασία δεν ήταν εντελώς αναίμακτη.. χρειάστηκε να ξανακάνω install το 10.5.1 πρώτα γιατί δεν ήμουν πολύ προσεκτικός από την αρχή.. έκανα restart σε κάποιο λάθος σημείο και αυτό οδήγησε σε kernel panic. Ήμουν έτοιμος φυσικά για κάτι τέτοιο. Παρόλα αυτά όμως υπήρχαν στιγμές που σκέφτηκα αν πραγματικά αξίζει τον κόπο το όλο εγχείρημα. Η ουσία του να έχεις Macintosh είναι το ότι μπορείς και εργάζεσαι σε αυτό χωρίς να σε νοιάζει πως έχει κάνει update o kernel ή αν έχεις ή όχι τους τελευταίους drivers, ή αν έχεις το καλύτερο δυνατό configuration για να τρέξεις μια εφαρμογή. Όλα παίζουν out of the box. Και όταν έχεις ήδη 2 mac (mini, macbook) όλη αυτή η βαβούρα με τα κοντρα instalations και το googling καταντάει κουραστικό.

Γιαυτό και αν δεν έιχα στα χέρια μου ήδη το κατάλληλο ΗW δεν νομίζω να έμπενα ποτέ στην διαδικασία να αγοράσω μόνο και μονο για να φτιάξω έναν low badget mac. Πραγματικα δεν αξίζει (σίγουρα όχι όταν μπορείς να πάρεις ένα φρεσκότατο MacMini με μόνο 630 ευρώ...)

16.2.08

My name is Pro.. HackPro!

Αν και είχα πολύ καιρό να ποστάρω δεν γίνεται να μην το κάνω σήμερα!

Και αυτό γιατί είμαι στην ευχάριστη θέση να ανακοινώσω ότι είμαι πλέον κάτοχος ενός HackPro!
Πρόκειται για το ῾παλιό῾ μου PC το οποίο εδώ και καιρό (ειδικά μετά την αγορά της νέας μου TV και του PS3) το είχα ξεγράψει τελείως. Πιο συγκεκριμένα το μηχανάκι μου έχει κλείσει χρόνο πλέον και εδώ και καιρό σκεφτόμουν πως να το χρησιμοποιήσω όσο γίνεται καλύτερα.

Αρχικά έλεγα να το έχω για να παίζω κανα παιχνιδάκι στα XP. Είχα και το mini οπότε όλες μου τις δουλειές θα τις έκανα από εκεί. Το pc θα το είχα να παίζω κανα RPG/FPS. Έλα όμως που πριν κανα μήνα αγόρασα το Crysis.. Σαν φανατικός οπαδός του FarCry το οποίο και θεωρώ σαν το καλύτερο του είδους του, εἰπα να παίξω και αυτή την παιχνιδάρα που ειναι ο απόγονός του στην ουσία.

Έλα όμως που ούτε στο medium setting δεν μπόρεσα να το παίξω! Σε ορισμένες περιοχές ήθελε να μπουν όλα στο low για να παίξει αξιοπρεπώς. Αυτό ήταν πραγματικά κάτι το αποκαρδιωτικό γιατί το PC μου είχε κοστίσει ένα κάρο λεφτά πριν ένα χρόνο. Και λογικό ήταν τότε με αυτά τα χαρακτηριστικά:
- Asus p5w dh deluxe
- Intel core 2 duo 2.40Ghz
- 2GB μνήμη
- Nvidia 7600 GS
- Αθόρυβα Zalman τροφοδοτικό και ανεμιστήρας CPU

Αποφάσισα να πάρω το PS3 και έχω βρει την υγειά μου. Μαζί με την 32αρα LCD Samsung σου δίνει ότι κάποια παιχνίδια τύπου Assassin Creed τα έχει για πλάκα! Αυτό βέβαια ειναι θέμα για άλλο post :)

Έχοντας λοιπόν ένα καλό PC για πέταμα και οδηγό ένα άρθρο του lifehacker είπα να αρχίσω να πειρματίζομαι με την εγκατάσταση του αγαπημένου μου OS. Για καλή μου τύχη ειμαι γενικά πολύ συμβατός (κυρίως στο θέμα της μητρικής) με το λειτουργικό. Μετά από πειραματισμούς (κυρίως σε επίπεδο BIOS) κατέλειξα να γράφω σήμερα από τον HackPro μου. Εικόνα, ήχος, ethernet (και πιο δύσκολα wireless αλλα δεν με νοιάζει τόσο) παίζουν ΟΚ.

Ακολουθώντας βασικά το άρθρο του lifehacker σέταρα σωστά το bios και εγκατέστησα το ήδη patched dvd. Οδηγίες για τα πάντα υπάρχουν στο άρθρο. Γενικά υπάρχει μια τεράστια και ακούραστη κοινότητα στημένη γύρω από αυτό το project με πρώτους και καλύτερους τους τύπους στο http://www.insanelymac.com. Αξίζουν πολλα μπράβο στα παιδιά για την δουλειά τους. Πέρα από αυτό το άρθρο που ανέφερα ήταν πραγματικά όαση για μένα γιατί έτυχε να βασίζεται στην ακριβώς ίδια μητρική με την δικιά μου κάτι ιδιαίτερα σημαντικό.

Για την ώρα το σύστημα είναι πολύ σβέλτο. Το λειτουργικό έχει αναγνωρίσει τον επεξεργαστή και τον γρήγορο δίαυλο και μνήμη. Με το πέρασμα του καιρού θα δοκιμάσω και πιο advanced features όπως το Time Machine. Ο επόμενός μου στόχος ειναι κάνω update se 10.5.2..