Twitter Facebook github

Category “開発環境”

Homebrewで最新のzshをインストール

以前、 zshことはじめ の記事でzshについて軽く触れましたが、
つい先日チェックした際にzshのバージョンが上がっていたので、これを機にHomebrew経由のzshに乗り換えることを決意しました。

バージョンの確認

Mac標準のzsh

Homebrewのzsh

Homebrewでインストール

依存関係で gdbm と pcre が先にインストールされます。

バージョンを確認します。

Read More »

jEnvでバージョンの異なる複数のJavaを管理する

Rubyのrbenv、nodeのnodeenvなどと同じように、Javaにも複数のバージョンを管理するための*env、jEnvがあります。

今回は真っ新のMacにJavaの開発環境を構築する際に、1.7、1.8、9(EA)をインストールすることにしたので、その手順をまとめておきます。

HomebrewでJDKをインストール

jEnvでは、nodeenvなどと異なりjEnvコマンドからJDKをインストールすることはできません。
先にJavaをインストールする必要がありますが、今回は後々アップデート等が楽なHomebrew経由でインストールしようと思います。
もちろんOracleのホームページから直接インストーラーで導入してもかまいません。

Javaの古いバージョン、またEAのバージョンをbrewで導入するには、versionsのリポジトリをtapする必要があります。

バージョンを付けずにインストールすると、執筆時点ではJava8がインストールされます。
今回はその前後の7と9も追加でインストールしておきます。

Read More »

zshことはじめ

Macでzshを使うときのセットアップメモ。

環境

  • macOS Sierra 10.12.1
  • Homebrew 1.1.2

インストール

Macはデフォルトでzshが入っているので、常に使う場合はログインシェルを変更するだけで事足ります。

まずは次のコマンドでプリインストールされているシェルの一覧を表示させます。

これによると /bin/zsh にあるようですね。バージョンも確認しておきます。

執筆時点での最新版も同じ5.2のようなので、今回はこれをそのまま指定することに。
もし最新版ではないようなら、Homebrewなどで brew info zsh して新しい方を使うといいでしょう。

(2017/01/02 追記)
追記時点でHomebrewからインストールできるバージョンが 5.3.1 になりました。
Homebrewを使ったインストール方法の記事を書きましたので、ご参考ください。
Homebrewで最新のzshをインストール

Read More »

Beanstalkでデプロイ対象のファイルを柔軟に制御

前回 AWS Elastic Beanstalk を EB CLI からデプロイする方法について書きました。

この続きとして、今回はデプロイ対象のファイルを柔軟に制御する方法です。

gitと連携した eb deploy を実行した場合、Beanstalk環境にデプロイされるファイルもgitでステージされているファイルとなります。
この場合、.gitignore が存在すると、そのルールに従ってEB CLIがパッケージングを行います。

既存の問題点

何も設定せずとも .gitignore を参照してくれるのは便利な反面、困ったことも起こり得ます。
例えばデータベースへの接続情報やパスワードのソルトなど、セキュリティ上の観点などでgitの管理対象外にしているファイルが実際は存在するのではないでしょうか?

こうしたファイルは実行時には同時にパッケージングしてBeanstalk上にデプロイする必要があるため、gitignoreに含まれている故に無視されてしまっては困ります。

そこで便利なのが .ebignore です

Read More »

Elastic Beanstalk にEB CLIから簡単デプロイ

ごぶさたです。
今趣味で作っているプロダクトのテスト環境を、AWS Elastic Beanstakで実装してみたので備忘録をば。

Beanstalk でのデプロイメント

AWS Elastic Beanstalk (以下EB) で構築した環境へデプロイするには、ソースコード一式をzipに固めたソースバンドルファイルを作成し、マネジメントコンソール等からアップロードします。
この方法ではデプロイの度に手作業でzipアーカイブを作成しなくてはならず、CI環境を構築した自動化を行わない限り、毎回のデプロイに待ち時間が発生してしまいます。

もっと簡単にデプロイするために、今回は gitとEB CLIを使ったデプロイメントを紹介します。

gitを使ったデプロイといえば、SalesforceのHeroku等もPaaSとして有名なのですが、まさにソースバンドルのバージョン管理等も似た感覚で利用できます。Herokuと違い、直接インスタンスへのSSHも可能なので何か問題が発生したときも簡単に対応できます。

Read More »

GitHubのプライベートリポジトリが無制限に!

といっても有料プランで、無料プランではプライベートリポジトリはまだ作成することはできません。。

個人的にはめちゃくちゃ嬉しいアップデートなので、みなさんにも使ってほしくて簡単に紹介します!

新しい料金体系?

2016年5月11日から、個人の有料プランにあるプライベートリポジトリの個数制限が撤廃され、有料プランを契約することで無制限に利用できるようになりました。

公式のプレスリリースはこちらです!

Introducing unlimited private repositories
https://github.com/blog/2164-introducing-unlimited-private-repositories

それではアカウントの種類ごとに紹介したいと思います。

個人プランはかなりお得!

GitHubでプライベートなリポジトリを使用したい場合、有料プランを契約する必要がありますが、料金は個人アカウントと、法人(Organization)アカウントで料金体系が異なります。

従来の個人アカウントは、持てるプライベートリポジトリの数に応じて次のような料金体系でした。

Read More »

nginx + php7 + Lumen な開発環境をVagrantでつくる

趣味のプロジェクトで、APIサーバーとしてLaravel製の軽量PHPフレームワーク、Lumenを採用することにしました。

ここではVagrantを使ったローカルの開発環境を作るための手順を残します。

前提

  • ホストOS: Mac OS X El Capitan
  • ゲストOS: CentOS 7.1 (bento/centos-7.1)
  • ホストOSにVagrant 1.7.4 をインストール済み

今回は開発用なので、Lumenは /vagrant の中に配置し、
パーミッションの問題を避けるために、nginxもvagrantユーザーで起動することにします。

Read More »

変更すべき php.ini の設定項目

リファレンス用にまとめてみました。随時追記・編集していきます。

前提

PHP 7の php.iniをベースにしていますが、ほとんどの設定はPHP 5系と共通です。

Read More »

Python開発環境構築メモ

完全に自分用。Macにpython関係の環境構築したときのメモです。

バージョン管理マネージャを入れる

pyenvを使う

Read More »

WebPack-Dev-ServerからBrowsersyncに乗り換えた

前々回に モダンなフロントエンド開発環境をつくる という記事を書きましたが、その中で使った WebPack-Dev-Server を捨てたのでその背景と、Step-by-Stepの導入フローを書いてみます。

WebPack-Dev-Server を捨てた理由

大きく次の問題がありました。

  • Scssで@importされているファイルを変更しても、正しくビルドされない
    • TypeScriptのimportは問題ない
  • ビルド時にマップファイルが生成されず、バグが発生したときにそのまま調査に入れない
  • ビルド結果がインメモリでサーブされるため、ビルドされたソースを確認するには別途 webpack コマンドを打たなくてはいけない

特に1番目のものがクリティカルで、CSSを適用する段階では毎回webpackコマンドを打って実際にビルドしなくてはならず、使い物にならなかったためです。

この3つの問題をすべて解決できるのが WebPack + Browsersync です。

Browsersyncとは何か

Browsersyncはファイル変更を監視し、自動でブラウザリロードを行ってくれるツールです。

タスクランナーと合わせてLive Reloadの機能を提供してくれるnpmモジュールは他にもありますが、Browsersyncの特徴の一つはそれらに依存せず、単体で動作する点が挙げられるでしょう。例えばgulpであればgulp-webserver、前回のwebpackであればDev-Serverなどがありますが、これらと違い完全に独立したモジュールとなっています。

また大きな特徴として、複数環境でのデバッグ容易性向上に関する機能が多く含まれているという点です。

例えばFireFoxとChromeで同じページを開いておきながら、片方のブラウザでページ内をクリックしたとき、もう片方のブラウザでも同じ箇所へのクリックイベントを実行することが可能です。スクロールも同期することが可能なので、複数のブラウザを開いていても常に同じ箇所を表示していることになり、同時デバッグやブラウザ間の表示比較などがとても容易に実現できるはずです。(今回はこの機能については触れていません。)

Read More »