PSequelとTeamSQLがお亡くなりなので、おれはTablePlusを使うことにするぜ

IntelliJ IDEA Database Tool ここ一年くらいは IntelliJ 組み込みのデータベースクライアントでことを済まして来ました。対応するデータベースプロダクトも多いですし、専用のクライアントツールに引けを取らない機能は素晴らしいです。 qiita.com その一方…

ghq list の vcs オプションとその有効な使い方

先日 ghq の v0.11.1 がリリースされました!このバージョンより ghq list コマンドに --vcs オプションが追加されています。🎉

read コマンドはバックスラッシュをそのまま変数にセットしないので注意が必要

とある非業務なシェルスクリプトの編集中に、ShellCheck が見慣れないエラーを吐いていることに気づいた。 help コマンドで -r オプションの意味を調べてみる。 read は bash のビルトインコマンドなので、man ではなく help を使うのが正しい。 $ help read…

json-c を使って C で JSON を読む

一部の過去記事を note での有料公開に切り替えております。 ☕1杯分の値段設定となっておりますので、投げ銭のつもりでご購入いただければと思います。 note.mu

SQLite3 のオンラインバックアップ

どのような点で優れているか? SQLite ロック機構に則ってデータベースの複製が行われるので、オンラインのデータベースに対して安全に処理を実行できる。 例えば、単にバックアップを取るだけならファイルコピーでも可能だが、もしデータベースが書き込み中…

Web 上で公開されているシェルスクリプトをローカルで直接実行したい

Gist 上で自分で公開しているシェルスクリプトを直接実行したかった。 パターン1: 単に実行したい curl -sSL {URL} | sh curl でシェルスクリプトを取得しつつ、パイプ経由で sh に流している。もっとも簡単かつポピュラーなパターンだと思う。 curl のフラ…

はじめての Haskell

Haskell をちょくちょく触ってみていて、メモが溜まってきたのでこれをまとめた。 (2018-07-19)「Haskell の学び」を変更・追記した。 Haskell とは? www.haskell.org 関数型言語 「ハスケル・カリー」さんから名前をとっている(だけど開発者は全く別) 最…

gcovr を動かしてみる

インストール gcovr は Python で実装されていて、PyPI で配布されている。 # pip install gcovr 実行手順 カバレッジ測定を行うプログラムのソースを -fprofile-arcs -ftest-coverage と -lgcov パラメータをつけて gcc コンパイルする .gcda, .gcno ファイ…

fzf / peco でカレントディレクトリ以下のファイルを選択して消す

# fzf だとこんな感じ ls -f | fzf -m | xargs rm # Tab もしくは Shift+Tab で選択して、Enter で決定 fzf はデフォルトで複数指定できない仕様なので、複数指定用のオプション -m を与えて有効化しているのがポイント。 # peco だとこんな感じ ls -f | pec…

Pipenv スクリプトを書く

名称として合っているのかはわからないが、npm スクリプト的なことを Pipenv でやるための方法について。 方法は wiki に書いてある Home · pypa/pipenv Wiki Pipenv 的には隠し機能らしく、Pipenv の wiki の Hidden Features に記載されている。 どうして…

Lucene を C 言語で使う

結論からいうと、C/C++ 用のライブラリはいくつかあるんだけどどれも芳しくない。 強いて言えば Lucy だが、実装言語自体を Java に見直すのが賢いだろう。

資格取得に取り組んでみようとおもう

どうしてそういう気持ちになったか? 転職活動をして気になるのが、自分の能力が正しく伝わっているかということです。 準備として職務経歴書を作って提出し、面談では自身のキャリアを口頭で伝えるわけですが、 頑張ってアピールしているつもりでも担当者の…

runc を動かしてみる

次の業務で runc が使えそうだったので、使用感を得るために試してみた。 ※ runc について一部勘違いしていたので、公開時の記載より該当箇所を修正しております。ブコメにてご指摘頂いた @mapk0y さん、ありがとうございました。 runc とは? github.com ru…

Windows 仕様の Zip ファイルに含まれる各ファイルのファイル名を MacOS / Linux 環境で文字化けなしで確認する

Zip は仕様として、ファイル名のエンコーディング形式を指定する方法が用意されていないので、ASCII 以外では安全にファイル名を指定できない。 一方で、日本語を始めとする 非 ASCII 文字を含んだ名前のファイルというものはよくよくあって、実際には何らか…

Pipenv を使ってみたら最高だった

最近 Qiita でバズってるこの記事に影響されて Pipenv を使い始めているんだけど、 「おれたちが待ってたのはコレだ」感をスゴく感じられてオススメ。 github.com 特徴は以下の三つ。 pyenv + virtualenv + pip のスイートツール bundler, npm ライクな依存…

とりあえず全ての変更を commit & push して他のマシンから作業を継続できるようにするスクリプトを書いた

wip というブランチを作成して、origin に commit & push するようにした。 ブランチ名が被らないように、サフィックスとして現在時刻を付与している。 サイズのデカいバイナリファイルや、 共有されたらまずいファイルといったものを追加してしまったらどう…

CLion でソースファイル自動生成時に挿入されるコピーライトの表記を変更する

CLion のデフォルトだと、cpp ファイルを自動生成するとコピーライトがこんなふうに挿入される。 これだと簡素すぎるのとそもそもチームのルールに合わないので、これを社内標準の表記に変えようと思った。

Jekyll の Auto-Generation と Live Reload と Incremental Build

Auto-Generation ページのソースファイルが変更されると、自律的にサイトを再生成してサーバに反映する機能。 昔は auto というオプション名だったようだが、いまは watch というオプション名が付いている。 デフォルトで有効になっているが、 jekyll serve …

RubyMine や IntelliJ IDEA でも RuboCop を使いたい

IntelliJ の RuboCop サポート RubyMine は RuboCop はネイティブでサポートしていて、2017.1 バージョンから実装されている。 IntelliJ IDEA はプラグインとして Ruby の機能を提供しているが、こちらも同様に RuboCop をサポートしていて、2017.1 バージョ…

GitHub の Release へのアップロードに ghr を使う

GitHub の Release へカジュアルにアップロードする方法はないものかと考えて、CLI ツールを検討するに至った。 候補はいくつかみつかったが、シンプルで使いやすそうな ghr を試してみた。

続・CentOS の Docker イメージ

前回の記事の続き。 msh5.hatenablog.jp イメージの更新状況は、docker-library/official-images のヒストリをみれば良い。 前回の記事で言及したとおり、centos6, centos7 のイメージは 1ヶ月に 1回更新されていることがわかる。 github.com イメージの中身…

CentOS の Docker イメージ

CentOS は、他のメジャーな Linux システムと同様に、コンテナ用のオフィシャルなイメージが Docker Store で配布されている。 現在、CentOS 6 と CentOS 7 を2つのイメージが配布されていて、 セキュリティアップデートを除いて、1ヶ月に1度定期的に更新さ…

.bashrc に処理時間を報告させる

ある時ふと「.bashrc と .bash_profile を区別する必要ははたしてあるのか」ということを思って、それからというもの、スタートアップの処理は全て .bashrc に書いている。 見通しが良いしリロードも簡単に出来るのですこぶる良かったのだが、とうとう重たく…

ghq(1) は Git プロジェクト以外にも使える

github.com 作業ディレクトリの管理に ghq を取り入れている。 もともと $HOME/work 以下に作業ディレクトリを切っていたが、 配下のディレクトリが日に日に増えていくのを見るのが辛かった。 ghq を使えば、作業ディレクトリがリポジトリのURL に基づいて整…

GNU locate

GNU locate は、システムに存在するあらゆるファイルに対して、 ファイルのフルパスを対象としたパターンマッチング検索を行うためのツールである。 検索はあらかじめ作成しておいたデータベースを利用するため、非常に高速である。 データベースの圧縮には…

hacking パッケージを pip インストールすると Flake8 のバージョンが巻き戻る

hacking パッケージは、Flake8 プラグインとして提供されるスタイルチェックツールである。 github.com その特徴は、Google Python Style Guide を元にした スタイルチェックを提供する点である。 実際に使ってみても、Python 3.x 系と互換性がとれるような…

コマンドラインツールでタイトルケース変換したい

日本人にとって馴染みのないものに、タイトルケースがある。 タイトルケースというのは、大文字小文字の使い分け規則のひとつで、 英語圏で新聞や広告の見出しのタイポグラフィなどに使われる。 名詞を中心に単語の先頭文字を大文字に変換するのだが、例えば…

Lint with Atom

Atom でコーディングスタイルをチェックするための方法および一連の仕組みと、 スタイルチェックプラグインとしてデファクトスタンダードな linter(という名前の)プラグインについて、 俯瞰で理解する。 Atom のスタイルチェック Atom はシンプルなエディ…

あなたの知らない foobar の世界

知っていそうで知らない foo, bar(hoge, fuga)について調べてみた。

KVM とは何か

libvirt に続いて KVM についてもまとめる。