Skip to content

Instantly share code, notes, and snippets.

@D-system
D-system / service-checklist.md
Last active September 27, 2016 07:49 — forked from acolyer/service-checklist.md
Internet Scale Services Checklist

Internet Scale Services Checklist

A checklist for designing and developing internet scale services, inspired by James Hamilton's 2007 paper "On Desgining and Deploying Internet-Scale Services."

Basic tenets

  • Does the design expect failures to happen regularly and handle them gracefully?
  • Have we kept things as simple as possible?
@D-system
D-system / list_exceptions.rb
Created January 31, 2019 02:10
[Ruby exceptions list] List all exceptions available (including the main namespace)
exceptions = []
ObjectSpace.each_object(Class) do |k|
exceptions << k if k.ancestors.include?(Exception)
end
puts exceptions.sort { |a,b| a.to_s <=> b.to_s }.join("\n")
@D-system
D-system / rails_template.rb
Last active November 24, 2019 13:31
Rails (5.x) application template (to customize new or existing app)
## To create a new project: `rails new MY_APP -m __FILE__`
## To run on existing projects: `bin/rails app:template LOCATION=__FILE__`
##
# Generate Gemfile.lock
##
bundle install
git add: '.'
git commit: %Q{ -m 'Initial commit: Rails vanilla' }
@D-system
D-system / isin_code_validator.rb
Created October 29, 2019 13:16
ISIN code validator in Ruby
class IsinCodeValidator
ISIN_FORMAT = '^[A-Z]{2}[A-Z0-9]{9}[0-9]$'.freeze
ISIN_REGEX = Regexp.new(ISIN_FORMAT).freeze
LETTER_TO_CODE_VALUE = 55 # Ascii code for 'A' == 65 && 'A' == 10 in isin calculation cod
def self.valid?(str)
return false if str.nil? || !str.match?(ISIN_REGEX)
proc_isin = str.split(//)
key = proc_isin.pop.to_i
@D-system
D-system / .bundle--config
Last active November 24, 2019 12:49
Bundler configuration for Mac
---
BUNDLE_BUILD__LIBXML-RUBY: "--use-system-libraries=true --with-xml2-include=/usr/local/opt/libxml2/include/libxml2/"
BUNDLE_BUILD__MYSQL2: "--use-system-libraries=true --with-mysql-include=/usr/local/opt/mysql/include/mysql/"
@D-system
D-system / .gitconfig
Last active November 24, 2019 12:53
Git configuration file
[user]
name = Thomas Brennetot
email = [email protected]
[core]
editor = code --wait
[commit]
verbose = true
[diff]
tool = vscode
[difftool "vscode"]
@D-system
D-system / start_mysql.sh
Created November 24, 2019 12:56
Docker helper
# docker stop mysql_5.7
# docker run -p 3306:3306 -e MYSQL_ALLOW_EMPTY_PASSWORD=true -e MYSQL_DATABASE=circle_test -e MYSQL_HOST=127.0.0.1 -e MYSQL_USER=root --shm-size 2G --name mysql_5.7 circleci/mysql:5.7-ram
docker restart mysql_5.7
@D-system
D-system / aws_cloudwatch_log_to_appsignal.yml
Created August 16, 2024 02:48
Configure AWS to transfer Cloudwatch group log to AppSignal with CloudFormation
---
AWSTemplateFormatVersion: 2010-09-09
Description: >-
Configures CloudWatch logs stream and Kinesis Data Firehose to
send logs to AppSignal from an existing CloudWatch log group.
It must be deployed in the same region and same account as the CloudWatch log group.
Implements all the steps from AppSignal documentation all at once:
https://docs.appsignal.com/logging/platforms/cloudwatch.html