Skip to content

Instantly share code, notes, and snippets.

View blackawa's full-sized avatar

Satoshi Kurokawa blackawa

View GitHub Profile
@blackawa
blackawa / main.clj
Created December 27, 2019 08:46
pdfbox.clj
(ns main
(:require [clojure.java.io :as io])
(:import [org.apache.pdfbox.pdmodel PDDocument]
[org.apache.pdfbox.text PDFTextStripper]))
(defn extract-string [src]
(with-open [doc (->> src PDDocument/load)]
(->> doc (.getText (PDFTextStripper.)))))
@blackawa
blackawa / landing_pages_view.sql
Last active August 2, 2019 06:01
Useful view to define in Segment warehouse schemes
WITH
sessions AS (
SELECT
*,
ROW_NUMBER() OVER (PARTITION BY anonymous_id ORDER BY sent_at ASC) AS rn
FROM
`your-project.your_dataset.pages` ),
first_page AS (
SELECT
*
@blackawa
blackawa / 西暦->和暦.clj
Created September 1, 2018 10:41
雑な西暦->和暦変換関数
(defn- 西暦->和暦 [西暦]
(let [year (read-string 西暦)]
(cond
;; 平成
(<= 0 (- year 1988))
{:和暦 "平成"
:年 (- year 1988)}
;; 昭和
(<= 0 (- year 1925))
{:和暦 "昭和"
@blackawa
blackawa / README.md
Last active July 17, 2018 09:37
GitHubでmasterブランチへのプルリクエストがマージされたら自動でk8sにデプロイするしくみを作る

プルリクエストがmasterブランチにマージされたら

  1. あるリポジトリのあるプルリクエストがmasterブランチにマージされたら飛んでくるwebhookを受け取る
  2. そのリポジトリをcloneし、イメージのバージョンが書かれているファイルを探す
  3. 見つかったファイルのイメージのバージョンを上げる
  4. 変更をmasterブランチにpushする
  5. GitHubにDeploymentを発行する

自動でk8sにデプロイするしくみを作る

@blackawa
blackawa / parent.rb
Created March 10, 2017 09:53
呼ばれるのはHogeのmethod_missingだけ。
module Hoge
def self.included(klass)
klass.extend ClassMethods
end
module ClassMethods
def foo
p 'foo'
end
@blackawa
blackawa / log_error.clj
Created February 14, 2017 09:05
loggerにスタックトレース文字列を渡す
(try (/ 1 0)
(catch Exception e
(println (clojure.string/join "\n " (cons (str e(.getMessage e)) (map str (.getStackTrace e)))))))
@blackawa
blackawa / README.md
Created November 8, 2016 09:14
postgresql事始め

How to install

Install and run postgres:

brew install postgresql
initdb /usr/local/var/postgres -E utf8
postgres -D /usr/local/var/postgres
# keep this console open
@blackawa
blackawa / Duct wikiの和訳
Last active May 18, 2023 05:55
Duct wikiの和訳
ductはClojureでWebアプリケーションを開発するためのテンプレートであり、小さなライブラリです。
* [Getting Started](./getting-started.md)
* [設定](./configuration.md)
* [サービス境界(boundaries)](./boundaries.md)
* [互換性のあるライブラリ](./compatible-libraries.md)
@blackawa
blackawa / copy_sequence.sql
Created May 12, 2016 06:49
シーケンスのコピー
-- Thanks https://community.oracle.com/thread/630462?start=0&tstart=0
select 'Create Sequence '||sequence_name||
' increment by '||increment_by||
' start with '||last_number||
' maxvalue '||max_value||
decode(cycle_flag,'N',' NOCYCLE ',' CYCLE ')||
decode(cache_size,0,'NOCACHE ','CACHE '||cache_size)
from user_sequences;