JavaScriptのオブジェクトリテラルの前後にスペースを含めるべきか否か

js

波括弧(curly brace)のオブジェクトリテラルを 1 行で書く場合の話。 const withSpace = { name: 'yamada', locale: 'JP' }; // 空白あり const withoutSpace = {name: 'yamada', locale: 'JP'}; // 空白なし 実は規定がない どれを見ても『オブジェクトリテ…

DockerのHEALTHCHECKをwgetでやる

Docker には HEALTHCHECK というコンテナが正常稼働しているか確認する機能がある。 何をもって『正常』と判断するかはコンテナを稼働する人が指定する。Nginx みたいな Web サービスのコンテナの場合は公式サンプルにもある通りcurl を死活監視のためのコマ…

TypeScriptをはじめるとき知っておくと捗る

js

トランスパイル ≒ コンパイル ts ファイルを js ファイルに変換することをトランスパイルと言う。これも広義のコンパイルになるけど、コンパイルという用語は高水準な言語を低水準な言語に変換することを言うそうだ。 TypeScript や CoffeeScript を JavaSc…

ECSでクラスターを削除できないとき

aws

クラスターのタスクが動いたまま タスクを「すべて停止」する 別のクラスターと同じセキュリティグループをつかっている 別のクラスターのセキュリティグループをすげ替える または対象のセキュリティグループを直接削除する

よくつかうdockerコマンド

ビルド -t でタグを指定。--no-cache でビルド時のキャッシュを使わない。 $ docker build -t jnst/my-docker-image --no-cache . 実行 -it でインタラクティブモードで実行。--rm で終了時にコンテナ破棄。/bin/ash で ash シェル(Alpine Linuxの標準シェ…

Visual Studio Codeでエディタを水平分割

デフォルトでは垂直分割モードになっていてくっそわかりにくい。 エディタ分割自体は Cmd + 1, Cmd + 2, Cmd + 3 がショートカットになっていて、最大3つまで分割できる。 Cmd + Option + 0 がトグルになっていて押すたびに垂直分割モード→水平分割モードに…

ディレクトリに応じてgitユーザーを切り替える

git

会社のアカウントでは GitHub 使ってるけど、個人のアカウントでは GitLab.com 使ってる。 プライベートリポジトリが無制限に無料なのでわざわざ GitHub で課金するメリットないし。 こんなとき何も考えずにコード書いてコミットすると、個人用の匿名アカウ…

GitHubから1ファイルだけ取得する方法

git

どうにかクローンできないかと調べてたけど GitHub API 使って curl 等から HTTP でダウンロードできた。 プログラムから GitHub リポジトリのファイルを読み込みたいときに便利。 準備 GitHub の OAuthToken が必要。 Personal access tokens のページから …

Rubyのmaxとmax_byの違い

使い方が異なる。 max メソッドは比較演算子 <=> の結果、つまり戻り値は -1, 0, 1 のいずれかを返す必要がある。 max_by は比較したい値を返すだけでよい。 gist.github.com ちなみに max も max_by も Enumerable で定義されているメソッドなので Hash に…

Go言語:自己文書化するためのテスト名

Google 社員で Go 言語のコミッターでもある @rakyll さんの 2017年2月3日のブログ記事『自己文書化するためのテスト名』が参考になった。ちょうどテストをしっかりと書くようになってきたところだったので非常にタイムリー。 SOURCE Naming tests to self-d…

クレジットカードでAXESからの謎の明細

AXES 0570-02-5525 0570025 という項目で 4,950 円。 プロバイダ料かなんかだと思って数ヶ月放置してたけど、オンライン英会話 ネイティブキャンプ の請求だった。iPhone 側で決済したと思いこんでて、あるとき AppStore 定期購読を…

C++糞コンパイルエラー集

c++

わかりにくいコンパイルエラーに悩まされて時間を無駄にすることがたびたびあり、6度目くらいでカッとなって記事にすることにした。順次追加していく。 Member reference base type 'User *const' is not a structure or union 以下は std::vector の中から…

MacにPlantUMLをいれる

クラス図やシーケンス図の UML を Markdown のようにテキストエディタで記述できる PlantUML の環境設定。 必要なもの 動作に必要なのは4つ。Java 環境とかここ2〜3年必要なかったし正直もういれたくないんだけど、このためだけにわざわざインストールする…

迷いがちな英語の変数・関数名まとめ

新しいプロジェクトはじめたり、新機能開発したりすると調べなおしたりすることが多いので順次追加していく。 類義語 お金・資源などが足りないとき insufficient [形容詞] メモリ不足 (insufficient memory) とか資源不足 (insufficient resource`) とか そ…

fishで環境変数といっしょにコマンド実行したいとき

FishShell ではイコール演算子を使って変数に設定という記法がない。 Ruby on Rails で RAILS_ENV=test bundle exec rake db:migrate みたいなことするとエラーになる。 $ RAILS_ENV=test bundle exec rake db:migrate:status Unsupported use of '='. To ru…

Vimの知見まとめとく

自分は vi 信者でもなければ emacs 信者でもない。どちらかというと IDE 至上主義者。 vim に関してはターミナル作業中にときどき使う。凝った設定は不要で、プラグインは使わないしカラーテーマもデフォルトで用意されてるものだけを使いたい。 無駄な設定…

2016年11月のPython環境構築

Python で開発するわけじゃないけど、Hubot を使ったりするときにサーバ操作のための自動化ツールとして Fabric をつかうことになることが度々あり pip が必要になったりする。 最近だと Google の人工知能ライブラリ TensorFlow を試すためにいれてる人も多…

zshは諦めてたけどfish shell導入したら捗った

エンジニア人生の中で zsh を導入しようと数回思いたったことはあるのだけれど、毎回初期設定のひどさを見るたびに辟易して bash でいいやと諦めていた。 コピペで機能追加できるとか言われても、自分の理解の範疇を超えてわけわからん状態になるのは耐え難…

ghqでGitHubのリポジトリ管理する

概要 ソースコードは Go 言語のエコシステム(?) $GOPATH 配下での一元管理と決められたディレクトリ構造をそのまま活用することにした。そのために便利な ghq を導入する。 GitHub - motemen/ghq: Remote repository management made easy ちなみにプログラ…

プライベートリポジトリをgo getする方法

自分のプライベートリポジトリをgo getすると以下のようなエラーが発生する。 $ go get github.com/jnst/my-private-repo # cd .; git clone https://github.com/jnst/my-private-repo /Users/jnst/go/src/github.com/jnst/my-private-repo Cloning into '/U…

Rubyでarray.each_index.injectしたときの括弧は配列展開

こういうやつ animals = { a1: { name: '犬', type: '哺乳類' }, a2: { name: '猫', type: '哺乳類' }, a3: { name: '蜥蜴', type: '爬虫類' } } mammals = animals.reduce([]) do |arr, (id, animal)| # <- ここの丸括弧 (animal[:type] == '哺乳類') ? (ar…

Macの環境構築自動化 2016年10月版

概要 Mac の環境構築するときに大半の時間を占めるインストール作業を半自動化する系の話。 Homebrew - Mac用パッケージ管理ツール Homebrew Cask - Homebrew を使ってソフトウェアを一括インストールするための拡張 Homebrew Bundle - 依存関係を Brewfile …

El Capitanでgolang 1.7.1の環境構築

インストール Homebrew からインストール $ brew update && brew install go 以前はクロスコンパイル用に -with-cc-all とか --cross-compile-all というオプションがあったけど今はないみたい $ brew info go go: stable 1.7.1 (bottled), HEAD (略) ==> …

Rubyでコードポイントから絵文字に変換

p "\u{1F604}" => "😄" p "\u{1F1EF}\u{1F1F5}" => "🇯🇵" p "\u{1F1EF 1F1F5}" => "🇯🇵" 絵文字のコードポイントは Wikipedia とかで見つかる。 Unicode6.0の携帯電話の絵文字の一覧 - Wikipedia Emoji unicode characters for use on the web

SNELL規格は危険?ARAIとSHOEI のヘルメット

概要 国内2大ヘルメットメーカーである ARAI と SHOEI はどちらが安全なのか。 バイクに乗る人なら興味ある話だと思いますが、どうもヘルメット業界というのは閉鎖的で、ネットに新しい情報が流れにくく消費者が十分な知識をもって購入できていないように感…

RubyMineでデバッグモードが動かなかった

概要 RubyMine はデバッグ実行すると自動的に必要となる ruby-debug-ide と debase をインストールしてくれるが、ファイル権限のエラーがでてしまいデバッグできない問題に遭遇した。 エラー内容 Error running service_test Failed to Install Gems. Follow…

Xcodeのファイルツリーでグループの並び順を変更する

Xcode のグループとフォルダの違い Xcode では黄色いフォルダアイコンが Xcode 独自の『グループ』であり、青いフォルダアイコンが Mac のディレクトリ構成と同一の『フォルダ』という扱い。 Xcode で新規にファイルを『グループ』へ追加した場合、ファイル…

レンタルバイクで初ツーリングしたときの失敗談

免許とってから1ヶ月半ほどバイク乗ってないので練習がてらレンタルバイクを借りてみた。 不安要素 公道を走ったことがない(致命的) 都内近郊の地名は把握してるが道路はまったくわからない(迷子確実) 事故ったときの弁償金額がこわい(マジこわい) 目…

プライム会員になったのでAmazonパントリー試してみた

Amazonパントリーは細かな商品をいくつも注文して、1つの大きなダンボール箱でまとめて配送してもらうプライム会員限定のサービス。 プライム会員になる予定はなかったんだけど、4月6日に送料無料がなくなり、でも 2,000 円以上で注文すれば問題ないよねっ…

エンジニアにおすすめのプロテイン

おいしさ基準のプロテイン紹介です。うんちくも語ります。 おっさんエンジニアの健康志向 まわりの30歳くらいのおっさんエンジニア達がジム通いはじめたり、ランニングはじめたり、ロードバイク買ったりしてませんか。「体力の衰え」とか「メタボ」とか「35…