Fear of emerging trends

So far in my work life, I have been more of a generalist who knows a little of a lot of things, but none in great depth.

I happened to chance upon the careers page of a promising startup and realised I could probably never apply to any of the roles mentioned there due to the above fact. The prospect of becoming ‘out of market’ freaks me out in a way.



Posted in Uncategorized | 1 Comment

Courselog : Week 1 Introduction to R programming

I am taking this 4 week course about the fundamentals for R programming via Coursera 

Here is a summary of what I learnt as part of Week 1

  1. The origins of R
  2. The basic units of data that one can deal with in R
  3. Reading From CSV files and working with the data
  4. Conditional filtering of thus imported data and basic mathematical aggregation such as mean, max,min etc

So far the Quiz and the assignment has been not too tough, not too easy at the same time.

Posted in Uncategorized | Tagged ,

How to handle merge conflicts with git

Even though there is enough documentation about this topic on the internet, often the topic of resolving merge conflicts becomes a white elephant that everyone talks about but does not how to do well. So here is a video that explains exactly how it is done —

I came to know about this via FB, shared by good friend Rajmahendra Hegde – https://www.linkedin.com/in/rajmahendra

Posted in How To...

EventLog – vodQA Pune 2014

On Saturday, I attended vodQA  2014 – an annual event run by Thoughtworks. vodQA is an event focussed around testing and quality assurance targetted towards professionals in the software testing field.

There were multiple tracks in the event, sharing significant insights below from the ones I that I attended –

  1. Responsive web testing
    1. The talk was about the Speakers’ experience with using http://galenframework.com/ – a framework that enables one to do automated testing of the look and feel of your responsive websites
    2. Based on Selenium, the tests written with this framework will help you do Purely UI and view level acceptance testing.
    3. While there are language specific libraries (Java,JS), knowledge of any of these languages is not necessary to get started with writing tests using this framework as the basic syntax of the spec files are based on Markdown
    4. Tests written with this framework are not to replace the functional tests otherwise written with Selenium, instead to do cross-form factor, cross-browser rendering of UI elements of your responsive web applications
    5. All tests generate clean HTML reports that can be observed later
  2. Crowd Sourced Testing – Apparently, there are websites and web applications where the testing of web applications can be crowd sourced where, as an organisation, you get a better variety of people(with diverse perspectives) to test, use your application and give feedback, and as a tester, an opportunity to widen your horizons in terms of capability of testing multiple application. These sites come with multiple bells and whistles to safeguard the interests of all the stakeholders involved in a transaction. One such service – https://www.passbrains.com/
  3. Common Tools used for automating load testing  – I did a dipstick survey of what tools are most commonly used for load testing – LoadRunner, JMeter, Apache Bench
  4. How to break your application using Gatlling

    1. This was a short demonstration of Gatling – an opensource tool based on Scala,Akka and Netty used to perform load testing
    2. Top advantages observed –
      1. Simple DSL to specify the scenarios
      2. Capability to do both  Spike load testing, Endurance(Sustained load) testing
      3. Other tools in the category are Apache Bench, Siege, Locust, and JMeter
      4. While the possibilities are endless, the metrics to really care about while testing one’s application are response times to the 90th, 95th and 99th percentile
      5. This tool generates clean HTML reports and graphs from the tests run
Posted in TechTalks | Tagged , ,

Today I Learnt – Alter Sequence Caching

While this blog has been suffering neglect, I have been experimenting with a bunch of things in the last few months. Sharing what I learnt today – When we modify the last_value of a table sequence in postgres, the changes do not reflect immediately, i.e. the next value of that column(which is populated by the sequence) does not start with the new value right away.

To quote the documentation –

ALTER SEQUENCE will not immediately affect nextval results in backends, other than the current one, that have preallocated (cached) sequence values. They will use up all cached values prior to noticing the changed sequence generation parameters. The current backend will be affected immediately.” – Notes section of  http://www.postgresql.org/docs/9.2/static/sql-altersequence.html

Posted in Code Samples

How to connect to an existing database with sqlite3 3.6.20

If you have the later versions of sqlite, then using the command line client sqlite3 to open a .db file is easy, and is available on the 1st page of a web search, which is that you get into the commandline with sqlite3 command and then type “.open </path/to/filename>” and connect to a specific exisiting database.

But in version 3.6.20 – when you do a .help – you will notice that there is no .open command. And when you type  “.open </path/to/filename>” , sqlite3 will politely respond with the message – ‘Error: unknown command or invalid arguments: “open”. Enter “.help” for help’

The solution is to pass the .db file name as a command line argument – i.e. you do a ‘sqlite3 </path/to/filename.db>’ to connect to an existing database.

This is a version specific post. Other environment details – CentOS 6.4 (final) and SQLite was the version bundled with Python 2.6.6 .

Posted in How To... | Tagged ,

How To get php5-mcrypt enabled / php5-mcrypt installed but not working Ubuntu 14.04

Hi! Yes this blog is alive, and the author is alive too.

Recently while dealing with some encryption code in php, I faced this problem – I had checked out code that a colleague had written and was making some changes.  While running it, the code wouldn’t work as long as the encryption part of the code was included.  Comment it out and the rest of the pieces were working fine. And digging deeper, I realized that probably, encryption modules where not installed yet – because the code was failing exactly at

 mcrypt_module_open(MCRYPT_RIJNDAEL_128, ”,’cbc’, ”);

I did the following to fix this:-

Environment – Ubuntu 14.04 – Nginx+php5-fpm with Nginx connecting to php5-fpm via unix socket

With a little help from Ubuntu Forums – Ran this command

 dpkg –get-selections | grep php

And got this as the output –

php5-common install
php5-curl install
php5-fpm install
php5-json install
php5-mysql install

 This command lists the modules/libraries installed in our systems – and this clearly showed that the php5-mcrypt module was not even present.

I did

sudo apt-get install php5-mcrypt

and after the installation,

sudo service php5-fpm restart

But this still dint work. Finally the fix mentioned in this link worked for me – https://bugs.launchpad.net/ubuntu/+source/php-mcrypt/+bug/1241286

and a sudo service php5-fpm restart

And it finally worked.

Posted in How To..., Uncategorized | Tagged ,