Κοινότητες: ELLAK.gr · Ubuntu-gr · GreekLUG · HELLUG · CYLUG · JHUG · ILUG · PLUG · ΕΜΠ · Chania-LUG · FreeBSD-GR · νέο

September 02, 2010

Η φύση και ο αντικειμενοστραφής προγραμματισμός

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

"Δημιούργησε ένα αυτοκίνητο" ... Vehicle car = new Vehicle();
"Δημιούργησε ένα μικρο κουτί" ... Box small_box = new Box();
"Δημιούργησε ένα μεγάλο κουτί" ... Box big_box = new Box();
"Βάψε το αυτοκίνητο μπλε" ... car.setColor(blue);
"Κανε το αυτοκίνητο μικρότερο" ... car.setSize(small);
"Τοποθέτησε το αυτοκίνητο μέσα στο μικρό κουτί" ... small_box.add(car);
"Τοποθέτησε το μικρό κουτί μέσα στο μεγάλο κουτί" ... big_box.add(small_box);
... κ.ο.κ

Ας δούμε τώρα ένα πιο extreme παράδειγμα(!), εμπνευσμένο από τη φύση.
Παρακάτω ακολουθεί ένα παράδειγμα εμβολιασμού φυτού.


Σε αυτή τη περίπτωση υπάρχουν δυο αντικείμενα, το ρίζωμα και ο βλαστός. Η λογική του εμβολιασμού είναι να τοποθετήσουμε τον βλαστό ενός φυτού στο ρίζωμα ενός άλλου φυτού, ώστε το πρώτο να επικρατήσει και να αναπτυχθεί κανονικά υποβοηθούμενο από το δεύτερο...
Μιλώντας με έννοιες του αντικειμενοστραφούς προγραμματισμού, τόσο το ρίζωμα όσο και ο βλαστός έχουν την ιδιότητα του υποδοχέα (container), δηλαδή το ένα μπορεί να τοποθετηθεί μέσα στο άλλο, τηρώντας πάντα κάποιους κανόνες. Στη περίπτωση των φυτών πρέπει να είναι συγγενικά είδη, ενώ στη περίπτωση του Α.Π ένας από τους κανόνες είναι να είναι του ίδιου τύπου δεδομένων.
Πιο κάτω ακολουθεί ένα πολύ απλό παράδειγμα σε Java. Χρησιμοποιώ δυο υποδοχείς JPanel οι οποίοι είναι τοποθετημένοι ο ένας μέσα στον άλλο, ενώ και οι δυο μαζί είναι τοποθετημένοι σε έναν τρίτο υποδοχέα JFrame.

Να πώς το κάνει η Java ....


import java.awt.*;
import java.awt.event.*;
import javax.swing.*;

public class panel_grafting {
private static void createAndShowGUI() {
JFrame frame = new JFrame("JPanel Grafting");
JPanel quince_tree = new JPanel();
JPanel pear_tree = new JPanel();
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

JLabel C1_Labe1 = new JLabel("C1_1");
JLabel C1_Labe2 = new JLabel("C1_2");
JLabel C2_Labe1 = new JLabel("C2_1");
JLabel C2_Labe2 = new JLabel("C2_2");

frame.setPreferredSize(new Dimension(400, 400));
frame.setLayout(new BorderLayout());
quince_tree.setLayout(new BorderLayout());
pear_tree.setLayout(new BorderLayout());

quince_tree.setBorder(BorderFactory.createTitledBorder("Quince tree"));
pear_tree.setBorder(BorderFactory.createTitledBorder("Pear tree"));

frame.getContentPane().add(quince_tree, BorderLayout.CENTER);

quince_tree.add(C1_Labe1, BorderLayout.EAST);
quince_tree.add(C1_Labe2, BorderLayout.WEST);

quince_tree.add(pear_tree, BorderLayout.CENTER); //τοποθέτηση ενός αντικειμένου μέσα σε ένα άλλο

pear_tree.add(C2_Labe1, BorderLayout.EAST);
pear_tree.add(C2_Labe2, BorderLayout.WEST);

frame.pack();
frame.setVisible(true);
}

public static void main(String[] args) {
javax.swing.SwingUtilities.invokeLater(new Runnable() {
public void run() {
createAndShowGUI();
}
});
}
}

Gentoo KDE and Qt September Meetings

Part of today’s KDE Team meeting:

KDE 4.5 status and plans to put it in Portage

We agreed that KDE 4.5.1 is suffering of some important bugs, and after a long discussion we decided to put it in portage, but it will never make it to stable branch. We are mentioning the upstream bugs, as we think that users should be aware of them before updating:

Also, keep in mind that KDE SC 4.5 lacks the KDEPIM suite, so users should use KDEPIM 4.4.5 instead, which is also stable in portage tree.

In case of an update it should be smooth.

The whole summary and log can be found at the KDE project space.

The Qt Team also had a meeting one our later, summary and logs at the Qt project space

=-=-=-=-=
Powered by Blogilo

iStorm, το πρώτο Apple Store στην Ελλάδα

Σήμερα ξεκινάει τη λειτουργία του το πρώτο Apple Store την Ελλάδα. Το iStorm είναι το πρώτο Apple Premium Reseller Store στην Ελλάδα. Έχουν προηγηθεί το δικτυακό Apple Store μέσω της Rainbow πριν από αρκετά χρόνια και οι λιανικές πωλήσεις μέσω τρίτων αντιπροσώπων.

Αλλά η Apple πέρα από τα Demo Center σε Αθήνα και Θεσσαλονίκη, όπου όμως δε μπορούσε κάποιος να αγοράσει τα προϊόντα, απλά να τα τεστάρει, πρώτη φορά βγαίνει "στο πεζοδρόμιο" και στην ελληνική αγορά. Εξαιρετικά σημαντική κίνηση και σε μια μη ευνοϊκή περίοδο για ανοίγματα. Μπράβο στην Apple και την iStorm.

Μακάρι να βλέπαμε κάποτε και "Canonical Store" ή "Redhat Store". Μπορούμε εκτός από το να κατηγορούμε την Apple για το DRM και τον κλειστό κώδικα να μάθουμε και μερικά πράγματα από αυτή.

Processing: ανίχνευση χρώματος μέσω κάμερας σε πραγματικό χρόνο

Processing: Μέρα 5η ... :)
Παρακάτω ακολουθεί μια εφαρμογή που έγραψα σε processing η οποία ανιχνεύει και "ακολουθεί" χρώματα τα οποία "συλλαμβάνονται" μέσω μίας webcam, σε πραγματικό χρόνο.
Για να καταφέρω να κάνω χρήση της web κάμερας μέσω της Processing χρησιμοποίησα την βιβλιοθήκη GSVideo.

Ακολουθεί βίντεο:



Για να γίνει η ανίχνευση πρέπει πρώτα να δηλώσουμε το χρώμα, αυτό το πετυχαίνουμε (edited) κάνοντας "κλικ" με το mouse κάπου πάνω στην εικόνα (στο αντικείμενο)...
Αυτό που πρέπει να προσέξουμε είναι οι παρεμβολές από χρώματα του περιβάλλοντος, η ευκρίνεια της κάμερας και ο φωτισμός. Παράδειγμα, στο βίντεο που έδωσα ποιο πάνω στο 0:24 πέφτει ο φωτισμός, ενώ στο 1:45 όταν χρησιμοποιώ το κίτρινο, κάποια στιγμή μπερδεύεται ο ανιχνευτής και αντί να δείχνει το αντικείμενο, δείχνει το χέρι μου (χμμμμ ... :/).

Κώδικας Processing (edited):


//Webcam color tracking by George Hadjikyriacou
//Version 0.2 (29/8/2010)
//License: GPL v3 (http://www.gnu.org/licenses/gpl.html)

import codeanticode.gsvideo.*;
int x=0,y=0,a=0,b=0;
color pick_1=0;
color pick_2=0;
int w_width = 640;
int w_height = 480;
int fine = 500;
String video_dev = "/dev/video1";
GSCapture cam;

void setup() {
size(w_width+80, w_height, P2D);
cam = new GSCapture(this, w_width, w_height, video_dev);
}

void draw() {

if (cam.available() == true) {
cam.read();
cam.loadPixels();

for (int i=0; i < w_width*w_height; i++) {
if(cam.pixels[i]>color(pick_1-fine) && cam.pixels[i]< color(pick_1+fine)) {
x=(i%w_width);
y=i/w_width;
}
if(cam.pixels[i]>color(pick_2-fine) && cam.pixels[i]< color(pick_2+fine)) {
a=(i%w_width);
b=i/w_width;
}
}
background(255);
cam.updatePixels();
image(cam, 0, 0);
fill(255);
ellipse(x, y, 20, 20);
fill(255);
ellipse(a, b, 20, 20);
fill(pick_1);
rect(w_width+10, 10,60,60);
fill(pick_2);
rect(w_width+10, 80,60,60);
}
if (mousePressed && (mouseButton==LEFT)) {
pick_1 = get(mouseX,mouseY);
}
else if (mousePressed && (mouseButton==RIGHT)) {
pick_2 = get(mouseX,mouseY);
}
}


PS: Με την webcam του aspire one είχα καλύτερα αποτελέσματα με ανάλυση κάμερας 640x480 ...

Αγορά Εργασίας : Senior Java Software Developer -24 Media

24Media is looking for a Senior Java Software Developer to join its four- member development team and  work on projects related with the online media properties of the company.

The ideal candidate must have at least 4 years past experience in web development and at least 1-2 years experience in web publishing projects. The candidate must be able to learn, adapt and provide solutions without supervision and must display
initiative and strong collaboration and team spirit. The candidate must be able to  demonstrate a good grasp of web technologies in general such as the HTTP protocol, web caching (memcache, Varnish, squid), OAuth, Cross site scripting etc. The ideal candidate must have a strong programming background with experience in diverse fields and technologies and be open to evaluate, learn and use new technologies. Knowledge in multiple programming languages will be considered a plus. Also desirable is experience in Linux, Apache, MySQL and Tomcat administration.

Requirements

  • Excellent knowledge of Java
  • Excellent knowledge of JSP, JSTL
  • Excellent knowledge of HTML, CSS and Javascript
  • Prior involvement in web oriented, highly visibility projects
  • Experience in working with a team of developers and designers
  • Experience with the JQuery framework


Optional

  • Experience with unit testing and test driven development
  • Experience with the Spring Framework
  • Mobile development (iPhone, Android etc)
  • Experience with Linux server administration

If this position is of interest to you and matches your background, please send your CV to cv@24media.gr quoting ref. code: JAVA-SR

Google Hack search only for Drupal modules at Drupal.org

Google Hack search only for Drupal modules at Drupal.org

site:drupal.org/project -inurl:issues -inurl:cvs -inurl:usage -inurl:filters -site:drupal.org/project/modules KEYWORDs

Replace KEYWORDs with the keywords with you want to search

Example:
Search modules for Τwitter

v0.1

Drawing arrows with GIMP

Today I desperately needed to draw arrows in a picture to point parts of an Arduino stack with an Ethernet and Xbee shield.

So, I took the picture of the stack, increased the contrast and made other adjustments to perfect the pictures, and I was ready to place the arrows. Arrows? How? OK, I googled and found this http://registry.gimp.org/node/20269

You just have to download the .scm file. If you are a Linux user (obviously I use Fedora), go to your Home Folder and press Control+H to unhide the hidden folders. Next, go to the “.gimp-2.6″ (1st: Yes there is a full stop, 2nd: 2.6 is the name of the folder right now according to GIMP’s current version). Inside this folder find the folder “scripts” and place there the .scm file. Now, open GIMP (or re-open if already running), go to Tools and you are good to go :)

(Tip: To draw an arrow you must use the path tool at the toolbox. Just click one time to point the start of the arrow and a second time to point the end. You will just make a straight line that will be used as a path)

In Greek : Στον σύνδεσμο που υπάρχει παραπάνω μπορείτε να κατεβάσετε το .scm αρχείο που θα σας επιτρέψει να σχεδιάζετε βέλη με το GIMP αυτόματα. Για να λειτουργήσει το αυτό το script πηγαίνουμε στο Home Folder, πατάμε Control+H για να αποκαλυφθούν οι κρυφοί φάκελοι και στη συνέχεια πηγαίνουμε στον φάκελο “.gimp-2.6″ (1ον ναι υπάρχει τελεία, 2ον το όνομα προέρχεται από την τωρινή έκδοση”). Μέσα σε αυτόν τον φάκελο υπάρχει ο φάκελος “scripts” όπου και τοποθετούμε το .scm αρχείο. Ανοίγωντας το GIMP τώρα μπορούμε να δούμε στο Tools το Arrow :)

(Συμβουλή: Για να φτιάξετε το arrow πρέπει να σχηματίσεται ένα μονοπάτι με το path tool. Αν απλά κάνετε ένα κλικ για την αρχή και άλλο ένα για το τέλος του βέλους εκεί που επιθυμείτε είστε έτοιμοι να φτιάξετε το βέλος με το Arrow που βρίσκεται στα Tools)


Windows Τiling Applications for Xfce

Today i’ve tried the four (4) tiling applications on Xfce, that wikipedia refers as “Third party tiling applications on Xorg”

The winner is: Stiler

Both Tile & QuickTile had a really bad tiling appearance and PyTyle doesnt work with Xfce

Alice: αντικειμενοστραφής προγραμματισμός για παιδιά

Σε λίγες μέρες αρχίζει η σχολική χρονιά, δεκάδες παιδιά και νέοι ετοιμάζονται να μπουν σε ένα εκπαιδευτικό σύστημα που θα τους δώσει εφόδια για το μέλλον. Ένα από τα εφόδια που εγώ δεν είχα την τύχη να έχω όσο ήμουν μαθητής είναι η διδασκαλία πληροφορικής και προγραμματισμού (ναι είμαι τόοοοοσο μεγάλος). Λόγω της επιλογής μου να ασχοληθώ με τις επιστήμες υγείας σε επαγγελματικό επίπεδο προγραμματισμό δεν διδάχτηκα πότε. Επειδή είχα το μικρόβιο από πιτσιρίκος κάτι έκανα τα δικά μου πράγματα σε ένα παλιό ZX Spectrum… που δεν ήταν καν δικός μου (αλλιώς θα το είχα κρατήσει για κειμήλιο).

Πριν αρκετό καιρό είχα αναφερθεί στο Scratch ένα εργαλείο διδασκαλίας προγραμματισμού για παιδιά. Όμως δεν είναι το μόνο. Πριν λίγες ημέρες είδα το Alice. To Alice άρχισε ως μια προσπάθεια του Carnegy Mellon University για την δημιουργία ενός εργαλείου που τα παιδιά θα δημιουργούν 3D ιστορίες χρησιμοποιώντας την λογική του αντικειμενοστραφούς προγραμματισμού και είναι διαθέσιμο για Windows, Mac και Linux μηχανήματα.  Για τα παιδιά του των τελευταίων τάξεων του δημοτικού και των πρώτων του Γυμνασίου συνιστάται η χρήση του Storytelling Alice. Ενώ για μεγαλύτερες ηλικίες (τελευταίες τάξεις Γυμνασίου και το Λύκειο) συνιστάται η χρήση του κανονικού Alice.

Να επισημάνω επίσης ότι στο site του Alice υπάρχει μια αρκετά μεγάλη λίστα με τα σχολεία που χρησιμοποιούν το Alice. Μέσα στην λίστα (είναι αρκετά μεγάλη… και μάλλον έχει αρκετά false positives) είδα και Ελληνικά σχολεία. Χαρακτηριστικά μέσα στα σχολεία που χρησιμοποιούν το Alice είναι, το Κολλέγιο Αθηνών και το Κολλέγιο Ψυχικού (του Ελληνοαμερικανικού Εκπαιδευτικού Ιδρύματος) οι υπόλοιπες καταχωρήσεις για την Ελλάδα είναι ελλιπείς. Όσο αφορά την Κύπρο φαίνεται να το χρησιμοποιεί το Τεχνολογικό Πανεπιστήμιο Κύπρου και ένα Πανεπιστήμιο στα Κατεχόμενα.  (αν μου ξέφυγε κανένα αφήστε σχόλιο παρακαλώ).

Δεδομένου ότι το Alice είναι ελεύθερο λογισμικού (άδεια BSD like) και δωρεάν φυσικά νομίζω ότι θα μπορούσαν και άλλα εκπαιδευτικά ιδρύματα στην Ελλάδα (και την Κύπρο) να το χρησιμοποιήσουν. Κατανοώ ότι ακόμη και αν το Υπουργείο Παιδείας αναγνώριζε ότι θα ήταν χρήσιμο να χρησιμοποιείται ως διδακτικό μέσω το Alice είναι αρκετά δύσκολο καθώς απαιτούνται φαντάζομαι πολλές διοικητικές και γραφειοκρατικές διαδικασίες για την ένταξη του στο μάθημα της πληροφορικής ωστόσο νομίζω ότι τα ιδιωτικά εκπαιδευτήρια και τα εξειδικευμένα εκπαιδευτήρια πληροφορικής ίσως μπορούν να προσαρμόσουν το πρόγραμμα τους αν κρίνουν θα είχε εκπαιδευτική αξία μια τέτοια κίνηση.

Παρακάτω ακολουθεί ένα video που παρουσιάζει τα οφέλη χρήσης του Alice.


μοιραστείτε το: email PDF RSS del.icio.us Facebook Google Bookmarks Twitter FriendFeed Identi.ca LinkedIn Reddit StumbleUpon Netvibes NewsVine Ping.fm

σχετικά άρθρα:

September 01, 2010

Arduino: Απομακρυσμένος έλεγχος φωτιστικού με διπλό χτύπο της παλάμης.

Το έργο αυτό αναφέρεται σε ένα Sketch (πρόγραμμα σε Arduino) το οποίο με την βοήθεια ενός ρελέ (ηλεκτρομηχανικός διακόπτης), του συστήματος VRBot και της κάρτας επέκτασης για αισθητήρες (Sensor Shield) μπορεί να οδηγήσει (ενεργοποιήσει ή απενεργοποιήσει) μία εξωτερική συσκευή (π.χ. ένα φωτιστικό, έναν συναγερμό αυτοκινήτου, ένα οικιακό κλιματιστικό, κ.λπ) με διπλό χτύπο της παλάμης.

Διάφορες εικόνες της εφαρμογής.

Έλεγχος φωτιστικού με διπλό χτύπο της παλάμης – 1.

Έλεγχος φωτιστικού με διπλό χτύπο της παλάμης – 2.

Έλεγχος φωτιστικού με διπλό χτύπο της παλάμης – 3.

Έλεγχος φωτιστικού με διπλό χτύπο της παλάμης – 4.

Για περισσότερες πληροφορίες μπορείτε να προμηθευτείτε το ίδιο το έργο `clapping_control_light_bulb‘.

Η υλοποίηση αυτού του έργου έγινε στον προσωπικό μου φορητό υπολογιστή, ο οποίος εκτελεί το λειτουργικό σύστημα GNU/Linux. Το οποίο, αποτελεί σύνθεση του σύστηματος GNU και του πυρήνα Linux. Η συγκεκριμένη διανομή που χρησιμοποιώ είναι η “Debian GNU/Linux” (θεωρώ πως είναι ένα Λ.Σ κατάλληλο για ανάπτυξη, συντήρηση και παραγωγή Ελευθέρου Λογισμικού).

Τέλος, σε περίπτωση που δεν μπορείτε να ανοίξετε το αρχείο ή το λειτουργικό σας σύστημα δεν αναγνωρίζει αυτόν τον τύπο αρχείου παρακαλώ εγκαταστήστε το ακόλουθο πρόγραμμα `7-Zip’.

Το παραπάνω έργο προστατεύεται με την Γενική Άδεια Δημόσιας Χρήσης GNU (για όπου υπάρχει πηγαίος κώδικας οποιασδήποτε υλοποίησης) και την Άδεια Ελεύθερης Τεκμηρίωσης GNU (για τα εγχειρίδια της εφαρμογής, την ανάλυση και σχεδίαση).


Ανασκόπηση από το DrupalCon στη Κοπεγχάγη

23 με 27 Αυγούστου πραγματοποιήθηκε το DrupalCon στην Κοπεγχάγη . Επτά άτομα από την Ελλάδα βρεθήκαμε στον Συνέδριο του Drupal και με όσους βρήκαμε εκεί κάναμε μετά το τέλος κάθε ημέρας μια ανασκόπηση τι είδαμε, τι ακούσαμε, τι μας έκανε εντύπωση.

Έτσι ο Κώστας Κουράκης, Στέλιος Κουράκης και David Bash από pointblank.gr, Νίκος Ανδριόπουλος από Αττικές Εκδώσεις, Γιώργος Παπαδόγγονας από infowonders.gr και εγώ Νεκτάριος Συλλιγαρδάκης (nsyll.net) απο eresus.gr προσπαθήσαμε να καταγράψουμε τις εντυπώσεις στα παρακάτω τρία videos.


<!--break-->

Video από της παρουσιάσεις στο συνέδριο ανεβαίνουν στο http://www.archive.org. Μερικές αξίζει τον κόπο να τις παρακολουθήσετε.

Ημερίδα Έργα ΕΛΛΑΚ: Χρήσιμα για τον δημόσιο τομέα

Η Εταιρεία Ελεύθερου Λογισμικού/Λογισμικού Ανοικτού Κώδικα (ΕΕΛ/ΛΑΚ) διοργανώνει Ημερίδα με θέμα Έργα ΕΛ/ΛΑΚ: Χρήσιμα για το Δημόσιο Τομέα . Η Ημερίδα θα πραγματοποιηθεί την Τετάρτη 29 Σεπτεμβρίου 2010 στην Αθήνα στο Εθνικό Ίδρυμα Ερευνών στο Αμφιθέατρο 'ΛΕΩΝΙΔΑΣ ΖΕΡΒΑΣ'. Στόχος της Ημερίδας είναι η προώθηση έργων ΕΛ/ΛΑΚ που είναι χρήσιμα για το Δημόσιο Τομέα και η διάχυση της γνώσης και των νέων εξελίξεων σχετικά με το ΕΛ/ΛΑΚ. Στην ημερίδα, θα παρουσιασθούν οι ελληνοποιήσεις λογισμικού και οδηγιών χρήσης τους για να μπορούν να χρησιμοποιηθούν εύκολα στον Ελληνικό Δημόσιο Τομέα. Οι συμμετέχοντες στην ημερίδα θα ενημερωθούν για τις δράσεις στα παρακάτω έργα: Ελληνοποίηση Ολοκληρωμένου Συστήματος Αυτοματισμού Βιβλιοθήκης Koha Το KOHA θεωρείται το πρώτο σύστημα αυτοματοποίησης βιβλιοθηκών ανοιχτού κώδικα. Η ανάπτυξη του ξεκίνησε το 1999 από την Kapito Communications Ltd και πρωτοχρησιμοποιήθηκε από την βιβλιοθήκη Horowhenua Library Trust το 2000. Στην συνέχεια η ευθύνη για την περαιτέρω ανάπτυξης και συντήρηση “πέρασε” στην κοινότητα των πληροφορικών και βιβλιοθηκονόμων ανά το κόσμο. Περισσότερες πληροφορίες για το ΚΟΗΑ στην διεύθυνση http://koha-community.org/ (http://koha-community.org/). Δείτε περισσότερα για τον εξελληνισμό (index.php?option=com_openwiki Itemid=103 id=ellak:koha) .

KDE 4.5.1 - Κωδική ονομασία: "Cronjob"

Κυκλοφόρησε η νέα έκδοση της συλλογής λογισμικού KDE 4.5.1 με την κωδική ονομασία "Cronjob"

KDE 4.5.1

Η κοινότητα του KDE κυκλοφόρησε την πρώτη έκδοση μεταφράσεων και υπηρεσιών της σειράς 4.5

Το KDE έχει κυκλοφορήσει μια σειρά από ενημερώσεις για τον χώρο εργασίας Plasma Desktop και Netbook, όπως στις εφαρμογές και την πλατφόρμα ανάπτυξης. Αυτή η ενημερωμένη έκδοση είναι η πρώτη σε μια σειρά από ενημερώσεις σταθεροποίησης στην 4.5.0.

Το KDE 4.5.1 είναι μια προτεινόμενη ενημερωμένη έκδοση για οποιοδήποτε έχει εγκατεστημένη το KDE 4.5.0 ή ακόμα και παλαιότερες εκδόσεις. Δεδομένου ότι το δελτίο περιλαμβάνει μόνο διορθώσεις σφαλμάτων και ενημερώσεις μετάφρασεων, θα είναι μια ασφαλής και ευχάριστη ενημέρωση για όλους. Το KDE 4 SC έχει ήδη μεταφραστεί σε περισσότερες από 55 γλώσσες, με περισσότερους να έρθουν.

διαβάστε περισσότερα

7 τρόποι για να σταματήστε μια τεχνολογική επανάσταση

James BoyleΚατά καιρούς μέσα από αυτό το blog έχω εκφράσει την ανησυχία μου, για να μην πω αντιπάθεια μου σχετικά με σύστημα απόδοση πατεντών των ΗΠΑ και πως αυτό επηρεάζει γενικά την ανάπτυξη λογισμικό ειδικά όμως την ανάπτυξη ελεύθερου λογισμικού. Υπάρχουν πολλές αντικρουόμενες απόψεις πάνω στο θέμα αυτό, άλλοι πιστεύουν ότι οι πατέντες λογισμικού είναι πολύ φυσικό να υπάρχουν και πως προστατεύουν έτσι τους δημιουργούς άλλοι πιστεύουν ότι οι πατέντες λογισμικού αποτελούν πρόβλημα γενικά και πως δεν θα έπρεπε να αποδίδονται.

Προφανώς το ζούμε στα μέσα μιας τεχνολογικής επανάστασης δεν θα πω ότι το ελεύθερο λογισμικό είναι αυτό το ίδιο μια τεχνολογική επανάσταση όμως είναι σίγουρα ένα σημαντικό στοιχείο της, κατά την γνώμη μου (και μόνο) αναπόσπαστο. Ο James Boyle καθηγητής νομικής στο Πανεπιστήμιο Duke των ΗΠΑ και ιδρυτικό μέλος των Creative Commons έδωσε πρόσφατα μια εξαιρετικά ενδιαφέρουσα διάλεξη στο Google για το πως μπορεί κανείς να σταματήσει μια τεχνολογική επανάσταση με νομικά μέσα

Αν έχετε μια ώρα και ένα τέταρτο καιρό ρίξτε της μια ματιά, το βίντεο ακολουθεί παρακάτω…

μοιραστείτε το: email PDF RSS del.icio.us Facebook Google Bookmarks Twitter FriendFeed Identi.ca LinkedIn Reddit StumbleUpon Netvibes NewsVine Ping.fm

σχετικά άρθρα:

Nautilus Elementary 2.31 σε Ubuntu 10.10 Maverick

Παρακάτω περιγράφω την εγκατάσταση της δοκιμαστικής έκδοσης του nautilus elementary σε Ubuntu 10.10. Η διαδικασία ισχύει μόνο για τη συγκεκριμένη έκδοση του Ubuntu, λόγω συμβατότητας βιβλιοθηκών, καθώς και για οποιαδήποτε διανομή χρησιμοποιεί τις ίδιες δοκιμαστικές βιβλιοθήκες.

Αρχικά φροντίζουμε να ενεργοποιήσουμε στο Synaptic τα repositories του πηγαίου κώδικα και να εγκαταστήσουμε κάποια απαραίτητα πακέτα:

sudo apt-get install build-essential intltool
sudo apt-get install bzr
sudo apt-get install libzeitgeist-dev

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

sudo apt-get build-dep nautilus
sudo apt-get install gir-repository-dev gobject-introspection
bzr branch lp:nautilus-elementary/2.31+
cd 2.31+/
./autogen.sh –prefix=/usr
make
sudo make install
nautilus -q

Αν η διαδικασία ολοκληρωθεί χωρίς σφάλματα, σε αυτό το σημείο, ανοίγοντας τον nautilus θα έχουμε την elementary έκδοση.

Αν θέλουμε να χρησιμοποιήσουμε την rgba διαφάνεια πρέπει να έχουμε κάποιο από τα θέματα που την υποστηρίζουν. Αυτά είναι θέματα που στηρίζονται στην murrine engine, όπως το Ambiance ή το Radiance. Πρέπει επίσης να πάμε στο φάκελο του θέματος που βρίσκεται στο /usr/share/themes και στον υποφάκελο gtk-2.0 να αλλάξουμε το αρχείο gtkrc. Συγκεκριμένα βρίσκουμε τη boolean μεταβλητή rgba και αλλάζουμε την τιμή της από FALSE σε TRUE.

Περισσότερα εδώ. Η διαδικασία είναι λίγο αλλαγμένη γιατί όπως περιγράφεται στο link δεν ολοκληρώνεται.

Related posts:

  1. Nautilus Elementary 2.30 σε Ubuntu 10.04 Lucid Lynx...
  2. Nautilus multiview: tabs στο Gnome 2.24...
  3. Ubuntu tweak: Ρυθμίσεις με τον εύκολο τρόπο...

August 31, 2010

Ubuntu Unity Desktop Environment

Ubuntu sponsored by the UK-based company Canonical Ltd, is a computer operating system originally based on the Debian GNU/Linux distribution and distributed as free and open source software with additional proprietary software available. Canonical has launched a new desktop environment called Unity on the Ubuntu Developer Summit (UDS). Unity is designed for netbooks and touch devices. The new shell is designed to use screen space more efficiently, consume fewer system resources than a conventional desktop environment and includes a new panel and application launcher. In this video … Continue reading

Processing: Έλεγχος πρόσβασης δωματίου

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

Ακολουθεί βίντεο παρουσίασης:



Όπως παρατηρείτε στο βίντεο, υπάρχουν πέντε "αισθητήρες". Πριν ξεκινήσει η καταγραφή των κινήσεων πρέπει να αρχικοποιήσουμε τις τιμές των pixel στα συγκεκριμένα σημεία, αυτό γίνεται πατώντας μία φορά με το mouse πάνω στην εικόνα (προσέχουμε τα σημεία να μην είναι πάνω σε κινούμενα αντικείμενα).
Οι "αισθητήρες" ενεργοποιούνται, όταν τα pixel αλλάξουν τιμές (από άσπρο,μαύρο ή από μαύρο,άσπρο), σε αυτό με βοήθησε το φίλτρο "THRESHOLD".

Ακολουθεί ο κώδικας:
//Webcam Access Control by George Hadjikyriacou
//Version 0.1 (31/8/2010)
//License: GPL v3 (http://www.gnu.org/licenses/gpl.html)

import codeanticode.gsvideo.*;
int w_width = 640;
int w_height = 480;
String video_dev = "/dev/video1";
color cp_1,cp_2,cp_3,cp_4,cp_5;
color ch_1,ch_2,ch_3,ch_4,ch_5;
int counter=0;
GSCapture cam;

void setup() {
size(w_width+80, w_height, P2D);
cam = new GSCapture(this, w_width, w_height, video_dev);
}

void draw() {

if (cam.available() == true) {
cam.read();
cam.loadPixels();
image(cam,0,0);
filter(THRESHOLD);

ch_1 = get(w_width/2,w_height/2);
ch_2 = get(w_width/2,0);
ch_3 = get(w_width/2,w_height-1);
ch_4 = get(w_width/2,w_height/4);
ch_5 = get(w_width/2,(w_height+w_height/2)/2);

if(cp_1!=ch_1||cp_2!=ch_2||cp_3!=ch_3||cp_4!=ch_4||cp_5!=ch_5) {
fill(color(255,0,0));
rect(w_width+10,10,60,60);
counter++;
println("Moves: "+counter);
}
else {
fill(0);
rect(w_width+10,10,60,60);
}
}
cam.updatePixels();
noFill();
ellipse(w_width/2,w_height/2,10,10);
ellipse(w_width/2,0,10,10);
ellipse(w_width/2,w_height-1,10,10);
ellipse(w_width/2,w_height/4,10,10);
ellipse(w_width/2,(w_height+w_height/2)/2,10,10);
}
void mousePressed() {
cp_1 = get(w_width/2,w_height/2);
cp_2 = get(w_width/2,0);
cp_3 = get(w_width/2,w_height-1);
cp_4 = get(w_width/2,w_height/4);
cp_5 = get(w_width/2,(w_height+w_height/2)/2);
println("Initial values: "+hex(cp_1)+","+hex(cp_2)+","+hex(cp_3)+","+hex(cp_4)+","+hex(cp_5));
counter=0;
}


Στην εφαρμογή θα προστεθούν στο μέλλον και άλλες λειτουργίες, όπως για παράδειγμα τη δυνατότητα να φωτογραφίζει (σε αρχεία .jpg) αυτό που προκάλεσε την ενεργοποίηση των αισθητήρων!

August 30, 2010

πράσινο ασύρματο μητροπολιτικό δίκτυο

Joining the WANΠριν λίγο καιρό σε ένα ταξίδι που έκανα στην Εύβοια νομίζω ότι είδα στην Νέα Αρτάκη ένα κόμβο ασύρματου κοινοτικού μητροπολιτικού δικτύου. Επισκεπτόμενος την βάση δεδομένων κόμβων του AWMN (που βασίζεται στο WiND ή Wireless Node Database ένα ελεύθερο λογισμικό που ανέπτυξαν μέλη του AWMN)  εντυπωσιάστηκα από το πόσο έχει επεκταθεί το AWMN πλέον. Κάτι που δυσκολεύει την δικτύωση μέσω AWMN είναι η ύπαρξη κάθετων εμποδίων μεταξύ των κόμβων του (συνήθως ορεινοί όγκοι) καθώς το WiFi δεν μπορεί να τα διαπεράσει και φυσικά η αναβλητικότητα “ασύνδετων” όπως εγώ.

Μια αρκετά έξυπνη λύση που είδα η εγκατάσταση ενός repeater (ας πούμε αναμεταδότη) στο Rochester Istitute of Technology για να καλύψει τις ανάγκες των φοιτητών. Το συγκεκριμένο project έχει σαν σκοπό την δημιουργία ενός repeater που δεν θα είναι συνδεδεμένος με το ρεύμα αλλά συλλέγει αιολική και ηλιακή ενέργεια για τις ανάγκες του. Σε επίπεδο WiFi χρησιμοποιήθηκαν δύο WRT54G με περασμένο πάνω το DD-WRT firmware (που και αυτό με την σειρά του είναι ελεύθερο λογισμικό). Πιστεύω όμως ότι οι τεχνικές δυνατότητες και η τεχνογνωσία που υπάρχει στο AWMN μπορούσε να πάρει στοιχεία από το project αυτό και να το βελτιώσει σε πολύ μεγάλο βαθμό.

Εάν σας ενδιαφέρει παρακάτω έχω ενσωματώσει και μια παρουσίαση του project από μέσω Slideshare:


μοιραστείτε το: email PDF RSS del.icio.us Facebook Google Bookmarks Twitter FriendFeed Identi.ca LinkedIn Reddit StumbleUpon Netvibes NewsVine Ping.fm

σχετικά άρθρα:

Arduino: Παιχνίδι Ενίσχυσης Οπτικών Δεξιοτήτων.

Το έργο αυτό αναφέρεται σε ένα Sketch (πρόγραμμα σε Arduino) το οποίο υλοποιεί ένα παιχνίδι ενίσχυσης οπτικών δεξιοτήτων. Ουσιαστικότερα, είναι ένα παιχνίδι αντανακλαστικών. Μπορεί να παιχθεί από έναν χρήστη (single-player) ή από πολλαπλούς χρήστες ταυτόχρονα (multi-player). Κάθε παίχτης έχει στην κατοχή του ένα κουμπί. Το σύστημα ανάβει και σβήνει κατάλληλο LED σε ψευδοτυχαίες χρονικές στιγμές. Οι παίχτες οφείλουν να πατήσουν όσο πιο γρήγορα γίνεται το κουμπί τους ώστε να κερδίζουν πόντους.

Οι πόντοι των παιχτών απεικονίζονται σε κατάλληλες οθόνες 7-segment. Κάθε μία από τις οθόνες οδηγούνται με την βοήθεια ενός καταχωρητή ολίσθησης 74HC595 8 ψηφίων. Σε περίπτωση που κάποιος από του παίχτες συμπληρώσει τις απαραίτητες νίκες τότε κερδίζει το σετ, παράγεται μουσική μελωδία με κατάλληλο Piezo μεγαφωνάκι και ξεκινάει το παιχνίδι από την αρχή.

Το παιχνίδι είναι ευέλικτο με αποτέλεσμα να μπορεί να υποστηρίξει μεγάλο αριθμό παιχτών.

Παρακάτω ακολουθεί εικόνα του έργου:

Παιχνίδι Ενίσχυσης Οπτικών Δεξιοτήτων – Εικόνα 1.

Παιχνίδι Ενίσχυσης Οπτικών Δεξιοτήτων – Εικόνα 2.

Για περισσότερες πληροφορίες μπορείτε να προμηθευτείτε το ίδιο το έργο `game_visual_reflexes‘.

Η υλοποίηση αυτού του έργου έγινε στον προσωπικό μου φορητό υπολογιστή, ο οποίος εκτελεί το λειτουργικό σύστημα GNU/Linux. Το οποίο, αποτελεί σύνθεση του σύστηματος GNU και του πυρήνα Linux. Η συγκεκριμένη διανομή που χρησιμοποιώ είναι η “Debian GNU/Linux” (θεωρώ πως είναι ένα Λ.Σ κατάλληλο για ανάπτυξη, συντήρηση και παραγωγή Ελευθέρου Λογισμικού).

Τέλος, σε περίπτωση που δεν μπορείτε να ανοίξετε το αρχείο ή το λειτουργικό σας σύστημα δεν αναγνωρίζει αυτόν τον τύπο αρχείου παρακαλώ εγκαταστήστε το ακόλουθο πρόγραμμα `7-Zip’.

Το παραπάνω έργο προστατεύεται με την Γενική Άδεια Δημόσιας Χρήσης GNU (για όπου υπάρχει πηγαίος κώδικας οποιασδήποτε υλοποίησης) και την Άδεια Ελεύθερης Τεκμηρίωσης GNU (για τα εγχειρίδια της εφαρμογής, την ανάλυση και σχεδίαση).


What would happen if you didnt setup sudo properly

You should all know this comic strip:

but have you ever wondered, what would happen if you hadnt setup sudo properly ?

Click on images !

Η ελευθερία μας στο Cloud

The Heavens OpenΤην σημερινή εποχή στα τεχνολογικά site είναι πολύ συχνή έκφραση Cloud Computing. Τί είναι όμως αυτό το “Υπολογιστικό Νέφος” (ή πως αλλιώς θέλετε πείτε το) Ουσιαστικά πρόκειται για τον διαμοιρασμό δυνατοτήτων,δεδομένων και λογισμικού υπολογιστών και “έξυπνων” συνδεδεμένων μέσω Διαδικτύου. Πολλοί έχουν κριτικάρει τον όρο θεωρώντας ότι ουσιαστικά δεν πρόκειται για κάτι ιδιαίτερα καινούριο απλά η εύκολη πρόσβαση στο Διαδίκτυο έκανε προσβάσιμες τέτοιες υπηρεσίες και λύσεις στο ευρύτερο κοινό.

Σε κάθε περίπτωση όμως τίθεται σημαντικό ζήτημα, με τόσος πληροφορίες μας και προσωπικά μας δεδομένα πως μπορούμε να εξασφαλίσουμε ότι οι ελευθερίες μας ως χρήστες (και όχι μόνο) θα διαφυλάσσονται. O Eben Moglen του Software Freedom Law Center έχει πριν αρκετό καιρό είχε δώσει μια εξαιρετική διάλεξη στην Νέα Υόρκη σχετικά με το πως επηρεάζει το cloud τις ελευθερίες μας στο διαδίκτυο.Στο site του SFLC είναι διαθέσιμη σε διάφορες μορφές και η διάλεξη και οι ερωτήσεις που ακολούθησαν την ομιλία του κυρίου Moglen. Επίσης παρακάτω παραθέτω και την διάλεξη του κυρίου Mogle σε youtube νιdeo για όσους τους διευκολύνει.


μοιραστείτε το: email PDF RSS del.icio.us Facebook Google Bookmarks Twitter FriendFeed Identi.ca LinkedIn Reddit StumbleUpon Netvibes NewsVine Ping.fm

σχετικά άρθρα:

What the hackers are looking for ? #3

For the past year i am looking for http 404 (not found) on my blog. I have only two sites, a blog & a wiki, so without any other web application, i can monitor for web vulnerabilities (that hackers are looking for) by just looking for 404 (Not Found) http errors.

I am using mod_rewrite for URL manipulation. My custom .htaccess redirects every Not Found (404) page to my index.php.
You can use it too, but you must be extremely careful.

You MUST NOT have any valid URLs with one the files below.
If you have, just remove the specific line from the .htaccess file.

An example:

Url: http://ebalaskas.gr/README doesnt exist,
so if you click on it, you should redirect to my home page.

RewriteEngine on

RewriteRule xmlrpc.php$ index.php
RewriteRule login_page.php$ index.php
RewriteRule setup.php$ index.php
RewriteRule config.inc.php$ index.php
RewriteRule multithumb.php$ index.php
RewriteRule orderSuccess.inc.php$ index.php
RewriteRule send_reminders.php$ index.php
RewriteRule config.php$ index.php
RewriteRule ask_password.php$ index.php
RewriteRule msgimport$ index.php
RewriteRule README$ index.php
RewriteRule fastenv$ index.php
RewriteRule main.php$ index.php
RewriteRule sql.php$ index.php
RewriteRule error.php$ index.php
RewriteRule errors.php$ index.php
RewriteRule sitemap.xml$ index.php
RewriteRule show_image_in_imgtag.php$ index.php
RewriteRule phpmyadmin$ index.php
RewriteRule blackhat.dll$ index.php
RewriteRule general.js$ index.php
RewriteRule get_reminders.php$ index.php
RewriteRule install.txt$ index.php
RewriteRule get_events.php$ index.php
RewriteRule auth.inc.php$ index.php
RewriteRule delete.php$ index.php
RewriteRule adxmlrpc$ index.php
RewriteRule class.dashboard_lms.php$ index.php
RewriteRule home$ index.php
RewriteRule default.php$ index.php
RewriteRule index.inc.php$ index.php
RewriteRule logging.php$ index.php
RewriteRule public.php$ index.php
RewriteRule index.inc.php$ index.php
RewriteRule add-cats.php$ index.php
RewriteRule nosuichfile.php$ index.php
RewriteRule judge.php$ index.php
RewriteRule apple-touch-icon.png$ index.php
RewriteRule apple-touch-icon-precomposed.png$ index.php
RewriteRule host-meta$ index.php

August 29, 2010

Αλλαγή εικόνας grub2 menu, και όχι μόνο...

Οπως ολοι γνωριζουμε, ο grub εχει ενα menu, οπου σου δινει τη δυνατοτητα, ειτε να επιλεξεις καποιο αλλο λειτουργικο να κανεις boot,

για οσους εχουν πανω απο ενα λειτουργικο εγκατεστημενο, ειτε να κανουμε boot σε παλιοτερο kernel (πυρηνα), κλπ.

Για να μπουμε στο menu, αυτο που χρειαζεται ειναι να κρατησουμε πατημενο το πληκτρο Shift λιγο πριν φωρτοσει ο grub!

Το menu εχει την παρακατω εμφανιση

http://img830.imageshack.us/img830/8097/screenshot3o.png

διαβάστε περισσότερα

Arduino: Ψηφιακός Ενδείκτης Περιεκτικότητας Οινοπνεύματος.

Το έργο αυτό αναφέρεται σε ένα Sketch (πρόγραμμα σε Arduino) το οποίο υλοποιεί τη λογική ενός ψηφιακού ενδείκτη περιεκτικότητας οινοπνεύματος. Το σύστημα αυτό μπορεί να χρησιμοποιηθεί ως συσκευή για αλκοτέστ. Στο σύστημα υπάρχει ο αισθητήρας MQ-3 για τον εντοπισμό του οινοπνεύματος. Κατάλληλο Bar Graph από πολλά LED  (το οποίο οδηγείται με την βοήθεια ενός καταχωρητή ολίσθησης 74HC595 8 ψηφίων) χρησιμοποιείται ως ενδείκτης διαβαθμίσεων σχετικά με την περιεκτικότητα του οινοπνεύματος. Σε περίπτωση που η περιεκτικότητα οινοπνεύματος είναι μεγάλη τότε παράγεται μουσική μελωδία με κατάλληλο Piezo μεγαφωνάκι. Τέλος, στο σύστημα υπάρχουν δύο πλήκτρα για λειτουργίες όπως On, Off καθώς και ένα LED ως ενδείκτης λειτουργίας.

Παρακάτω ακολουθεί εικόνα του έργου:

Ψηφιακός Ενδείκτης Περιεκτικότητας Οινοπνεύματος – 1.

Ψηφιακός Ενδείκτης Περιεκτικότητας Οινοπνεύματος – 2.

Ψηφιακός Ενδείκτης Περιεκτικότητας Οινοπνεύματος – 3.

Για περισσότερες πληροφορίες μπορείτε να προμηθευτείτε το ίδιο το έργο `alcohol_breathalyzer‘.

Η υλοποίηση αυτού του έργου έγινε στον προσωπικό μου φορητό υπολογιστή, ο οποίος εκτελεί το λειτουργικό σύστημα GNU/Linux. Το οποίο, αποτελεί σύνθεση του σύστηματος GNU και του πυρήνα Linux. Η συγκεκριμένη διανομή που χρησιμοποιώ είναι η “Debian GNU/Linux” (θεωρώ πως είναι ένα Λ.Σ κατάλληλο για ανάπτυξη, συντήρηση και παραγωγή Ελευθέρου Λογισμικού).

Τέλος, σε περίπτωση που δεν μπορείτε να ανοίξετε το αρχείο ή το λειτουργικό σας σύστημα δεν αναγνωρίζει αυτόν τον τύπο αρχείου παρακαλώ εγκαταστήστε το ακόλουθο πρόγραμμα `7-Zip’.

Το παραπάνω έργο προστατεύεται με την Γενική Άδεια Δημόσιας Χρήσης GNU (για όπου υπάρχει πηγαίος κώδικας οποιασδήποτε υλοποίησης) και την Άδεια Ελεύθερης Τεκμηρίωσης GNU (για τα εγχειρίδια της εφαρμογής, την ανάλυση και σχεδίαση).