Wednesday, May 29, 2013

A need to learn Scala ?

Here are a few pointers which is increasing my urge to start learning this new platform.

1.Scala is compelling because it feels like a dynamically typed scripting language, due to its succinct syntax and type inference.

2.It still gives all the benefits of static typing, object oriented modelling, functional programming, advanced type systems.

3. Yet the notion is that the simplicity is deceptive.

I guess its always good to poke in see how deceptive it can be :)

Thursday, May 23, 2013

Google protocol buffers



Running the examples in the source base have issues which are related to the classpath.
Somehow the readme does not state this issue clearly. 
This can result in a wasteful effort.


What I did to resolve the issue in order to run the examples successfully

1)
vmanohar@ubuntu:~/protobuf-2.5.0/java$ mvn install
vmanohar@ubuntu:~/protobuf-2.5.0/java$ mvn package

This generates the protobuf-java-2.5.0.jar in the target directory.
This has to be included in the javac -classpath and java -classpath commands.

2)
Edit the make file appropriately
Edit the make file in /home/vmanohar/protobuf-2.5.0/examples
 
javac_middleman: AddPerson.java ListPeople.java protoc_middleman
    javac -classpath /home/vmanohar/protobuf-2.5.0/java/target/protobuf-java-2.5.0.jar  AddPerson.java ListPeople.java com/example/tutorial/AddressBookProtos.java
    @touch javac_middleman
Add the highlighted -classpath.


3) Now run the make java command 


vmanohar@ubuntu:~/protobuf-2.5.0/examples$ make java

4)Compilation should be successful.
The make file auto-generates a script file add_person_java to ease out the quick-start but it actually ends up amplifying the efforts to find a fix. So do not use the script/ update the script.

I used the following command

java -classpath .:/home/vmanohar/protobuf-2.5.0/java/target/protobuf-java-2.5.0.jar  AddPerson addRecords

Here addRecords is a new file and hence the logic ends up generated logic ends up creating a new file.




--OUTPUT

addRecords: File not found.  Creating a new file.
Enter person ID: 123
Enter name: Peter
Enter email address (blank for none): xyz@gmail.com
Enter a phone number (or leave blank to finish): 234
Is this a mobile, home, or work phone? mobile
Enter a phone number (or leave blank to finish):