Skip to content

Instantly share code, notes, and snippets.

Avatar

tanasinn sin-tanaka

View GitHub Profile
@sin-tanaka
sin-tanaka / decompress_tar_bro.py
Created Mar 17, 2020
tar→brotliで圧縮してあるファイルをインメモリ上で解凍するサンプル お焚き上げ
View decompress_tar_bro.py
"""
やったこと
- brotliの解凍
- tarballの解凍
- brotliで解凍したものをインメモリ上で保持してファイルとして扱い、更にtarballで展開する
背景
- AWS Lambda上の/tmp領域にそこそこ大きめのbinaryを展開したかった
- Lambda/tmp領域の制限(500mぐらい)の関係でインメモリ上でやりたい(brotliで展開したやつを一回書き出すみたいなことをしたくない)
- IOのロス、展開後の容量とか気にしなくていい場合、brotliで解凍→普通にファイルをwrite→更にreadtarballで解凍のようにリッチにやるのも可
@sin-tanaka
sin-tanaka / server.py
Created Dec 11, 2019 — forked from martijnvermaat/server.py
SimpleHTTPServer with history API fallback
View server.py
#!/usr/bin/env python
"""
Modification of `python -m SimpleHTTPServer` with a fallback to /index.html
on requests for non-existing files.
This is useful when serving a static single page application using the HTML5
history API.
"""
View copyToClipboard.vue
<template>
<div>
<input id="copy-text" value="copy text" />
</div>
</template>
<script>
export default {
methods: {
copyToClipboard: function() {
View zenkakuToHankaku.ts
// 参考: https://qiita.com/yamikoo@github/items/5dbcc77b267a549bdbae
export function zenkakuToHankaku(str: string): string {
return str.replace(/[A-Za-z0-9]/g, (s) => {
return String.fromCharCode(s.charCodeAt(0) - 0xFEE0);
});
}
View toJson.js
const jsonStr = '{"foo": "bar"}'
const jsonObj = JSON.parse(Buffer.from(jsonStr, 'base64').toString())
@sin-tanaka
sin-tanaka / tslint.json
Created Oct 19, 2018
TSLint v5.7.0 時点で指定できる全 rules を網羅した。
View tslint.json
// tslint.json : https://palantir.github.io/tslint/
{
// Type Checking を有効にする (true)
"lintOptions": {
"typeCheck": true
},
// カスタムルールの参照先
"rulesDirectory": [
"node_modules/codelyzer"
],
@sin-tanaka
sin-tanaka / transport_issue_gitlab_to_gitlab.py
Created Sep 28, 2018
Gitlab上で特定のリポジトリ以下のissueを別リポジトリのissueへ移行するスクリプト
View transport_issue_gitlab_to_gitlab.py
import requests
import json
import time
GITLAB_PRIVATE_TOKEN = 'token_hogehoge_token'
export_pj_id = 'numxxxx'
import_pj_id = 'numxxxx'
export_pj_url = f"https://gitlab.com/api/v4/projects/{export_pj_id}/issues?state=opened&private_token={GITLAB_PRIVATE_TOKEN}"
import_pj_url = f"https://gitlab.com/api/v4/projects/{import_pj_id}/issues?private_token={GITLAB_PRIVATE_TOKEN}"
@sin-tanaka
sin-tanaka / transport_issue_gitlab_to_gitlab.py
Created Sep 28, 2018
Gitlab上で特定のリポジトリ以下のissueを別リポジトリのissueへ移行するスクリプト
View transport_issue_gitlab_to_gitlab.py
import requests
import json
import time
GITLAB_PRIVATE_TOKEN = 'token_hogehoge_token'
export_pj_id = 'numxxxx'
import_pj_id = 'numxxxx'
export_pj_url = f"https://gitlab.com/api/v4/projects/{export_pj_id}/issues?state=opened&private_token={GITLAB_PRIVATE_TOKEN}"
import_pj_url = f"https://gitlab.com/api/v4/projects/{import_pj_id}/issues?private_token={GITLAB_PRIVATE_TOKEN}"
View pyconjp_2018_scraping_samples.ipynb
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
@sin-tanaka
sin-tanaka / file0.txt
Last active Sep 10, 2018
tornado >= 5以上がインストールされたjupyter-notebook上でevent_loopを扱うとRuntimeError: This event loop is already runningになる ref: https://qiita.com/sin_tanaka/items/56eb1b8a677fb9b50f7b
View file0.txt
import asyncio
from pyppeteer import launch
loop = asyncio.get_event_loop()
async def main():
browser = await launch()
page = await browser.newPage()
await page.goto('http://example.com')
await page.screenshot({'path': 'example.png'})