Skip to content

Instantly share code, notes, and snippets.

View nyawach's full-sized avatar
🍜
一双

himeno-yusuke nyawach

🍜
一双
View GitHub Profile
/**
* @return {Boolean} 祝日かどうか
*/
function isJapaneseHoliday() {
var startDate = new Date();
startDate.setHours(0, 0, 0, 0);
var endDate = new Date();
endDate.setHours(23, 59, 59, 999);
// google calenderの提供している祝日カレンダーを取得する
var cal = CalendarApp.getCalendarById("ja.japanese#holiday@group.v.calendar.google.com");
def uniq(items: list):
'''
元の順序を保持したままuniqにする
'''
return sorted(set(items), key=items.index)
def not_none_items(items: list):
'''
Noneなアイテムを除外する
'''
import SeededRandom from "../SeededRandom"
describe("SeededRandom.ts", () => {
it("インスタンスが違っていても、シード値が同じなら同じ値が返ってくる", () => {
const seed = 100
const r1 = new SeededRandom(seed)
const r2 = new SeededRandom(seed)
expect(r1.next()).toBe(r2.next())
expect(r1.next()).toBe(r2.next())
expect(r1.next()).toBe(r2.next())
const {PI} = Math
const rad1 = PI / 180
export const deg2rad = (deg: number) => deg * rad1
export const rad2deg = (rad: number) => rad / rad1
@nyawach
nyawach / download.ts
Created November 28, 2019 09:45
やることとしてはこんな感じ Lambda 以外でもできる - header の + `Content-Type` に `application/force-download` を追加 + `Content-disposition` に `attachment; filename=<ダウンロード時のファイル名>` を追加 - レスポンスボディに保存したいデータを記述
import { APIGatewayProxyHandler } from "aws-lambda"
export const handler: APIGatewayProxyHandler = async event => {
const filename = "data.json"
return {
statusCode: 200,
headers: {
"Content-Type": "application/force-download",
"Content-disposition": `attachment; filename=${filename}`,
},
/**
* References:
* - https://qiita.com/Ishidall/items/bb0e0db86a2f56fb1022
*/
import * as crypto from "crypto"
const ENCRYPT_METHOD = "aes-256-cbc" // 暗号化方式
const ENCRYPTION_KEY = "" // 32byte
const IV = Buffer.from("") // 16byte
const ENCODING = "hex" // 最終的な文字列のエンコード方式
@nyawach
nyawach / string.ts
Last active November 11, 2020 08:13
/**
* 文字列を逆にする
*
* ex: 'string' → gnirts
*/
export const reverse = (target: string) =>
target
.split("")
.reverse()
.join("")
@nyawach
nyawach / merge_pdf.py
Created October 3, 2019 05:21
PDF結合する
import PyPDF2
from pathlib import Path
def merge_pdf(sources: list, filename: str):
"""PDFを結合する
- sources: もととなるソースファイル。配列の順番通りに結合する。
- filename: 出力するファイル名。
"""
merger = PyPDF2.PdfFileMerger()
for source in sources:
@nyawach
nyawach / loadImage.js
Created August 16, 2019 07:56
画像の読み込みやるやつ最小版
const loadImage = (src) => new Promise((resolve, reject) => {
const img = new Image()
img.onload = () => resolve(img)
img.onerror = reject
img.src = src
})
@nyawach
nyawach / Random.js
Last active July 3, 2019 07:54
seedで乱数固定可能な乱数生成クラス
// https://sbfl.net/blog/2017/06/01/javascript-reproducible-random/
class Random {
constructor(seed = 88675123) {
this.x = 123456789;
this.y = 362436069;
this.z = 521288629;
this.w = seed;
}
// XorShift
next() {