Humanity

Edit the world by your favorite way

SVG のパス文字列の t (0 <= t <= 1) 時点での座標と角度を求めたい

Snap.svg 見てみたら直線や曲線を三次ベジェ曲線に変換する Snap.path.toCubic() という関数があり、さらに Snap.path.findDotsAtSegment() という t 時点での XY 座標、角度なんかを含んだ情報を求められる関数があった。Snap.svg すごい。 https://t.co/Wc…

Promise のコンストラクタに渡した async function 内で throw しても rejected な Promise は作られない(常に fulfilled になる)

何を当たり前のことをと思うかもしれませんが、勘違いしてたので恥を晒しておきます。 こんな使い方する人いるのか "no-async-promise-executor - Rules - ESLint - Pluggable JavaScript linter" https://t.co/BJy6aqMYQ0— azu (@azu_re) 2018年8月4日 cons…

CSS3 アニメーションで猿 (3)

過去記事はこちらからどうぞ。 トップの Vim アイコンをホバーして「Click Me!」をクリックでもいけます。 猿って何? まず何のことを言ってるのか分からないと思うので、 過去記事を見てもらうか、この動画で概要を把握できます。 CSS3 アニメーションで猿 …

RTF (Rich Text Format) ファイルの PHP パーサーライブラリと、中身のテキストを抽出する CLI フロントエンドプログラム作った

PHP

github.com 作りました。 README の通りまだ RTF ファイルを解析してテキスト化する機能しか持ってません (extract-text-from-rtf.php スクリプトを見て下さい)。 特徴 まだ機能が無さすぎて特にないのですが、あえて言うなら日本語に限らず、任意のコードペ…

目玉を光らせるアニメーション GIF を作る Pull Request を送った

github.com 今更だけどタイトル通りの pull request を送った。 目を光らせたい人は→ Medama Cherenkov Maker きっかけとしてはブログを愛成会病院の旧サイトっぽくしたくて手始めにアイコンの目を光らせようと思った所で ふと @anekos さんのこの記事を見て…

Windows で XAMPP の複数バージョンを使い分ける

PHP

インストーラー版ではなく xampp-win32-1.8.3-5-VC11.zip などのzipまたは7z版をダウンロードする パスは C:\xampp に (ジャンクション、シンボリックリンクでもいいので) ベースディレクトリがないと動かない そのため切り替えたい時は mklink /j C:\xampp …

Rails で DB をデフォルトの SQLite から MySQL に変更する記録 (WSL, Debian 9)

Rails をやることになって入門してます。 Rails アプリで DB をデフォルトの SQLite から MySQL に変えようとして色々困った記録。 MySQL もあんまり触れたことなかったのでついでにインストールから。 環境はタイトルにも書いた通り Windows on Subsystem L…

デスクトップ PC のマザボと SSD と OS 入れ替えた

やってしまった。 デスクトップ PC を久々に掃除するかーと思い、昔買ったエアーダスター (缶タイプ) を吹き付けたのがまずかった。 どうやら古くなっていたようで、吹き付けた瞬間にマザーボード (以下 M/B) の表面に泡のようなものが塗布されてしまった。 …

Webpack + Vue(SFC) + TypeScript ハマりどころ (2018/05 版)

サクッと Webpack + Vue(SFC) + TypeScript でアプリ作ってみようと思うたび Webpack の設定に時間を溶かしてやる気を無くすシリーズ。今回はこちら!!! Vue Loader v15 から VueLoaderPlugin が必須になった vue-loader は .ts や .css へのエントリがな…

VSCodeVim に次送ろうと思ってる PR リスト

tyru.hatenablog.com 送ったものはマージされたものの、まだやり残した事がいくつかあって、 p コマンドのリファクタリング パフォーマンス改善 漢字仮名交じり文の上で w, b, e, ge を押した時に漢字、ひらがな、カタカナの区切りで止まるようにする 1 はす…

SHIROBAKO 好きな人は Artiste 読んでほしい

Artiste が本当に好きで1巻が出た頃から何度も読んでる。 といっても文才がないしレビューなんてほぼ書いた事もないので訳分かんない文章になって削除したりを繰り返したりしてる。 そもそも前にも書いたけど、あんまり自分は作品の事前情報は書きたくない。…

VSCode の Vim 拡張 (VSCodeVim) をより Vim っぽくする PR を送った

随時追加中。送った PR はこちら。 Pull Requests · VSCodeVim/Vim · GitHub あんまり一度に送りすぎてもアレなので温存してるブランチもまだあります… 送った PR の内容 注:まだマージされてない PR もあります。 全てマージされました。次のリリースが楽…

Go で struct をそのまま公開するのはあんまり良くないんじゃないか

と思った。理由は以下の通り。 ずっと地味に困ってた事があって、ある struct をコンストラクタ的な関数 (例えば Foo って struct だったら NewFoo って名前の関数) 経由で生成したい、と思っても、 Go の言語仕様上普通にこんな感じで struct を作れてしま…

neosnippet でプレースホルダがある場合は展開よりジャンプを優先させる

Vim

今週の Vim の細道見てて neosnippet で困った挙動があるのを思い出して、重い腰上げて help 見て設定したら解消した。 <Tab> にこんな感じで割り当ててたけど imap <expr> <Tab> neosnippet#expandable_or_jumpable() ? \ "\<Plug>(neosnippet_expand_or_jump)" : "\<Tab>" smap <expr> <Tab> neos</tab></expr></tab></plug></tab></expr></tab>…

panic() するか non-nil error が返ったらロールバック用の処理を実行するユーティリティ構造体 Guard を作った

Go

こんな感じに使う。 package main import ( "errors" "fmt" ) func main() { fmt.Println("start") if err := f(); err != nil { fmt.Println(err.Error()) } fmt.Println("end") } func f() (err error) { fmt.Println("f() start") g := &Guard{} defer fu…

Go の hashicorp/go-multierror 使ったら訳わからん挙動に遭遇してしまった

Go

基本的な Go の挙動が理解できてないのかもしれないですが、なぜ以下のコードで (2) err != nil: true となるのかが分かりません。 誰か教えて… (g() がメソッドなのはなるべく元のコードと似せたせいです) gist.github.com 追記 KoRoN さんとりんだんさんに…

MongoDB で190万件あるコレクションに $regex で LIKE 検索する時にパフォーマンスの観点で気を付けること

150万以上ある Mongo のレコードに LIKE 検索したい時こうすると雲泥の差になった (1分以上かかってたのが 50ms 以下になった)。①インデックスを使う ($hint 指定しないと $regex の場合は使われないっぽい)②パターンの頭に ^ を付ける③パターンに .* を使わ…

Puppeteer で楽天銀行の入出金明細を保存

以前楽天銀行でワンタイムパスワードを突破しつつ明細履歴を TSV ファイルに保存するスクリプトを書いた。 ワンタイムパスワードのメールを受け取って本文をパースするために IMAP にログインしてメールが来るまで待つ、みたいな事をしている。 tyru.hatenab…

AppVeyor で Go のバージョンを固定する方法

基本的に Go アプリのテストは以下を参考にしたら概ねうまく言ってたんだけど、 (最新じゃなく)バージョン固定してる場合に問題となったため書いておく。 blog.markvincze.com 起こった問題 最近 AppVeyor の Go のバージョンが上がって Go 1.10 をデフォ…

ロガー用 vital モジュールを作った (ただし Vim 8 専用)

Vim

まだ vim-jp/vital.vim には PR してないけど十分使える (使えてる)。 https://github.com/tyru/nesk.vim/blob/0775e7d6fb3502ce52b64911d84b19cde32825aa/autoload/vital/__nesk__/Nesk/Log.vim https://github.com/tyru/nesk.vim/tree/0775e7d6fb3502ce52b…

最近の Vim で入った面白 Vim script 関数

Vim

:h eval.txt を眺めてたら結構色々関数追加されてるなーと思ったのでまとめてみた。 (追記: 結構古くからある関数も交じってた…) 基本的に詳細な仕様は書くつもりはありません (古くなるかもしれないし help 見た方が正確)。 wordcount() g<C-g> を押すと現在のバ</c-g>…

Vim script で Chrome Debugging Protocol を扱うライブラリを作りたい

Vim

github.com タイトルの通りなのですが、Chrome Debugging Protocol (以下 CDP) を扱うためには、 CDP は WebSocket ベースなので WebSocket を実装しなきゃならない バイト列をパースする際にヌルバイトを Vim では扱えない となって悩んでいます。 ヌルバイ…

Unicode の文字情報を開く Vim プラグイン作った

ふと必要になったので作りました。 github.com 動作には open-browser.vim が必要です。 github.com なにこれ Vim から FileFormat.Info の指定された文字のページをブラウザで開くプラグインです。 えっどういうこと? Vim でファイルを開いている時にふと…

netupvim で Windows でも最新の Vim を追いかけよう

これは Vim Advent Calendar 2017 その2 の21日目の記事です。 github.com 内容は上記リポジトリの README.md のパクリです。 netupvim 便利だよ!って事が言いたかった。 序文 Windows で Vim を使っているとふと最新の Vim を欲しい時があります。 そんな…

Vim 8 時代のがんばらないプラグイン管理のすすめ

Vim

これは Vim Advent Calendar 2017 の20日目の記事です。 皆さん Vim しておられるでしょうか。 Yes と答えた方、プラグインマネージャーは使っていますか? 巷では Vim のプラグイン管理にはプラグインマネージャーを入れる必要があるかのような勢いで「まず…

GitHub や BitBucket で強制的に https:// の代わりに ssh の URL を使う

stackoverflow.com GitHub git config --global url.ssh://git@github.com/.insteadOf https://github.com/ BitBucket git config --global url.ssh://git@bitbucket.org/.insteadOf https://bitbucket.org/

GitHub の organization アカウントのリポジトリを AppVeyor に追加する

Go のコマンドラインアプリの AppVeyor 対応したので雑なログ。 ここを参考にした。 Organization 用の AppVeyor アカウントを Sign Up から作る 自分のメインの AppVeyor アカウントを Administrator role で Collaborator として追加する Collaborator を…

Go のオプション引数で -v -v -v みたいに複数指定する方法

Go

mattn さんに教えてもらった。 いつもお世話になってて感謝しかない。 -d dir1 -d dir2 みたいな引数を持つオプションを複数指定する方法 Go の flag パッケージで複数オプションをパースするにはどうしたらいいんだろ。-d dir1 -d dir2 で [dir1, dir2] の…

Windows Subsystem for Linux で便利な alias (clip)

WSL

alias clip=/mnt/c/Windows/System32/clip.exe echo Hello | clip とかしてクリップボードにコピーできて便利。

godoc.org と github.com のリポジトリを切り替えるブックマークレット作った

Go

godoc . org と github . com のリポジトリを切り替える雑なブックマークレット作ったhttps://t.co/VwKlEeWUqW— tyru (@_tyru_) 2017年9月17日 gist.github.com 以上です。