Thursday, March 28, 2013

Ομοιοπαθητική.....

Εμείς οι άνθρωποι έχουμε την ανάγκη να πιστέψουμε σε πράγματα τα οποία είτε δεν μπορούμε να εξηγήσουμε, είτε δεν έχουμε τα εργαλεία είτε απλά κλείνουμε τα μάτια (και το μυαλό) και δεν θέλουμε να μάθουμε.

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

Πριν 2 μέρες, περίμενα για να ξεκινήσω την προπόνηση μου, πριν από το τμήμα ενηλίκων είναι οι μικροί. Οι γονείς περιμένουν στο σαλόνι του γυμναστηρίου, λένε τα νέα τους, προβλήματα στο σχολείο, δραστηριότητες και γενικότερα πράγματα της καθημερινότητας για τα παιδιά τους. Σιωπηλά περιμένω και ακούω μερικές φορές. Η συζήτηση ξαφνικά πάει στις αρρώστιες της εποχής, μετά γενικά στις παθήσεις και ακούω τα κλισέ για την ομοιοπαθητική. Πόσο με στεναχωρεί όλο αυτό το πράγμα. Δεν ήξερα πως να ξεκινήσω, πως να σηκωθώ και πω..'όχιιιι μην το κάνεις αυτό'.

Καλύτερα δεν θα μπορούσε να τα πει κανείς  από τον  James Randi.  Όταν βρω χρόνο πρέπει να παραθέσω ελληνικούς υπότιτλους σε σχετικά του video.


Sunday, March 24, 2013

Sound City και ο ήχος της εφηβείας μου.


Παρόλο τον υπέροχο καιρό, μια υποψία ίωσης με κρατάει αυτό το τριήμερο στο σπίτι ή πολύ κοντά σε αυτό (χα χα χα).

Είχα την ευκαιρία χθες το βράδυ να δώ την ταινία/documentary του David Grohl (γνωστός ως drummer των Nirvana, ιδρυτής των Foo Fighters)  που ακούει στο όνομα SoundCity, μετά να μιλήσω με τους 2 μου φίλους, οι οποίοι είναι μάλλον και η μεγαλύτερη μου επιρροή σε ότι εχει να κάνει τα μουσικά γούστα και αφού έγινε αυτό να δώ το keynote του Grohl στο φετεινό SXSW συνέδριο. Δες video παρακάτω.


Αν και με λίγο πυρετό πραγματικά και τα 2 μου έφιαξαν την διάθεση. Η ταινία είναι σχετική με ένα θρυλικό studio στο οποίο ηχογράφησαν μεγάλα group και καλλιτέχνες της ροκ σκηνής, τα πιο γνωστά τους album, από τους Fleetwood Mac μέχρι τους Rage Against The Machine, τους Nirvana και άλλους πολλούς. Πληροφορίες στο επίσημο τους site. Δεν θα σταθώ σε πιο πολλές λεπτομέριες και σε πολλά ενδιαφέροντα τα οποία θα ακούσει και θα μάθει ο μουσικόφιλος κάθε εποχής για τα διάφορα group,  τις τεχνικές ηχογράφησης αλλά και τον ερχομό της ψηφιακής τεχνολογίας, αξίζει να το δείτε και δεν θα χάσετε. 

Θέλω όμως να σταθώ στον ίδιο τον Grohl, που αποδυκνύει ότι δεν είναι απλά ένας flat ροκ σταρ εκατομμυριούχος, ο οποίος περνάει την ώρα του καταναλώνοντας υψηλής ποιότητας ναρκωτικά ή  δίνει λεφτά σε εξιδικευμένα κέντρα για να τα βγάλει από μέσα του ή  ξεφτιλιζεται μέσα από σειρές που καταγράφουν την καθημερινότητα του αλλά και της οικογένειας του (το τελευταίο ήταν σπόντα ναι). Ήταν και παραμένει ένας παθιασμένος μουσικός ο οποίος παρόλο που έχουν περάσει χρόνια από τα 90s που έκανε τα πρώτα του mainstream βήματα και βρέθηκε στην κορυφή, δεν σταμάτησε να δημιουργεί μουσική, να ενδιαφέρεται γενικότερα για την ιστορία του χώρου που υπηρετεί και να παραμένει καλλιτέχνης. Μεγάλωσα ως έφηβος με τα ακουσματα των Nirvana, και της σχετικής σκηνής του Seattle , όταν ήδη group όπως οι Pearl Jam στις αρχές του 90 ειχαν κάνει το όνομα τους γνωστό και μετά έγινε το μεγάλο μπαμ.

Στερεότυπα, αυτοκαταστροφικών προσωπικοτήτων πολλές φορές επιτιδευμένα δημιουργημένα από την ίδια την βιομηχανία που είχε πιάσει τον παλμό μιας σχετικά μπερδεμένης τότε νεολαίας. Βέβαια ακόμα και το τελευταίο μου φαίνεται κάπως κλισέ, 'μπερδεμένη νεολαία' ...όλες οι νεολαίες μπερδεμένες είναι σε κάθε εποχή, οπότε ας μην το παρακάνω, εξάλλου κι εγώ σαν έφηβος δεν πίστεψα ποτέ 100% στην επαναστατικότητα του κινήματος αλλά ως λάτρης της μουσικής μου άρεσε αυτό που άκουγα. Ο Grohl ήταν μια φιγούρα της μουσικης μου εφηβείας, χαίρομαι πάρα πολυ που τον βλέπω υγιή μπροστά σε μια σκηνή να μιλάει για το μουσικό του πάθος,  να προσπαθεί να βγάλει νόημα, να περάσει μυνήματα απλοικά και χωρίς ταμπού.

Τo Σoundcity αλλά και το  keynote με έκανε να ανοίξω την ψηφιακή μου βιβλιοθήκη και να βάλω ξανά δίσκους των Nirvana, Pearl Jam, SoundGarden  και να κάνω μια μικρή βόλτα στα δικά μου 90s, όταν περίμενα να φύγουν οι δικοί μου από το σπίτι για να πάω στο στεροφωνικό που ήταν στο σαλόνι και να βάλω την κασέτα των Nirvana  ή κάποιο άλλη συλλογή που μπορεί να μου είχαν δώσει οι φίλοι μου. Δεν έχω κάτι με την τεχνολογία και δεν μου αρέσουν τα κλισέ, 'αχ ωραίες εποχές' και όλα αυτά. Η κάθε εποχή έχει τα δικά της 'εργαλεία' και ακούσματα και η κάθε νεολαία θα είναι επαναστατική ή οργισμένη για τους δικούς της λόγους.

Αυτό που κρατάω είναι η αγάπη για την μουσική (όχι η επιτιδευμένη) αλλά αυτό το συναίσθημα να κάθεσαι μόνος σου σε ένα δωμάτιο να βάζεις κομμάτια και να θυμάσαι την πραγματικότητα 15 χρόνια πριν ή και παραπάνω. Μια σχέση...ζωής :)



Οι Nirvana στο θρυλικό Unplugged τους σε ένα κομμάτι των Meat Puppets.

Friday, March 08, 2013

Setup your Java Development Environment in Windows 7 (JAVA_HOME,ANT_HOME,MAVEN_HOME, SVN,Git) for newbies

*UPDATE: I have changed the download links for some of the libs, since updated versions are available. The steps remain the same.

I have been receiving a lot of requests over the time, from students and people willing to experiment with the Java language, on providing a simple guide on how to setup a Java development environment , similar to  the one I've written a year ago for Mac users. See here and here.

So, this post is mainly addressed to people new to Java development,  that seek information about setting up their Windows (7 or similar) environment, with all the basic tools and settings, in order to start writing Java code and experiment with various  tools and technologies in the Java ecosystem.

I am pretty sure there are numerous similar resources out there, I just thought to add one more. Hope you find it handy. It is really easy, so don't be afraid of the this post's size, I just tried to elaborate on some simple steps, but for sure it is not rocket science and you don't have to be a 'hacker' in order to complete all the steps. You may not need all the tools below, so it is not necessary to have them all installed at once.

Index

1. Setup Java JDK and JAVA_HOME (this is a must)
2. Setup Apache Ant and ANT_HOME (optional)
3. Setup Apache Maven and MAVEN_HOME (optional)
4. Setup SVN (subversion) support, using TortoiseSVN (optional)
5. Setup Git using Git Extensions (optional)
6. Setup a Java IDE, Netbeans or Eclipse (this is a must)

1. Setup Java JDK and JAVA_HOME
I assume that you have not installed any related tool before, and your system is 'clean' from Java and other Java development tools. So I guess, if you open a Command Prompt and you type 'java -version' you will get something like the following.



We need to install the Java Development Toolkit aka JDK, which is bundled with the Java Runtime Environment. At this moment,  the latest JDK versions is JDK 8 All you have to do is head to the main download page provided by Oracle (here) , and download the latest version that you will find. The direct link for the JKD 8 u18 is here.Start the installer and go through the steps. The images were taking whan I was installing JDK7, the same applies with the latest.

Tip: One small tip or let's say a deviation from the installer that I prefer, is to change the installation path provided by the program to something easier to remember or even type in the command line tool. So instead of installing the JDK to 'C:\Program Files\Java\jdk8_18' etc, I always choose something that looks like the following,  'C:\Java\jdk18'.

I do the same when the installer prompts me to install the JRE (java run time) and I provide the following path 'C:\Java\jre8'. When it is complete, I open a new command line and I re-type 'java -version' as before. As you can see the installer has already done a good job and I have java in my environment. (You may use the 'where' command to find out which executable is loaded on the Path - (similar to 'which' in Unix) ). 


We are almost there, we just need to set, one more environment variable, that is very important by many tools that are based on Java or require Java to work. It is the famous JAVA_HOME variable and you must have heard it or seen it in various tutorials and setup resources. It is easy though!

Open your Advance System Settings ( Press Start , type in the search box 'View Advanced System Settings', open it, select the tab 'Advanced' and press the button in the bottom called 'Environment Variables'). Add a new system variable as it is illustrated below. The name is JAVA_HOME and the path is actually the path our JDK installation, in my case ''C:\Java\jdk18'.



Press OK, and open a new Command prompt ( it is required). Type 'echo %JAVA_HOME%' and you are done. 


Congrats you have successfully set up the java run time and the jdk environment! Let's move on. 


2. Setup Apache Ant and ANT_HOME
Apache Ant is a popular build tool used in many Java projects and it is still needed in many cases when  you need to setup some servers or complex projects. You can find more about Ant here. Installing Ant is easy, there is no fancy installer just a zip file you need to extract somewhere and add a similar variable like JAVA_HOME (see above) called ANT_HOME.

At the time being, the latest version of Apache Ant is, 1.9.4. and can be downloaded here. After downloading the zip file, I choose to extract the contents to a similar path like before 'C:\ant194'. (make sure that c:\ant184 is the root folder and then you have all the sub-folders  like c:\ant184\bin'.
So, now we must set our ANT_HOME variable and add the 'ant' executable to our windows Path so that we can invoke it in our command line by typing 'ant'.

Setting ANT_HOME is similar to JAVA_HOME, add a new system variable named ANT_HOME and value the path where you have the ant zip extracted in my case 'C:\ant194'. See below



 In order to add the 'ant' command to our executable path we need to update the PATH system variable, in the very same window, as illustrated below, just hit 'Edit'. Go to the end of the line and add a new entry (all the entries are separated with ';'  ). The path for the ant executable is 'C:\ant194\bin' but we will use the ANT_HOME variable in order to be more flexible so we will add, %ANT_HOME%\bin''. See the image below.



You are done, open a new Command Prompt, and type 'ant -version',  or 'echo %ANT_HOME%' you should get similar results are illustrated in the image below. 


Congrats, you have successfully installed Apache Ant! Some Java IDE's have Apache Ant already per-bundled (as we will see in a later section) but I truly believe it is better to be installed manually,it is cleaner and easier to maintain, update.

3. Setup Apache Maven and MAVEN_HOME
Apache Maven is very popular tool among java developers, it does many things and has many uses. It is a building tool, a library dependency tool, a software project management and comprehension tool as it is indicated in the tool's  site. You may find more about maven here. The installation of maven is similar to Apache's Ant, just a zip extracted somewhere and setting up a couple of variables + updating the system path. The latest version at the moment is 3.2.3 and can be downloaded here. There is already a short and handy setup guide provided in Maven's site (see here), I am going to write similar steps.

After downloading the zip file, I choose to extract the contents to a similar path like before 'C:\maven323'. (make sure that c:\maven323 is the root folder and then you have all the sub-folders  like c:\maven323\bin'.

So, now we must set our MAVEN_HOME variable and add the maven executable to our windows Path so that we can invoke it in our command line by typing 'mvn'.

Setting MAVEN is similar to JAVA_HOME or ANT_HOME, just add a new system variable named MAVEN_HOME and value the path where you have the ant zip extracted in my case 'C:\maven323'. 

See below.

In order to add the 'mvn' command to our executable path we need to update the PATH system variable like we did previously, in the very same window, as illustrated below, just hit 'Edit'. Go to the end of the line and add a new entry (all the entries are separated with ';'  ). The path for the maven executable is 'C:\maven323\bin' but we will use the MAVEN_HOME variable in order to be more flexible so we will add, %MAVEN_HOME%\bin''. See the image below.


You are done, open a new Command Prompt, and type 'mvn -version', or 'echo %MAVNE_HOME%' you should get similar results are illustrated in the image below.


Congrats, you have successfully installed Apache Maven 3!Some Java IDE's have Apache Maven already per-bundled (as we will see in a later section) but I truly believe it is better to be installed manually,it is cleaner and easier to maintain,use or update.


4. Setup Subversion (version control) using Tortoise SVN
Subversion is a popular versioning system among Java developers.  You may find further information about it here. There are numerous subversion clients that you may install in your computer. The original subversion command line client can be found here (for windows). All of the Java IDE's come with support of SVN either with per-bundled clients or plug ins. I tend to use the clients offered by my IDE but I always want to have an extra client that gives me extra flexibility on certain things. I think that tortoise svn is an excellent choice for Windows users, it has full SVN support and excellent integration with the Windows file system.

You find the latest version of the client here, current is 1.7.11 (compatible with SVN 1.7.8). Download the executable and follow the steps. The only addition on the default settings is that I select to install the command line tools as well, as illustrated in the image below.



After completing the installation you can access Tortoise, using your right click in any folder, like the image below.


As I have already pointed out, most of the Java IDE's around offer SVN integration, out of the box but is always a good thing to have an extra client, in your windows shell. Tortoise is a great one, you can actually work with tortoise and skip your IDE's integration if you like so!

If you don't like Tortoise and you want to consider yet another client then I suggest you have a look on the free edition of SmartSVN.


5. Setup Git (version control) using Git Extentions
Git, is another version control system that is becoming very popular among developers in general. In many cases it is replacing SVN, so there is a high chance you might be required to work with it, or work in projects that store their code on a remote Git repository or contribute to an open source project at GitHub. You may find more about Git here.
Git is the new kid on the block on popular versioning systems, so some tools or support still may not be so user friendly comparing to tools and clients of SVN. Git is also encouraging users to interact with it, using the command line interface. The stand alone git installation for windows can be found here. This will install the git client and support tools and you may start experiments with it, using the command line. If you want a more UI friendly way, then you may choose one of the free clients. (so, don't install the standalone client).
My choice at the time being is Git Extentions, which can be found here. The nice thing about Git Extentions is that with one download you get the native git client and all the nice UI tools, similar to Tortoise featured in the previous section. So you can just download the git extensions msi package, and follow the installer's step - just make sure to enable (when you are prompted to do so) the mygit support. See the image below.

I have disabled any visual studio support, since i am not going to to install this particular IDE. On the next step, I select Putty to be installed as my ssh client.


On the related prompt of the Git installer, about altering your System's Path, I always select the second one, so that the 'git' command is added to my command line exec path. See the image below.

Continue with the rest of the installation and the various tools installed. The provided, default selections are safe to use.
As you can see, by the end you are going to have the related icons, copied in your Desktop. Congrats you have full Git support on your development environment! Double click on the Git Extentions icons and set the final details like language of use and username / email to be used while interacting with git repositories.


6. Pick your Java IDE : )
 
Up until now we have installed a variety of tools towards setting up our Java Development environment. Since the JDK is already installed (from step one) we could actually jump to coding just by using our text editor of choice (NotePad++, TextPad, NotePad, Ultra Edit etc) and invoking the javac and java commands from the command line. It is good to know that this is an option but I would highly recommend you start doing your experiments using a real IDE, and there are a lot of them in the Java development world and are considered very very powerful.

Netbeans

If you are a total newbie and you have just started using or learning Java, then your first stop, according to my opinion should be Netbeans. It is one of the best Java IDE's around, used by many  professional java developers all around the world and is really targeting towards ease of use and productivity from the very beginning. You can find Netbeans (currently latest version 8.1) here. If you are about to work with some more advanced java stuff like the Java Enterprise edition (aka Java EE) then I think you should try downloading and install Netbeans with Java EE support and not the simple version. Upon installation it will prompt you about the bundled Java EE container (aka application server) that can install for you. My choice is GlassFish. 

See the image below.


Continue with the rest of the installer prompts, your already existing JDK installation from step 1 should be picked accordingly by the setup script and be used by the IDE as well. The image below illustrates a fresh install of Netbeans running.




If you are looking for a quick guide or tutorial on using Netbeans, have a look here or have a look on numerous videos on youtube, here.

Eclipse

Eclipse is along with Netbeans, one of the most famous Java IDE's in the whole Java development community. It's user (installation base) might be larger comparing to Netbeans and is usually the IDE of choice for hard core Java developers. I am currently an Eclipse user as well, but I personally don't find it a good fit for someone that is now starting to 'play' with Java. There is a large community behind it, (as with Netbeans) numerous resources and support forums. It is not that hard, but if you are a new developer and you are still trying to make your way into basic stuff there is some possibility that you lose your way and get disappointed, something that we don't want :). 

I don't want the above paragraph to be the start of a flame war especially for hard cord eclipse users, I am actually an eclipse user myself, I just think that Netbeans is more 'newbie' user friendly, and it is critical that new java developers don't get disappointed after trying to complete their first assignment or task in Java. 

The latest version of Eclipse currently is  Eclipse 4.3  (codename Luna), and the downloads page can be found here. You can either select the Eclipse for Java or JEE developers download, depending on your assignments/tasks or interest. Eclipse does not pre- install any servers or support tools as such. All the extra functionality should be added afterwards through the Plugin system that offers. (See Eclipse Market place).

Eclipse does not have any installer, it comes as a zip file, all you have to do, is download the zip and extract the contents (like we did with Ant, or Maven). I usually pick a simple folder, like in previous section e.g 'C:\eclipseLuna' . Open the folder and you will find the executable (eclipse.exe). You should have something like the image below.


If you don't like Netbeans, neither Eclipse, you may try another popular option, Idea IntelliJ, it can be found here.(Update: This my IDE of choice lately)


That's it, happy coding!