Skip to content

Instantly share code, notes, and snippets.

Avatar

Ken Wakita wakita

View GitHub Profile
View today.snippets
# today
# today 1[d]: tomorrow, today 2[d]: the day after tomorrow
# today -1[d]: yesterday, today -2[d]: the day before yesterday
# today 1w: this day next week, 2w: two weeks later today, -2w: two weeks ago today
# today 1m: one month later today, 2m, -3m
# today 1y, -10y
snippet "today *(([+-]?[0-9]+)?)([dwmy]?)" "The date relative to today" r
`!p
import datetime
from dateutil.relativedelta import relativedelta
View vsjs.sh
#!/bin/zsh
# 以下のイニシャルは脇田のものです.自分(校正者)のイニシャルに変更して下さい.
initial=kw
dl() {
url=$1
file=`echo $url | sed -e 's|.*vsj21-||' -e 's/\?.*//'`
comment=`date "+-%m%d-$initial"`
file=`echo $file | sed -e "s/.docx/$comment.docx/"`
@wakita
wakita / install.sh
Last active Jul 9, 2021
nginx のインストールと初期設定 (macOS 用): install.sh を実行するだけ。docroot は ~/Sites
View install.sh
#!/bin/sh
# https://scrapbox.io/smartnovax/nginx#60b5828d93b2e9000065e3e4
brew list nginx >& /dev/null || brew install nginx
echo "include $DROPBOX/lib/nginx/server.conf;" > /usr/local/etc/nginx/servers/server.conf
# nginx の設定を確認
nginx -t
@wakita
wakita / Readme.md
Last active Oct 23, 2020
Word Cloud Widget
View Readme.md

@kabe くんからもらった Word Cloud データを Bokeh で表示するまで。

  • CSV のなかの第二欄 font-size という名称が JavaScript の識別子として不適切なので font_size に変更した.本当は Python で対応するべきだけれども,面倒だったので.

  • SVG の DOM 木の構成は簡単だったけれども,最初,SVG が表示されなくて慌てた.いろいろ調べたところ,XML の名前空間というものがあって,HTML と SVG では名前空間が異なるらしい.細かいことはわからないけれども createElementNS('http://www.w3.org/2000/svg', SVGタグ名) を使わないといけないらしい.

@wakita
wakita / Readme.md
Last active Sep 30, 2020
オンライン発表の時代のタイムキーパー用ツール
View Readme.md

オンライン発表の時代のタイムキーパー用ツール

Zoom 時代の発表会運営をスムーズにするためにタイムキーパー用に作ったツールです.

  1. 発表開始からの経過時刻を秒単位で表示します.
  2. 発表開始から指定された時間が経過すると,作業内容の指示を発話できます.タイムキーパーは時計を常時,気にかける負担から開放されます.
  3. 発表開始から指定された時間が経過すると,定型的な文章をコピーバッファにコピーします.発表参加者と共有しているチャットツールにペーストして,座長,発表者,参加者に時間経過を通知できます.

必要なパッケージのインストール

@wakita
wakita / animate.py
Last active Sep 5, 2020
Jupyter notebook のなかで periodic callback を動かす実験
View animate.py
from bokeh.io import output_file, output_notebook, show
from bokeh.models import *
from bokeh.layouts import *
output_notebook()
n = 0
animate_cb = None
def plot(doc):
@wakita
wakita / nnopt.py
Created Sep 1, 2020
NNを可視化するために頂点の配置を整数計画法で計算するスクリプト(田中くんのため)
View nnopt.py
import logging
import pickle
import time
import numpy
from z3 import *
NODES, EDGES, LAYERS = None, None, None
def parse(edges, layers):
@wakita
wakita / Readme.md
Last active Jul 31, 2020
# CustomJS についてのわかりやすい例題
View Readme.md

CustomJS についてのわかりやすい例題

加えて CustomJS を扱うためのツール (snjs.py) を作成した.

JavaScriptによるコールバック関数の定義

Bokeh では Python のファイルのなかに文字列として JavaScript のコードを埋め込みます.でも,二種類の言語の文法が混在するのはやっかいです.

そこで,JavaScript のコードは独立したものを *.js ファイルに関数として定義することにしました.たとえば,以下は普通の JavaScript の関数のように見えますが,本ツールを利用すると slider_on_change という名前で,filtercds という変数によって,Python のデータ構造を受け取るような CustomJS の定義として扱われます.

@wakita
wakita / custom.py
Created Jul 16, 2020
Bokehで時前のモデルを作る方法
View custom.py
from bokeh.core.properties import String, Instance
from bokeh.models import HTMLBox, Slider
class Custom(HTMLBox):
__implementation__ = 'custom.ts'
text = String(default='Custom Text')
slider = Instance(Slider)
from bokeh.io import show
from bokeh.layouts import column
@wakita
wakita / custom.py
Created Jul 16, 2020
Bokehで時前のモデルを作る方法
View custom.py
from bokeh.core.properties import String, Instance
from bokeh.models import HTMLBox, Slider
class Custom(HTMLBox):
__implementation__ = 'custom.ts'
text = String(default='Custom Text')
slider = Instance(Slider)
from bokeh.io import show
from bokeh.layouts import column