人生シーケンスブレイク

シーケンスブレイク(Sequence breaking、シークエンスブレイクとも)とは、テレビゲームにおいて開発が想定している攻略ルートを逸脱し、ショートカットする行為のことである。

memcachedの中身を確認するならmemcached-tool

$ memcached-tool localhost dump 文字化けする場合には strings による文字列変換を行う。 $ memcached-tool localhost dump | strings

特定のディレクトリ階層以下の.DS_Storeを削除したい

Mac

$ find . -type f \( -name ".DS_Store" \) | xargs rm

Bowerを使ってフロントエンドのパッケージ管理を行う

先行きが若干不安だけど。 Bower is alive, looking for contributors · Bower blog npm はpackage.jsonがカオスになっている為開発用ライブラリのパッケージ管理のみ、BowerはBootstrapなどのフロントエンドのライブラリパッケージ管理で使い分けしている。…

CSSセレクタ42個ぜんぶ纏めてみた

CSS

Sassにせよcssにせよ、出来る限り限定的にCSSセレクタを指定できるといいよねってことで、W3C記載の表に基づいてCSSセレクタを纏めてみた。 なお、CSS3セレクタに関するW3Cのテクニカルレポートとして Selectors Level 3 が著名だが、 2015年時点のCSS情報を…

MySQLで詰まったプロセスを強制終了する

よく忘れるのでメモ。 show full processlist; でプロセス一覧が表示されるので、 kill <プロセスID> で削除する。

flake8 で continuation line under-indented for visual indent [E128] が出る時

flake8でコーディングチェックを行っていると、continuation line under-indented for visual indent [E128] が出る時がある。 Vim標準、もしくは jedi.vim 利用時の自動インデントに倣って入力してるつもりだが、flake8では例えば引数などは、第1引数の開始…

gulpで複数サイトを同時にBrowsersyncで立ち上げる

最近開発にはめっきりBrowsersyncを利用している。 Browsersync - Time-saving synchronised browser testing 通常Webサービスを開発する場合、ユーザ画面と管理画面などと複数サービスを開発するケースが多いので、一つのだけ $ browser-sync start --confi…

Vimのテキストオブジェクトを本気出して纏めてみた

Vim

Vimでエディットするにあたり、ダブルクォートで囲まれた部分をシングルクォートにしたいとか、囲まれた部分の内側を置換したいとか、いい加減テキストオブジェクトを使いこなしたいなと思ったので調べつつ憶えてみる。 Vimのコマンドは何らかの単語の頭文字…

jQuery Validation Plugin の重複チェックバリデータを作った。

jQuery Validation Plugin で複数のセレクトボックスから項目を選択する場合に、重複チェックするバリデータを作成した。 用途としては、例えば 秘密の質問 Q1〜Q3で同じ質問を選択してないか 好きな○○で重複した項目を選択していないか 経験のある言語で重…

無駄な空行を一発で削除する

Vim

無駄な空行が多いコードから、一発で無駄な部分を消したくなった。 Pythonのflake8をはじめ、他言語のコーディング規約をみても恐らく3行以上の空白を意図的に入れる必要性が感じられないので、4つ以上 <LF> が続いた場合には消す処理で良さそうだ。 command! De</lf>…

Pythonのパッケージ管理ファイル

pip freezeを使う。virtualenv と組み合わせて使うとよい。 $ pip freeze beautifulsoup4==4.4.1 flake8==2.4.1 mecab-python3==0.7 pep8==1.5.7 pyflakes==0.8.1 PyYAML==3.11 $ pip freeze > requirements.txt # 現在インストールしているパッケージ一覧を…

jQuery Validation Plugin のエラーを Bootstrap3 の popover に出力させる。

HTML5 Form Validationのブラウザごとの実装状況が異なることから、 jQuery Validation Plugin | Form validation with jQuery をまだ現役で利用しているケースも多いはず。 先日 jQuery Validation Plugin のエラーを Bootstrap3 の popover(tooltip) に組…

Pythonで破壊的ループをする際はリスト全体のコピーをとる

Pythonで以下のような破壊的ループをしようとすると、indexのズレが発生してすべての要素に対して処理が行われないケースがある。 (この例の処理ではリスト内包表記で充分代替可能だったりするが、あくまで例として単一処理にしている。) li = [ { "id": "D0…

Pythonの引数のデフォルト値は一度しか評価されない

先日ハマったのでメモ。 結論 Pythonの引数のデフォルト値は一度しか評価されない。 def func(url, l=[]): … としたい場合には、代わりに def func(url, l=None): if l is None: l = [] … とする。 背景 GitHub APIを叩いて全てのbranch_listを取得しようと…

tmux 2.1からmouse系のオプションが変更になった。

久しぶりに tmux を再起動したらこんな警告が出るようになった。 /Users/user_name/.tmux.conf:16: unknown option: mode-mouse /Users/user_name/.tmux.conf:17: unknown option: mouse-resize-pane /Users/user_name/.tmux.conf:18: unknown option: mouse…

JavaScriptでひらがな/カタカナ変換あれこれ

CloudSearch使ってるのだけれども、トークナイズ辞書の仕様の所為かひらがなとカタカナでサジェスト時の候補返却内容が異なった。 候補のテキストフィールド自体はカタカナで、カタカナの方が意図する候補を返却していたので、JavaScriptでひらがな/カタカナ…

pyenv利用環境でのnpm installでpython2周りのエラーが出た時

こんなエラーが出た時のお話。 ~ $ npm install -g bower /Users/<user_name>/.nvm/versions/node/v4.2.1/bin/bower -> /Users/<user_name>/.nvm/versions/node/v4.2.1/lib/node_modules/bow er/bin/bower bower@1.6.5 /Users/<user_name>/.nvm/versions/node/v4.2.1/lib/node_modules/bower ></user_name></user_name></user_name>…

Vimで繰り返し文字を挿入する

Vim

繰り返し文字を挿入する Vim で ---------------------------------------- と挿入したい時には、 normalモードで 40i- と入力して Esc すると ---------------------------------------- が入る。 日本語も 40iあ などで普通に挿入できる。 繰り返し文字列…

Vimで検索した文字列をそのまま置換する

Vim

Vimで直接 :%s/<search_word>/<replace_word>/g とせず、ミス防止に一度 /<search_word> してから改めて置換をしたい時がある。 一度/<search_word> または * で検索ワードをハイライトした状態で、 :%s//<replace_word>/g すると、 そのまま現在のハイライト文字列を <replace_word> に置換してくれる。 いつも使ってたけれどど忘れしてしまい</replace_word></replace_word></search_word></search_word></replace_word></search_word>…

DvorakJP用のGoogle 日本語入力ローマ字テーブルをつくった

DvorakJP用のGoogle 日本語入力ローマ字テーブルをつくりました github.com El Capitanになったし、Dvorakが最近ちょっと盛り上がってたので、この際新規に作成しました。 ライブ変換は現状難しそう*1 な為、Google 日本語入力のローマ字テーブルだけの作成…

MacでのPHP環境とVimでのPHP Lint環境を整える

El Capitanになったことだし、改めてPHP環境とVimでのPHP Lint環境を整える。 前提としてHomebrewはインストール済みとする。 この記事でインストールするもの。 PHPBrew Composer PHP_CodeSniffer PHP Mess Detector Syntastic PHPBrew PHPのバージョン管理…

Googleの「スーパーマリオブラザーズ」検索結果ではじめるJavaScript

若干今更な話ですが、Googleで「スーパーマリオブラザーズ」と検索するとハテナブロックが表示されるようです。 スーパーマリオ - Google 検索 クリックすると、コインが出ます。音も出ます。 楽しいですね。オフィスで教えてもらってクリックしてたら、「10…

Pythonでトークンやユーザー名やパスワードなどの秘匿情報をYAMLに退避させる

ソースコード上に書いたままではマズい情報を退避させる手段 Pythonコード import yaml yaml_dict = yaml.load(open('secret.yaml').read()) user_name, password = yaml_dict['username'], yaml_dict['password'] yamlモジュールがなければ pip install pyy…

gitリポジトリのremote urlを追加/変更する

git

よく忘れるので。 urlの追加 git remote add origin <リポジトリURL> urlの変更 git remote set-url origin <リポジトリURL>

親にはオレオレ詐欺だけじゃなく、悪質プロバイダ勧誘電話にも気をつけた方がいいという話。

シルバーウィークに実家でマリオメーカーでもやろうと帰省したらやたらネットが切れまくり、実は今月プロバイダ変更したとのことでてんやわんやした話。 【詐欺】NTTを騙ったソフトバンク光の入れ替え工事【証拠は残さない】 - Windows 2000 Blog とか、 NTT…

Pythonのアンパック代入が便利

Pythonでは複数の変数に纏めて代入可能。 >>> x, y = 1, 2 >>> x, y (1, 2) 右辺はリストやタプルであれば良く、Pythonでタプルは , で表現されるので括弧はあってもなくても良い。 利用例1: リスト要素を纏めて受け取り >>> li = [3, 5] >>> a, b = li >>> …

Pythonで初期値を指定した上で多次元リストを作りたい時

オセロ盤面を生成する時などに、 >>> board = [[0] * 8] * 8 >>> board [[0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0,…

Vimで特定のファイルタイプのみ最後の空行を消す

PythonのLintツールとしてflake8(pep8 + pyflakes)を利用しているのだが、ファイル末に空行があると W391 blank line at end of file の警告が出るので自動化したくなった。 調べてみたら以下のような知見があったので設定してみた。 qiita.com " delete_las…

gitで特定ファイルの歴史をまるっと削除する

git

githubなどへアップしているファイルで、username/password/addressなどが含まれているファイルの歴史をまるっと削除したい時に。 歴史が変わるので複数人で触っているリポジトリは何かと問題が発生します。今回は個人リポジトリ前提で。 git version 2.4.6 …

Electronで簡単なFacebookアプリを作ってみた

30分でElectronのデスクトップアプリが作れるということで試しにFacebook専用アプリを作ってみた。 参考にしたページ Quick Start 30分で出来る、JavaScript (Electron) でデスクトップアプリを作って配布するまで - Qiita ElectronでChatworkをデスクトップ…