Skip to content

Instantly share code, notes, and snippets.

View amolpujari's full-sized avatar
💭
I may be slow to respond.

Amol Pujari amolpujari

💭
I may be slow to respond.
  • Pune
View GitHub Profile
@amolpujari
amolpujari / egauge_simulator.py
Created February 25, 2014 06:33
egauge data simulator
push_url = None
auth_string = None
register_names = []
reporting_interval = 60
min_reporting_interval = 5
max_reporting_interval = 600
sampling_interval = 1
@amolpujari
amolpujari / mongodb_data_modeling_and_implementations_notes.md
Created February 12, 2014 05:21
MongoDB Data Modeling and Implementations Notes

MongoDb Data Modeling Notes - v1.0

This is a rough document getting prepared for db design and architect level decisions to be made while dealing with area where one wants to consider MongoDB abd web services.

The tools would mainly include mongoDb, RSTful resources, background jobs, and possible queuing engine(RabbitMQ) to provide unit inputs to the background jobs. After measurements caching layers like ElasticSearch can be introduced as require. MySQL can be considered in few cases to support non-relational data storage as per need.

RESTful services and background jobs can be implemented using best frameworks available in Java. Or now a days extreme-service-developers are talking about wonders of Go language, hence would be great if Go language is considered for writing service layer. This is one very nice article about the REST services in Go

@amolpujari
amolpujari / DBCon.java
Created February 11, 2014 21:38
my first attempt of writing a java class that would hanlde multiple db connections and their status
import java.sql.Connection;
import java.sql.DatabaseMetaData;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.Enumeration;
import java.util.Hashtable;
import java.util.Properties;
@amolpujari
amolpujari / spec_helper.rb
Last active August 29, 2015 13:56
spec_helper.rb reading STDIO
require "#{File.dirname(__FILE__)}/../lib/transactions.rb"
include Transactions
def capture_stdout(&block)
original_stdout = $stdout
$stdout = fake = StringIO.new
begin
yield
ensure
$stdout = original_stdout
@amolpujari
amolpujari / transaction_spec.rb
Last active August 29, 2015 13:56
dummy transactions
require 'spec_helper'
describe "Transaction" do
it "should handle dummy numerals" do
transaction_input(%{
x1 is I
x5 is V
x10 is X
x50 is L
x100 is C
@amolpujari
amolpujari / mailer_helper.rb
Last active January 1, 2016 12:38
Inside an email template, I want to highlight changes made to active record object
module MailerHelper
def highligh_changes_made_to object, options={}
html = ""
attrs = options[:attrs] || object.class.attribute_names
html << "<br/><p>"
attrs.each do |attr|
html << "<p> #{attr.to_s.humanize} : "
if object.previous_changes.include? attr.to_s
@amolpujari
amolpujari / mailer_knows.rb
Last active January 1, 2016 12:38
My rails mailer knows request and current_user
# config/initializers/mailer_knows.rb
module MailerBefore
def before(hash)
hash.keys.each do |key|
define_method key.to_sym do
eval " @#{key} = hash[key] "
end
end
end
@amolpujari
amolpujari / admin.lightbox.css.scss
Created December 19, 2013 10:50
admin.lightbox.css.scss
body.active_admin #modal_shadow{
z-index: 999998;
position:fixed;
top: 0px; left: 0px;
height:100%; width: 100%;
background:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAAADUlEQVQIW2NsampKAwAFAgHu04pC4AAAAABJRU5ErkJggg==) repeat;
display:none;
padding: 0; margin: 0;
}
@amolpujari
amolpujari / admin.lightbox.js.coffee
Created December 19, 2013 10:41
admin.lightbox.js.coffee
window.admin ||= {}
$.extend window.admin,
lightbox:
show: (options) ->
options = {} unless options
buttonDone = options.buttonDone or "Done"
buttonCancel = options.buttonCancel or "Cancel"
focus = options.focus or "input"
@amolpujari
amolpujari / thread_pool.rb
Last active August 7, 2020 06:38
smallest thread pool in ruby
class ThreadPool
attr_accessor :threads, :max_size, :wait_time_to_free, :name
def initialize max_size=4
@max_size = max_size
@threads = []
@wait_time_to_free = 0.1
end
def start *args, &block