About Shivani Thakur
I am life time learner, passionate about technology, fullstack programmer and prefer clean deliveries. I am fearless, honest and vocal about my thoughts. That helps me personally and professionally to convey my thoughts clearly. I do not like unfinished stuff for long time as that makes me uncomfortable. I Love to try out new technologies :) and completely enjoy UI designing. I like reading books, most of the times I prefer to read motivational and spiritual books. To enjoy nature and God's creation I do landscape/nature Photography. I paint to be with myself and love to travel places. I like mediation as that way I can spend time with myself and listen to myself. I am a loner so I love spending time with myself. I am not extrovert but I love good company. I love cooking new different recipes in my free time. Movies and Music (Meaningful songs :)) are refreshing for me. I love writing too and would love to write book some day!!
All blog articles by Shivani Thakur

I personally love this combination of iTerm2 + ZSH + Oh-my-zsh.

iTerm2 is an amazing terminal, I always prefer it over macOS default terminal. If you want to install it then just go to iTerm2 site , download it and install It has many advantages over macOS default terminal. Some of those are, easy finder you can easily search for the text in terminal, nice autocomplete feature, split panes, paste history and many more. I would highly recommend it and you can explore all of its highlighting

Read complete blog post

When we write code in Imperative programming languages, we make this mistake of considering a procedure as a function many times without realizing it. We keep using word function commonly. Whether the written method is a function or not.

If you do not believe me then keep reading this article and you will see that.

To start with let's see what is actually a Pure Function and Impure Function  

Pure Function

The pure function always has following:

  • Accepts one or more parameters
  • Each…

Read complete blog post

These days Javascript frameworks are part of, most of the development projects. We have to work on various JS frameworks over the period. Having good extensions/plugins added to our editor really makes our life easy and improve developer's development speed. So here I am listing some of the Sublime Text editor packages which are must for JavaScript and JS framework based projects.

We use Sublime Text editor in our organization in most of the projects. Generally, people who are working in open…

Read complete blog post

Shivani Thakur

I have been writing code in Imperative programming languages for many years. Writing code in functional programming is a big shift and change in thinking. As I recently started with Elixir and when I was reading about Functional Programming, I keep reading mention of Lambda Calculus every time. That ignited my curiosity to brush up my computer science knowledge.

As Functional programming languages implement Lambda Calculus(λ-calculus). If we understand how Lambda Calculus notation works from…

Read complete blog post

It is always a good practice to keep a check of your code quality and code coverage. Writing test cases for your code is extremely important as that helps you identify any failure before hand. There are many articles about how to write test-case and why we should write etc. However, I would be covering here, how we can integrate Test coverage to Code-climate in your Ember.js app while you are using CircleCI.

In todays world most of us use auto-deployment (e.g. tools like CircleCi, Travis CI…

Read complete blog post

enter image description here

Team Synergy

Team synergy is a very important factor for a successful project and thus organization. Over the years while I worked on various international projects and worked with different individuals I noticed that if we lack team synergy then many things go for a toss. Sometimes it can impact recent or current releases and sometimes it can have a bigger impact across organization.

There are many team synergy issues which we come across at workplace. However important is to identify those…

Read complete blog post

Shivani Thakur

Recently we had a good Retrospective. I loved the outcome of this retrospective. First we had an Ice breaker session, Empathy Snap followed by PLEASURE AND GAIN retrospective.

Empathy Snap Is a nice Ice breaking team building exercise. We did empathy snap for the big hitter +big blow and through this exercise team really came to know, how well they can empathise with each other So it was a nice start, everyone opened up and ready for the retrospective.

Joy is not in things; it is in us.

Read complete blog post

If you have recently upgraded your Xcode to 7.1 version, you will start getting cordova/CDVViewController.h file not founderror. You would be surprised that earlier build was working perfectly fine with Xcode 6.4 and Xcode 7.0


Error - cordova/CDVViewController.h file not found

To fix this error follow these steps:

  • In Xcode select the project and go to Build Settings of the project and the Search for Header Search Path It will show you below shown screen enter image description here

    Double click on the Multiple values row and it will show you a list pop-up now add…

Read complete blog post

In our ember.js based project after getting latest code and running following commands:

npm install && bower install
npm start

when I was starting app, it was failing randomly with following error.

(FSEvents.framework) FSEventStreamStart: register_with_server: ERROR: f2d_register_rpc() => (null) (-21)


throw er; // Unhandled 'error' event
Error: watch EMFILE
  at exports._errnoException (util.js:746:11)
  at FSEvent.FSWatcher._handle.onchange (fs.js:1161:26)


Read complete blog post

As you know Heroku does not run rake db:migrate automatically Most of the time we all face this issue of not running migrations on Heroku post deployment. Either we forget or for some reason we miss it. However there are some gems/plugins that help us overcome these issues.

Even when we use heroku auto deployment feature, there also we need to run rake db:migrate manually and Heroku will not run it automatically for us. That means it is not fully automatic.

When I setup heroku

Read complete blog post

While we deploy our changes to heroku, we use deployment scripts or setup yml in CI server. However Heroku has come up with an auto-deployment feature and for that we do not need to use even command line tools.

  • To take advantage of this feature you should use Github/Bitbucket version control system

  • If your Github/Bitbucket repo is setup and you have already pushed your code to Github then you are good to start with heroku

  • I assume that you already have Heroku account and heroku-toolbelt is…

Read complete blog post

This is very useful Ruby command to share your local folder with everyone on the same network.

Thanks to Rohan! As we were working on something and he wanted me to share my local folder quickly.

Rohan shared this Ruby command with me and since then every now and then I am using it in office to share stuff with teams. Command is:

ruby -rwebrick -e 'WEBrick::HTTPServer.new(:Port=>PORT_NUMBER,:DocumentRoot=>”DIRECTORY_PATH").start'
  ruby -rwebrick -e

Read complete blog post

You might have seen similar code in javascript. I wanted to understand how it is working. As it does not look like a ternary expression.

return {
  "false": React.DOM.a({
    href: "javascript:void(0)",
    onClick: this.linkClicked
  }, "Click Me Now"),
  "true": React.DOM.span({}, "You have clicked")

While discussing with team we found that, it is nothing, but a SWITCH CASE

click her to see shorthand for js

So when we execute above mentioned code, if…

Read complete blog post

I was working on ActiveAdmin views and as we are using html editor for some of our text fields so we wanted to make sure when we are showing that html content in the application. It should be readable and without html tags.

To do that generally it is mentioned to use a block for the field and use .html_safe method. However I did not like this approach, as we have too many fields where I have to call html_safe method and I was not keen to write block for each fields. I know :) I am lazy in that…

Read complete blog post

Yesterday I was working on one of our portal (It's in Ruby on Rails and we have used quite alot jquery as well). Was integrating a nice Photo Gallery plugin on one of the page. Applcation is having many pages. Every page has some different behaviour and we have different jquery calls for that as per need.

For a performant application, we always want to avoid any unwanted calls to different methdods/functions. In my case, as I mentioned earlier I wanted to show Photo Gallery on a page and photo…

Read complete blog post

Shivani Thakur

I thought to create a quick tip post which is kind of lesson learnt, so that every time I learn something can add here and which could help others too.

These examples here are not something I have created to support the points which I have mentioned below. Whereas these are the real code snippets of a project. Where team has written code in this manner and given feedback to improve their code.

So I thought it would be better if I write a Lesson learnt post which could help other to be aware of…

Read complete blog post

From last two days we were running into an issue with the Postmark API based email attachments, specially when you have to use the remote file url for the attachment. Also we were not seeing any error logs for non-delivery of attachments.

So Swati and I started with different approaches to solve the problem. I will be explaining here the approach where I directly used the Postmark API key and tried to send an attachment with email using CURL command. Whereas Swati will soon add here post about…

Read complete blog post

Few months back we had a nice pagekite.net - fast and reliable localhost tunneling solution post by Swapnil.I am extending it further.

Pagekite and localtunnel both the solutions are really good. However both has some drawback or limitations. e.g.

  • For Pagekite you should have an account on Pagekite site and that login will last only upto 30 days or so. However most of the time you do not need Public sharing of the app all the time

  • For localtunnel the only drawback is change of url every time…

Read complete blog post

Shivani Thakur

Everyone these days working with one or the other Version controls systems and Agile tracking tools. Currently for our most of the project, we are working with github and for tracking we all are using Pivotal, Trello or some other tools.

Now these apps are having some cool apis and api tokens which helps us integrating Version control system and tracking tools So that when we commit something that same message gets saved in our tracking tool. At the same time those tracking tools change their…

Read complete blog post

Windows Azure with Node.js

Windows azure is a windows based cloud services, you can deploy your code and build your apps on the cloud server. Also it has support for all the OS and not just for WIndows. Also you can setup Virtual machine and you can do a Remote desktop to that machine. Which is a nice feature.

As initially when Node.js was launched it was not supporting the windows environment. But later on to use Node.js on the Windows machine and allow user to build and deploy Node.js apps…

Read complete blog post