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…

Electron(Node.js)でデスクトップアプリ

js

Qiita を見ながらやったらコードが古くて動かなかったので書いとく。 下準備 $ mkdir electron-sample && cd electron-sample $ npm init インストール npm からインストールするけど、パッケージ名が electron だと古いバージョンになっちゃうので、electro…

Mac OS X El CapitanでRuby環境

rbenv のインストールと設定 $ brew install rbenv $ rbenv init ~/.bash_profile に以下を追記 eval "$(rbenv init -)" インストール可能な Ruby のバージョンを確認して最新をインストール $ rbenv install -l $ rbenv install 2.3.1 $ rbenv global 2.3.1…

30代半ばだけど、ばくおん!!みてバイク選び

前回の記事「30代半ばだけど、ばくおん!!みてバイクの合宿免許いってきた話」の続き。 一言にバイクと言っても、人それぞれ頭の中で想像するものが異なります。 バイクといったらアメリカン!という人もいれば、若いころの思い出いっぱい旧車こそが至高!と…

30代半ばだけど、ばくおん!!みてバイクの合宿免許いってきた話

アニメのばくおん!!を見たら意外におもしろかったからマンガ喫茶で原作コミック最新巻まで読んで気づいたら合宿免許のために東北新幹線に乗ってた。 結果 結果から書いておくと、9日間の合宿で教習代は総額91,800円。卒業検定は1発クリア。東京に戻り府中運…

自然対数を使った戦闘力のグループ化

なんかちょうどいい感じに分布される // グループ化 var result = {}; var power = 0; _.times(600, function() { var group = Math.max(80, (Math.log(power) * 2 / Math.log(1.2)) | 0); if (result[group]) { result[group].push(power); } else { result…

驚異の読込1,800MB/sオーバー!Mid 2015のMacBook Proはモンスター級SSDを搭載

mac

2015年5月19日に発表された MacBook Pro(Retina, 15-inch, Mid 2015)は「感圧タッチトラックパッド」と「より速いフラッシュストレージ」という感じのごくごく控えめな説明文だったので「おっ、ようやく15インチも感圧パッドに対応したのかー」くらいの軽…

MacBook Pro移行時にしたこと

mac

最新の MacBook Pro に乗り換えたのでメモ。(2016-08-02更新) インストール Atom-1.0.0 → Atom-1.9.0 1Password-5.3.2 → 1Password-6.3.1 Alfred AppCleaner DropBox Google Chrome Google Chrome Canary Google Drive Google 日本語入力 Kindle for Mac P…

YoutubeチャンネルのRSS

YouTube Data API の v2 が 2015-04-20 に廃止になり、RSS の取得方法も変更になったらしく、ググってトップにでてくる記事は約に立たなかった。 チャンネルIDの確認方法 チャンネル検索してチャンネル登録する 左メニューの「登録チャンネル」のリンクを踏…

node_redisでscanコマンド

ググってもサンプルがでてこないので悩んだ。 node_redis では、個別にコマンドの実装があるわけではなく、send_command 関数を共通で使う実装 になっている。 公式ドキュメントの SCAN – Redis をみると SCAN cursor [MATCH pattern] [COUNT count] という…

Docker Machineをつかう

インストール Homebrew Cask で管理されてるので Cask 経由でインストールするのが楽。 homebrew-cask/docker-machine.rb at master · caskroom/homebrew-cask · GitHub $ brew install caskroom/cask/brew-cask $ brew cask info docker-machine docker-mac…

LoLのReport使い分け

League of Legends の Report がいろいろあってわかりにくいと思うので日本語化 原文は Reporting a Player – Riot Games Support Report の種類 Harassment: Offensive Language チャットでのセクシャルハラスメント、人種差別 Harassment: Verbal Abuse チ…

nodebrewでio.jsをインストール

js

nodebrew が 2015-01-15 のコミットで io.js に対応してました。 すでに nodebrew をインストール済の人は selfupdate する必要があります。 $ nodebrew selfupdate $ nodebrew ls-remote (略) v0.10.32 v0.10.33 v0.10.34 v0.10.35 v0.11.0 v0.11.1 v0.11…

AWS CLIの使い方

aws

AWS CLI(AWS Command Line Interface)の使い方。 インストール $ brew install awscli $ aws --version aws-cli/1.6.5 Python/2.7.5 Darwin/13.4.0 セットアップ configure オプションが用意されているので、アクセスキーやシークレットキー、リージョンと…

Macですぐにpecoを使う

mac

Homebrew で簡単にインストールできます。go とかいらない。 $ brew tap peco/peco $ brew install peco $ peco --version peco: v0.2.11

MacでDynamoDB Localを試す

インストール brew からインストールできます。 $ brew install dynamodb-local データとログディレクトリ 下記ディレクトリに保存されます。 Data: /usr/local/var/data/dynamodb-local Logs: /usr/local/var/log/dynamodb-local.log 起動 実行ファイルは /…

2分でわかるTerraform

AWS のようなクラウドサービスによってインフラ構築がとても手軽に行えるようになりました。手動でインスタンスを起動して、サーバ設定を行い、Web サービスをインターネットに公開します。 では、手動で行った構築手順はどのように残していますか?どのよう…

Jenkinsのログインシェルを変更する

Jenkins をインストールすると jenkins ユーザーが作成されるが、su コマンドを使っても jenkins ユーザーには切り替えできない。 これはデフォルトのログインシェルが /bin/false に設定されているから。 # cat /etc/passwd | grep jenkins jenkins:x:498:4…

Linuxでたまに使う便利なコマンド

使いたいときに忘れてるのでメモ。 tree コマンドの階層指定 $ tree -L 1 LDAP ユーザーも含めたユーザーの一覧を表示 $ getent passwd sudo 権限の編集 $ visudo $ visudo -f /etc/sudoers.d/sample

Debian系とRedHat系の起動スクリプト

/etc/init.d/nginx start というか、利用するときは service nginx start を叩くけど、こういう起動スクリプトはミドルウェアの起動によく使います。 訳あって自社サービス用の起動スクリプトを Ubuntu 版から CentOS 版へと移行したので、作業にあたって必…

GitHubでEd25519鍵をつかう

TL;DR GitHub 使ってる人のほとんどは RSA 鍵 2048 ビットつかってる でも 2031 年からは強度が弱く非推奨扱い もっと新しい ECDSA 鍵や Ed25518 鍵もあるよ Mac でも対応してるから今すぐ使えるよ GitHub でもっとも使われている公開鍵暗号方式 多くの人は …

Ansibleでファイルの編集

Ansible で設定ファイルの編集をしたいとき用です。 3つのモジュールが用意されています。 lineinfile(1行だけ編集したい人向け) replace(複数行編集したい人向け) ini_file(INI形式のファイルを編集したい人向け) ユースケース Amazon Linux では最…

yumの使い方

yum パッケージを探す $ yum search <package> パッケージの詳細情報 $ yum info <package> パッケージのインストール $ yum install <package> パッケージをすべて表示 $ yum list インストール済のパッケージをすべて表示 $ yum list installed インストール済のパッケージの中から更</package></package></package>…

Ansibleで変なエラー

事象と原因 brew でインストールした ansible を再インストールしたら動かなくなった。 $ ansible-playbook -i hosts simple-playbook.yml --syntax-check Traceback (most recent call last): File "/usr/local/Cellar/ansible/1.7.2/libexec/bin/ansible-p…

DockerでJenkinsを構築

単に Docker で Jenkins 動かしたいなら公式の jenkins Repository | Docker Hub Registry - Repositories of Docker Images がすぐ動くし、Dockerfile も読める。 以下は CentOS や Amazon Linux 上で動かしたい人用の最小構成。 Dockerfile FROM centos:ce…

CentOS7にJenkinsインストール

準備 タイムゾーンを UTC から JST になおす(※任意、Jenkinsの動作とは関係ない) $ sudo ln -sf /usr/share/zoneinfo/Japan /etc/localtime インストール Jenkins は Java で動くので JDK7 をインストール $ sudo yum update -y && yum install -y java-1.…

Vagrantfileのテンプレート

# -*- mode: ruby -*- # vi: set ft=ruby : # Vagrantfile API/syntax version. Don't touch unless you know what you're doing! VAGRANTFILE_API_VERSION = "2" Vagrant.configure(VAGRANTFILE_API_VERSION) do |config| config.vm.box = "ubuntu/trusty64…

Ubuntu-14.04にnodebrewでNode.jsをインストール

nvm よりもっぱら nodebrew。 ちなみに apt-get install nodejs で直接 apt でインストールすると v0.10.25 の古いバージョンになってしまう。 $ curl -L git.io/nodebrew | perl - setup $ echo "export PATH=\$HOME/.nodebrew/current/bin:\$PATH" >> ~/.b…