キーボードを新調した

まとめ キーボードが壊れたので新調した。 静電容量無節点方式のキーボードで、かつ、かわいいキーキャップを使いたかった。 キーボードはNiz Atom68を購入。キーキャップをMDA Big Boneに交換した。見た目がかわいく満足している。 経緯 (以下、購入までの…

WSL2でGUIアプリケーションを動かす

先に結論 Microsoft公式ブログで、やり方が紹介されていました。それを参考にしたら簡単にできたよ、という話です。 自分の環境 Windows Windows 10 Home バージョン2004(OSビルド19041.508) WSL2 WSL2はインストール済み。 WSL2のインストールガイドは こち…

CloudFormationヘルパースクリプト(cfn-init等)でEC2の構成管理

経緯 最近CloudFormationを触っています。CloudFormationでは、cfn-initをはじめとする、「CloudFormationヘルパースクリプト」という構成管理ツールをサポートしています。 CloudFormationヘルパースクリプトの挙動が当初わかりづらかったので、少し前の自…

AWS 認定ソリューションアーキテクト – アソシエイト に合格しました

概要 自分のAWS習熟度 クラウドプラクティショナーは取得済み、過去案件でEC2くらいはさわったことあり 使用した教材 Udemyコース 勉強期間 3週間 勉強時間 おそらく40時間程度 得点 778/1000 (正解率72%以上で合格) 経緯 会社より、「アソシエイト」レベル…

git-flowでのフレキシブルなリリースについて

問題意識 git-flowでリポジトリを運用しているプロジェクトで、開発済み機能の、リリース時期、リリース対象機能をフレキシブルに選択できるようにしたい。 たとえば、機能Aと機能Bを開発中で、機能Aは来週リリース、機能Bは他社連携先機能のリリースに合わ…

fish shell cdしたらlsしたい

確認環境 $ fish --version fish, version 2.7.1 結論 設定ファイル(例えば~/.config/fish/config.fish)に、以下を追記する。 functions --copy cd standard_cd function cd standard_cd $argv; and ls end 説明 fish shellには2つのcdが存在する。ひとつは…

Rails4, Rails5の時間の足し算の挙動の違い

経緯 Rails4で、日付の足し算の挙動が自分の期待と異なっていたので調査した。 1/31の翌月の翌月も、1/31の二ヶ月後も、どちらも2018/3/31になるのを期待していたが、実際の結果は異なった。 前者は「1/31の翌月の翌月」 => 「2/28の翌月」 => 「3/28」と処…

docker-composeを環境別に使い分けたい

経緯 もともと、docker-compose.ymlで開発環境を用意していた。 プレビュー環境構築にあたり、諸々の事情により、プレビュー環境では別途新規に書き起こされたdocker-compose.yml、Dockerfileを使うことになった。 既存の設定は開発環境で使いつつ、プレビュ…

Arch Linuxでvim8でdeoplete.nvimがすんなり動かなかった

やりたいこと vim8でdeoplete.nvimを動かす やったこと deopleteのGithubREADMEに従いインストール requirmentsに従いpip install neovim 期待してたこと vim起動時にエラーが出ない neocomplete.vimを使ってたときのように、適宜補完が効く 実際に起こった…

rubocopでrubyコードのベストプラクティスを学ぶ(Rails + Visual Studio Code)

以下の文章はこんな方を想定しています vscodeでrailsを書いている。 自分のコードをもっと「いいコード」にしたい。が、指導してくれる人間は周囲にいない。 rubocop github.com rubyコードの静的解析を行うGem. ベストプラクティスに従っていない箇所を指…

bashの特殊ファイル(.bash_profile, .bashrcとか)のメモ

.bash_profileと.bashrcの違いについてまたグーグル検索。もう何回目だ… 備忘のためにメモしておく。 『入門bash』3章、「環境のカスタマイズ」を参考にしました。 以下3つのファイルを意識しておけばよさそう。ユーザーごとの設定。 .bash_profile …ログイ…

リファクタリング:Rubyエディション 第一章 写経してみた

初めて写経というものをやってみた。 ただ本を読むよりも、内容を深く理解できると感じた。 写経すると能動的な頭の使い方になって、内容を深く咀嚼できるのかな。 もちろん普通に読むより時間がかかる。当面は重要な本に絞って写経するようにしたい。 写経…

Node.js, npm, electron

Node.js, npm, Electronについて、言葉だけ知っていたが内容や関連がわからなかったので調べてみた。 端的に言うと以下のとおりだと認識した。 JSのサーバーサイド実行環境がNode.js。 Node.jsのパッケージマネージャーがnpm。 有名パッケージのひとつがelec…

git-flow調査メモ

git-flowとは? Gitの活用ガイドライン。 Gitは自由。運用方法は強制されない。いろいろ配慮が必要。 リリース準備はどう行う?並行機能開発はどう行う?複雑な並行開発に耐える方法をいちいち考えるのは大変。 2010年、Vincent Driessen氏がブログで「こんな…

tmux入れてみた

端末の画面を分割して表示したいと思った。 linuxの画面分割について調べてみると、tmuxやterminatorとかいうソフトウェアで実現できるとのこと。 terminatorは端末エミュレーターのひとつ、tmuxは端末マルチプレクサーのひとつらしい。 端末エミュレーター…

Highcharts

Highchartsは、グラフを描画するJavaScriptのライブラリです。 商用利用にはお金がかかります。 第一引数にグラフ書き込み先のID、第二引数にoptionオブジェクトを渡すのが基本の使い方です。 Highcharts.chart('container', options); といった形です。 opt…

JavaScript 分割代入

developer.mozilla.org 分割代入について。 配列からデータを変数に代入する、さまざまな方法が書いてあった。 テンポラリ変数を作らずに変数同士をスワップできる。 不要な戻り値は無視し、必要なもののみ選択して受け取れる。「正規表現のマッチから値を取…

モジュール、凝集度、結合度

モジュール ソフトウェアは複雑だ。すぐ人間に管理できなくなる。 言い換えると、仕様変更があったとき、どこを変更すればいいのか、すぐわからなくなる。 そうならないために、プログラムを分割して複雑さを低く保つという考えがある。分割したひとつひとつ…

Rails MySQL ストレージエンジン

MySQLでは、テーブルごとに「テーブル型」を設定できる。これをストレージエンジンと呼ぶ。 ストレージエンジンが違うと、データの格納、取り出しの内部的な処理が変わる。 各々のエンジンに特徴があり、開発者は目的に応じて使い分けるのが望ましい。 スト…

UNIX系OS アクセス権

UNIX系OSでは、ファイルごとにアクセス権(パーミッション、モードなどとも呼ばれる)が設定されている。 これらアクセス権により、ユーザーからのファイルの見え方、操作できることが決まる。 アクセス権は基本的に3種類ある。Read、Write、eXecuteだ。また、…

PHP アクセス権

クラスのメンバーにはプロパティとメソッドがある。 キーワードを指定することで各メンバーへのアクセス権を設定できる。 キーワードはpublic,private,protectedの3種類。定義時にキーワードを宣言する。 あるクラスのメソッドを呼び出したいとき、 メソッ…

ビルド関係の言葉

ビルド 実行可能なファイルを生成すること。機械語やデータの羅列になっていることが多い。ソースコードをコンパイルし、必要な外部ライブラリや初期化コードをリンクする。 cc,gcc コンパイルに使われるコマンド。ソースコードを解析してオブジェクトファイ…

テスト駆動開発

テスト駆動開発とは、Test-Driven Development(TDD)のこと。 ふつう、コードを書いてからテストを書くところを、まずテストを書いて、それからコードを書こうという開発手法。 ふつうの書き方の場合は、設計と実装をコードを書くときにまとめてやる必要があ…

リファクタリング

仕事では、時間がなかったり、技術力が足りなかったりして、やっつけでコードを書いてしまいがち。結果、コードが汚くなっていく。コピペの重複コードとか、不適切な変数名とか。 そういうのが積み重なって、コードがわからなくなっていく。それを技術的負債…

ユニットテスト

小さな単位で行うテストテストのこと。小さな単位とは、たとえばメソッドである。 昨今はユニットテストを自動化するのが一般的になっている。自動化すると、テスト実行の負担がほぼゼロになる。(そのかわり、テスト自動化のコードを書くため、コードを書く…

vim ちょっとした繰り返し

使い捨てのちょっとした繰り返し作業は、レジスタにマクロを保存すると楽。 q{register}で保存開始。qで終了。@{regiser}で呼び出し。 たとえば、.erbファイル編集中、コマンドを<%= %>で囲みたいとする。 qaI<%= <ESC>A %><ESC>q でI<%= <ESC>A %><ESC>をレジスタaに記録できる</esc></esc></esc></esc>…

ssh

ssh(Secure SHell)の、もっとも単純な使い方は以下のとおり。 $ ssh username@hostname たとえば職場で、会議室のPCから自分のPCを操作したいとき。まずは自分のPCのhostnameを調べる。自分のPCでifconfig(CONFIGure network InterFace parameters)をすればI…

アジャイル、スクラム、XP

ってなんだろう。 ちょっと調べた感じ、アジャイルは理念で、スクラムとかXPは実践の方法を集めたものかな。

egrep マッチする部分を抽出する

smartyのテンプレートファイルから、変数名のリストを抽出したかった。 ${ と } で囲まれた変数名を、重複を省いてリストにしたい。一行に複数の変数名がある場合があることにも注意すべきだ。 たとえばこんなファイルがあるとする。 --code-- {$apple} --co…

PHP グローバル・ローカルスコープ

PHPには大きくグローバルとローカルの2種類の変数がある。互いにアクセスできない。 ちなみに、ブロックスコープは無い。