2018-01-01から1年間の記事一覧

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 を試してみた。