Skip to main content

My first experience with RoR

As I was thinking of implementing customized filterable datalists in Alfresco, my focus shifted to RoR. I had heard about RoR being simple scripting language that would help me in converting my thoughts to machine-actionable instructions! With the hope of creating the list in an hours time, I quickly committed myself to RoR inclusion.

RoR comes with its own set of problems. First the RoR examples that work with older version dont work anymore with 2.3.4. The latest version 3.0 was not available for download. Anyways, I downloaded, Aptana's RadRails 2.05 and started my experiments. RoR promotes convention over configuration. This looked very interesting and promising.

I had to struggle to get proper libmySQL.dll to get connected to my MySQL server. It seemed that Ruby 2.3.4 does not work with latest dll of MySQL (learnt from posts across the net). Finally, I was good to go. Indeed, I could get my first application (CRUD) in just 2 hours. Here are my initial opinions on RoR.

I consider RoR as another web framework, intends to ease the developer's effort. Its important to know Ruby programming constructs if you want to advance to next round of programming. Next, its important to unlearn old thinking and learn RoR related constructs, Form helpers, syntax, conventions. Thats too much for me who was looking to develop an app in a quick time. If I have to quickly get my application up, I better know RoR in detail. That simply states, I need more time to learn Ruby on Rails. Probably, developing an RoR application is easier, once I know RoR in depth! I have not lost hope.

I am now thinking of implementing the solution, with what I know already :) I will use YUI data table with JSON and use simple servlet in my Tomcat container. 'Known devil is better than unknown angel!!?'

Comments

Popular posts from this blog

GCP: GAE - Memcache best practices

Memcache is a distributed in-memory data cache in front of or in place of robust persistent storage for some tasks. GAE includes a memory cache service for this purpose. Best practices for using memcache: 1. Handling memcache API failures gracefully; Do not expose errors to the end users 2. Use batching capability of the API when possible 3. Distribute load across your memcache keyspace Use sharding and aggregating for improving performance efficiency. Use TTL (expiration policy) to make sure the memcache does not fill-up indefinitely Use getIdentifiable() and putIfUntouched() for managing the values that may get affected by concurrent updates Use batching (getMulti ("comments", "commented_by") ) to fetch related values together instead of one by one Use graceful error handling

Innate and Non-innate learning

I am reading a book called 'What did you ask at school today?' by Kamala V Mukunda. Would like to share some learning. The book is intended for teachers as primary audience, nevertheless, good for any adult to gain deeper understanding on learning process. She talks about brain structure, innate and non-innate learning aspects and talks about synergy needed between the two in the first two chapters. Firstly, innate learning is something that would not need explicit training. For example, kids learning the language. They wont feel strained or stressed during this kind of learning, just because they enjoy the process, where as non-innate learning focuses more on class room learning. It is accepted that learning through playful means will have more impact on kids than the impact through the structured learning. A physcologist, David Geary puts it this way - while learning through playful means has more impact, children should be encouraged to learn the skills through structure...

Essential GCP services for a new age application

Identity and resource management IAM  Identity aware proxy Resource Manager Stackdriver Monitoring Stackdriver Monitoring: Infrastructure and application monitoring Stackdriver Logging: Centralized logging Stackdriver Error Reporting: Application error reporting Stackdriver Trace: Application performance insights (latency) Stackdriver Debugger: Live production debugging Development management Cloud Deployment Manager: Templated Infrastructure deployment Cloud Console: Web based management console Cloud shell: Browser based terminal/CLI Development tools Cloud SDK: CLI for GCP Container registry: Private container registry Container builder: Build/Package container artifacts Cloud source repository: Hosted private git repository Database services Cloud SQL: Managed MySQL and PostgreSQL Cloud BigTable: HBase compatible non-relational DB Cloud Datastore: Horizontally scalable non-relational (ACID) Cloud Spanner: Horizontally scalable relation...