Tuesday 11 November 2014

Ruby equivalents of Python code

Just as I upgraded my iMac to OS X 10.10 (Yosemite), I saw that it came with Swift. Not the Maruti-Suzuki sedan, but a new language that Apple has put out. Oh information overload age, I missed knowing about it all these days.

Saturday 1 November 2014

My Grails Trail : Use Case 0.4

* Use MySQL as the development database
* Change the default package to com.mhalgosolinc.raygate

Friday 31 October 2014

A.P. Government Using Big Data Analytics

There was a news item in Andhra Jyothi dated 05-Oct-2014 on how the government of Andhra Pradesh is leveraging Analytics for efficiencies in welfare schemes implementation and benefits disbursal. I searched the web but could not find this coverage in other papers and channels. So I translated the Andhra Jyothy news report into English, to add to the knowledge base on Big Data Analytics.

Sunday 26 October 2014

Python tuple sort idiom in Ruby

Was looking at some Python code recently, which uses tuples to sort, and wondered what the Ruby equivalent code for the same would be.

1. The first snippet
distances = []
distances.append((distance, user))
distances.sort()
return distances

Thursday 23 October 2014

Suffixed Communication

I got introduced to the term Nonviolent Communication at a LICH meetup. A motley group, LICH is Literary, Intellectual & Cultural Hub meetup which meets twice a month, at Banjara Hills and Madhapur. For the 5th August meet, the organizers had brought Shammi Nanda, who talked about nonviolent communication. Until I attended this meeting I had no idea that such a thing as nonviolent communication existed.

Saturday 18 October 2014

My Grails Trail : Use Case 0.3

Continuing my encounters with Grails in whatever limited time I am able to garner. Wrote a small use case and implemented it.

Use Case
* Menubar should be a common resource called from various screens
* Menubar should have a menu item "About Us". This should have three sub-menu items: "Company", "Mission", "Contact Information".
* "Company", "Mission", and "Contact Information" are static pages and do not need any model data.

Monday 6 October 2014

Ubuntuing And Hadooping

Been ubuntuing and hadooping for some days now. But first a digresssion. I have this funny, non-scientific correlation : If you go to a place that has a bunch of programmers, be it a startup or a technical conference, and if you see a predominance of MacBooks, then that place is mature and on par with Silicon Valley. If you find a predominance of Ubuntu, then it is an ecosystem on the rise. If you find the bunch of techies without laptops and the few there have Windows, then it is a laid back place which has potential (read Hyderabad) and a lot has to be done :)

Now, don't get upset with my statement. Or start a flame. I said, funny and unscientific, didn't I? Back to the topic of this post.

Monday 25 August 2014

Thoughts On Hibernate

The main purpose of Hibernate/JPA was to address and solve the Object - Relational impedance problem. Java is an object-oriented language and there is no way but to use classes and methods. So we design and develop our Java applications in the object-oriented way.

Since programmers use and deal with objects, and data resides in tables related by common fields (keys), there is a mismatch. Technically, yes, the way data are laid out in the columns of tables and the way they are used in the application as the class / instance variables there is. So when we see, comprehend and discuss the data on the application side and the database side, there is a difference in the visualization and communication.

Wednesday 20 August 2014

Flying Short Distance With Ruby And Dijkstra

It’s been long since I wrote a decent program in Ruby; decent as in non-trivial, non-Hello-World program, but not one for a client to put in production. I find Ruby coding a pleasure because of its support for ‘Perl-isms’.

The program I wrote is to find the shortest distance between two airports. If we setup the airport IATA codes as vertices of a graph, and distance between two airports as the edge weight between two vertices, Dijkstra’s Algorithm will find the shortest path between two given airports.

Saturday 9 August 2014

Grails Trails : Use Case 0.2

From my previous outing with Grails, I am continuing my pursuit of Grails development. This time with a very simplest of the simple use cases.
Add a menubar to home page.
Menubar should have one menu item -- Profile
Profile menu item should have two sub-menu items -- View / Edit

Wednesday 6 August 2014

Film Making And Technology

Technology (from Greek τέχνη, techne, "art, skill, cunning of hand"; and -λογία, -logia) refer to the collection of tools, including machinery, modifications, arrangements and procedures used by humans. Engineering is the discipline that seeks to study and design new technologies.
-- Wikipedia
Technology and film making. I am beginning to like this interplay, being a movie fan from my childhood years, and having spent my adult years in engineering and technology. Of course, the film industry is heavily technology driven already and breath taking graphics are the handiwork of skilled professional playing with modern software. What’s new is that it is being brought home into the Telugu land.

Monday 4 August 2014

Level Zero Post On R

For the things we have to learn before we can do them, we learn by doing them.” -- Aristotle
Tutorials that tell the learner to “do” the tutorial are the ones that I like the most. A lot of regular tutorial give a bunch of steps, examples and even the application to deploy. But that doesn’t aide very much in learning. Sure, if you are working on a project and get stuck on something, you would use the tutorial as a quick reference. But if you are on the beginning of a learning curve of a new language or a framework, you gotta type up the code. When I go through a tutorial, I take prints and actually type the code, then compile and deploy the examples. The time span that you would get as you do the typing and the different ideas you get strengthens the learning process.

Tuesday 22 July 2014

Back to Grails

Got my hands onto Grails coding after nearly a year. I had done a small project using Grails as my spare-time coding but lost the whole thing when I backed it up on a pen drive, went for an OS upgrade and then found that the pen drive was messed up and could not retrieve the stuff.

Sunday 13 July 2014

Hello NoSQL World

The Architects group in Kewill Product Development have been evolving a model reference architecture for the next generation products that will offer cutting edge features to our customers. NoSQL databases are one of the key components of the new architecture; though we already use them in our existing product suite, they will have an enhanced role to play in the future. We are going with MongoDB.

Having been used to relational databases for most part of my career, the NoSQL flavor is an interesting and welcome change to application development. To get a first hand feel for MongoDB, I wrote a couple of newbie Hello-World programs each for inserting into and fetching data from MongoDB and MySQL.

Sunday 20 April 2014

Belated Wishes

This is the first post of 2014. I should have done a new year post in January itself. I did not write it then, kept postponing it, and we are in the second half of April. But, better late than never.

It went really fast, 2013. On the personal front, I managed to write 30 blog posts, upload four translations on ruwiray.in and release two short films on YouTube. Undoubtedly if there was one thing that distinguished the year, it was my serious foray into short films. At work, amongst other things, I could lead the effort to make the first customer go live on the re-worked warehousing solution 4S eLog, front-ended the technical team in the acquisition due diligence, and after Four Soft became Kewill, transitioned to being the head of Product Development at Kewill India.

For 2014, I have modest personal targets. I plan 20 blog posts, 8 translations, and four short films. I did not spend a lot of my spare personal time on coding and I intend to make up for that this year. Let's see if I can make the first releases of two applications this year. And also a few data analysis type programs which will be on Ms Excel, Ruby and R. On the creative side, I wish to explore the genre of magical realism and hope to have some output in it. Two stories, hopefully I can pull off. At work, there is a lot to accomplish, amongst which the chief one is help realize the new Kewill reference architecture. My new boss is Greg Carter, the CTO and he is like the supportive oxygen system that has been missing in my life for years and years now.

As I write this post, there is an element of upbeat mood in me as I believe that these are good times for all. An extremely belated happy and successful 2014 wishes to all of you.