Skip to content

Instantly share code, notes, and snippets.

@raecoo
raecoo / ibooks-dump.rb
Created November 8, 2022 12:26
Dump iBooks books as epub file
#!/usr/bin/env ruby
require 'nokogiri'
ibooks_home = '/Users/xxx/Library/Containers/com.apple.BKAgentService/Data/Documents/iBooks/Books/'
Dir.foreach(ibooks_home) do |dir|
if File.extname(dir) == ".epub"
dir = ibooks_home + dir
File.open(dir + "/iTunesMetadata.plist") do |f|
@raecoo
raecoo / treemap_header_02.html
Created September 9, 2020 14:38 — forked from billdwhite/treemap_header_02.html
d3 Treemap with Headers Demo
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html;charset=utf-8">
<title>Treemap - Neat Zoom Effect</title>
<script type="text/javascript" src="./d3/d3.js"></script>
<style type="text/css">
body {
overflow: hidden;
margin: 0;
@raecoo
raecoo / .block
Created September 3, 2020 00:56 — forked from mbostock/.block
Nested Treemap
license: gpl-3.0
height: 1060
redirect: https://observablehq.com/@d3/nested-treemap
@raecoo
raecoo / dynamodb_dump.py
Last active November 28, 2019 03:51
DynamoDB data to JSON file
# Dump DynamoDB data to JSON file
# s3://[bucket]/offine-cms-[table-name].json
# Refs: https://boto3.amazonaws.com/v1/documentation/api/latest/guide/quickstart.html
import decimal
import json
import boto3
from boto3.dynamodb.conditions import Key, Key, Attr
@raecoo
raecoo / sidekiq.service
Created November 23, 2019 14:00 — forked from brycejohnston/sidekiq.service
Sidekiq systemd service for Debian
#
# systemd unit file for Debian
#
# Put this in /lib/systemd/system
# Run:
# - systemctl enable sidekiq
# - systemctl {start,stop,restart} sidekiq
#
# This file corresponds to a single Sidekiq process. Add multiple copies
# to run multiple processes (sidekiq-1, sidekiq-2, etc).
@raecoo
raecoo / String.toRegExp.js
Created October 15, 2019 06:34 — forked from BrandonZacharie/String.toRegExp.js
A JavaScript function to convert a string to a RegExp
if (!String.toRegExp)
String.toRegExp = function String_toRegExp(pattern, flags) {
return new RegExp(pattern.replace(/[\[\]\\{}()+*?.$^|]/g, function (match) { return '\\' + match; }), flags);
};
@raecoo
raecoo / pubsub.go
Created October 13, 2019 14:05 — forked from miguelmota/pubsub.go
Golang redis pub/sub example
package pubsub
import (
"github.com/garyburd/redigo/redis"
log "github.com/sirupsen/logrus"
)
// Service service
type Service struct {
pool *redis.Pool
@raecoo
raecoo / example-1.go
Last active September 28, 2019 13:28
Repetitive background tasks
ticker := time.NewTicker(5 * time.Second)
quit := make(chan struct{})
go func() {
for {
select {
case <- ticker.C:
// do stuff
case <- quit:
ticker.Stop()
return
"""
Copy objects from one bucket/prefix to another bucket with the same prefix.
Used to allow CloudFront logs to get parsed for uploading to ES *AND* analyzed
by WAF.
CloudFront Distribution logs -> s3://es-bucket/incoming -> Lambda (this) -> s3://waf-bucket/
Set environment variable `destination_bucket`
@raecoo
raecoo / jekyll-guide.md
Created July 28, 2019 09:44 — forked from hellokaton/jekyll-guide.md
Jekyll 中的配置和模板语法

Jekyll 中的配置和模板语法

配置

文件介绍

_config.yml

Jekyll 的全局配置文件。
比如网站的名字,网站的域名,网站的链接格式等等。