Skip to content

Instantly share code, notes, and snippets.

module EventMessage
def self.include(klass)
klass.instance_eval do
include Mongoid::Document
field :uid, as: :user_id
field :et, as: :event_type, type: Integer
field :emd, as: :event_metadata, type: Hash
field :ts, as: :timestamp, type: Integer, default: Time.now.to_i
production:
sessions:
default:
database: shine_production
hosts:
- 127.0.0.1:27017
options:
safe: true
consistency: :strong
raw:
@hoan006
hoan006 / check_resque_job_timeout
Last active August 29, 2015 14:00
Resque stale jobs? Put a timeout for each possible one.
module CheckResqueJobTimeout
def self.included(klass)
klass.class_eval do
def self.perform_with_timeout(*args)
Timeout.timeout(120) do
perform_without_timeout(*args)
end
end
class << self
@hoan006
hoan006 / react-datasheet-multigrid.jsx
Last active March 2, 2021 19:02
React Datasheet with React Virtualized - MultiGrid renderer
import React from 'react';
import ReactDOM from 'react-dom';
import ReactDataSheet from 'react-datasheet';
import PropTypes from 'prop-types';
import DataCell from 'react-datasheet/lib/DataCell';
import { MultiGrid, AutoSizer } from 'react-virtualized';
class DataSheet extends ReactDataSheet {
_setState(state) {
super._setState(state);
@hoan006
hoan006 / christinas_api_spec.md
Last active March 15, 2019 10:42
Christina's API specificication

Authentication

This section describes how you can authenticate your requests with Christina’s.

You must use Signature Authentication with our provided HMAC key to sign your request and embed in the Authorization header.

For example:

Authorization: Signature keyId="christinas_api",algorithm="hmac-sha256",headers="host url method date content-type body",delimiter="|",signature="aVp9aJ/LB4uuZIbWPXMsK9EwMHt3I09VYHWkVIxUEZE27ysJ4nRkz3KbmlOTcipX/P7x0CWTepF2E3sNxn/96oHxA9BTwGMv+3ohGXItTHuZcqcWuWOF0uFXozWAZDf6S84ifCNqa6h/VyWcw8BnLEk3yYZH0VEbzfehaV8eGzO4d6RiGsTTfQmpN762lKbyJzWI5OXD4+/A2B/3SuPYFd1Y4ar5T+PtKL5H8tt4kYNEVXuEDG/PfgEXJ9fyJ/xX2BAlsxRqKwN0xPAui+KvBqnOEtkCuKb9/ylajgolCTXWOgEX0apKvmjAgcu4231Q2WQ4sQ99IyQTFjKzgZTz0w=="