Skip to content

Instantly share code, notes, and snippets.

View shivabhusal's full-sized avatar

Shiva Bhusal shivabhusal

View GitHub Profile
@shivabhusal
shivabhusal / script.sh
Created May 29, 2017 11:00
This will update all the commits with new information
git filter-branch --commit-filter \
'if [ "$GIT_AUTHOR_EMAIL" = "old_email" ]; then \
export GIT_AUTHOR_NAME="Shiva Bhusal";\
export GIT_AUTHOR_EMAIL=new_emil;\
export GIT_COMMITTER_NAME="Shiva Bhusal";\
export GIT_COMMITTER_EMAIL="new_emailu@gmail.com";\
fi;\
git commit-tree "$@"'
@shivabhusal
shivabhusal / .nanorc
Created May 28, 2017 11:48
config for my version of nano in ~/.nanorc
# include all the preexisting configs
include "/usr/share/nano/*.nanorc"
set linenumbers
set tabsize 4
set tabstospaces
@shivabhusal
shivabhusal / storing_locals_to_heap.c
Created May 23, 2017 16:19
Demonstrate how we can store local vars to heap using `calloc`, `malloc` so that we can return the references to the caller.
#include <stdio.h>
#include <stdlib.h>
#include <assert.h>
int* getSum(int a, int b){
/* Local var stored in `heap` instead of `stack` */
int* sum = malloc(sizeof(int));
*sum = a + b;
@shivabhusal
shivabhusal / external_vars_defined.c
Last active May 12, 2017 15:39
Unlike static keyword, extern is used to only declare the variable rather than allocating memory. Just after declaring var, you cannot initialize it, you need to define it as well. In case of function declarations, they are implicitly extern. But, incase of variables, you need to explicitly write extern keyword.
#include <stdio.h>
#include "../cspec/cspec.c"
// Withour this line, compiler wont compile your code.
// error: `some_var_declared_somewhere` undeclared (first use in this function)
extern int some_var_declared_somewhere;
void test_runner(void);
void main(){
#include <stdio.h>
#include "../cspec/cspec.c"
int * some_function(){
static int fun_call_counter = 0;
fun_call_counter++;
return &fun_call_counter;
}
@shivabhusal
shivabhusal / unmanaged-index.jsx
Created January 14, 2017 20:45
This looks like mess. Its so difficult to maintain any software with this kind of scattered components. It is always a better idea to sperate out logical things into well defined directory structure. We will do this in a moment. Checkout the next Pull request
import {combineReducers, createStore} from 'redux';
const usersReducer = (usersState = [], action) => {
const new_state = Object.assign([], usersState);
switch (action.type) {
case 'UPDATE_USER': {
var updateable_record = new_state.find((item) => item.id === action.payload.id);
new_state[new_state.indexOf(updateable_record)] = Object.assign({}, updateable_record, action.payload);
break;
}
GIT
remote: git://github.com/spree-contrib/spree_mail_settings.git
revision: d416a1e355893bda625ed5bea187d39526aa52f9
branch: 3-0-stable
specs:
spree_mail_settings (3.0.0)
spree_backend (~> 3.0.0)
GIT
remote: git://github.com/spree/spree_auth_devise.git
@shivabhusal
shivabhusal / spree_sample_order_and_line_items.rb
Last active March 18, 2016 09:17
Spree Sample orders for developers working with spree
Sample Order
<Spree::Order:0x007fa6d37b52d8
id: 6,
number: "R141192317",
item_total: #<BigDecimal:7fa6d3d37d28,'0.1999E2',18(27)>,
total: #<BigDecimal:7fa6d39816c0,'0.2599E2',18(27)>,
state: "complete",
adjustment_total: #<BigDecimal:7fa6d3d37b48,'0.1E1',9(18)>,
user_id: 4,
completed_at: Thu, 10 Mar 2016 03:24:55 UTC +00:00,
@shivabhusal
shivabhusal / wait_for_ajax.rb
Created February 18, 2016 03:39
New updated Waitofrajax
# spec/support/wait_for_ajax.rb
# There is inbuild `wait_for_ajax` method in selinium WebDriver library
# This is for Capybara Webkit only
# #
module WaitForAjax
def wait_for_ajax(timeout = Capybara.default_wait_time)
Timeout.timeout(timeout) do
active = page.evaluate_script('jQuery.active')
until active == 0
active = page.evaluate_script('jQuery.active')
@shivabhusal
shivabhusal / wait_for_ajax.rb
Created February 14, 2016 04:13 — forked from anonymous/wait_for_ajax.rb
When there is ongoing Ajax Request during Capybara test session. You can make capybara wait till all the Ajax Requests finish first. - This Code chunk is actually provided by ThoughtBot - https://robots.thoughtbot.com/automatically-wait-for-ajax-with-capybara
# spec/support/wait_for_ajax.rb
# There is inbuild `wait_for_ajax` method in selinium WebDriver library
# This is for Capybara Webkit only
# #
module WaitForAjax
def wait_for_ajax
Timeout.timeout(Capybara.default_max_wait_time) do
loop until finished_all_ajax_requests?
end
end