「PC」カテゴリーアーカイブ

MacBook Pro 15inch に Retinaの 2560×1600 擬似解像度を追加しよう


以前投稿しました、MacBook Pro 13inch に Retinaの 1920×1200 擬似解像度を追加しようですが、15inchのMacBook Proにも同様の手法で擬似解像度の追加ができましたのでご紹介します。今回は2560×1600の追加に挑戦です。

 

1.SIPを無効化する

SIPとはEl Capitanから導入されたシステムファイルの書き換えを防止する機能らしいですが、今回解像度をいじれるように無効化しておきます(気になる人はあとでdisableに戻してください)。

-1. command + R を押しながら電源を入れ(command + Rを押しっぱなしで電源ボタンを離すと起動します)、日本語を選択します。

-2. ユーティリティからターミナルを起動します。

-3. 以下のコマンドを実行しSIPを無効にしたあと、再起動します。

# csrutil enable --without fs

2. 解像度の追加

-1. ターミナルを起動して、ルートになります。パスワードはルートパスワードではなく自分のアカウントのパスワードです。

$ sudo -i

-2. MacBook ProのモニタのVendorIDとProductIDを取得します。

# ioreg -lw0 | grep DisplayVendorID
| | | | | |       "DisplayVendorID" = 1552
# ioreg -lw0 | grep DisplayProductID
| | | | | |       "DisplayProductID" = 41008

-3. 10進→16進変換し、編集すべきファイル名を取得し編集します。念のためcpコマンドで元ファイルをバックアップしておきましょう。

1552 → 0x610 → DisplayVendorID-610

41008 → 0xa030 → DisplayProductID-a030

# cd /System/Library/Displays/Contents/Resources/Overrides/
# cd DisplayVendorID-610
# cp DisplayProductID-a030 DisplayProductID-a030.old
# vim DisplayProductID-a030

-4.「i」を押して、DisplayProductID-a030 を編集します。<array>の下に<data>AAA…</data>がたくさん並んでいますが、一番上に2560×1600に相当する「AAAUAAAADIAAAAAB」を足します。追加が終わったら escを押した後、「:WQ」で保存です。

.
.
.
<array>
          <data>AAAUAAAADIAAAAAB</data>      <!-- 2560x1600 Added -->
          <data>AAAPAAAACWAA</data>
          <data>AAANIAAACDQA</data>
          <data>AAALQAAABwgA</data>
          .
          .
          .
</array>
.
.
.                              

 

3. EasyResをインストールする

13inchでは1920×1200までのため標準の画面設定から選択できましたが、15inchでは1920×1200を超えてしまい選択できないので、EasyResをインストールします。

 

4. 再起動して、EasyResからRetina (x2) 2560×1600 を選択する

再起動して、EasyResから Retina(x2) 2560×1600を選択します。これでMacBook Pro 15inch の作業領域が広くなりました!

 


EasyResで、Retina (x2) 2560×1600と、Standard (x1) 2560×1600の画質比較。どちらも、command+shift+4で撮影。

若干Retinaのほうが鮮明ですね。Retina (x2) 2560×1600 はここの手順を踏まずにEasyResだけでは選択できませんのでご注意ください。

Retina (x2) 2560×1600 表示サンプル
Standard (x1) 2560×1600 表示サンプル

	

ポートに穴を開けることなく安全なリモートデスクトップ環境を構築しよう(その3)

その1その2では、SSHトンネルを張るための中継サーバを作成・設定しました。ここではいよいよSSHトンネルを張って、遠隔操作をしてみましょう。まずはMacにてVNCを使用した例です。

 

3. 遠隔操作対象パソコンから中継サーバに対してSSHトンネルを張る

安全な遠隔操作には2本のSSHトンネルが必要ですが、まずは遠隔操作対象パソコンから中継サーバに対してSSHトンネルを張りましょう。

$ ssh -R 55900:localhost:5900 aws-relay-server
Last login: Sun Jun 25 01:56:28 2017 from xxxxx.xxxx.ne.jp

       __|  __|_  )
       _|  (     /   Amazon Linux AMI
      ___|\___|___|

https://aws.amazon.com/amazon-linux-ami/2017.03-release-notes/

中継サーバ(aws-relay-server)の55900番ポートにアクセスしたら、遠隔操作対象パソコン(localhost)の5900番(VNC)ポートに転送する、というSSHトンネル1が張られました。

-Rオプションはコマンドを実行したパソコンとは逆側のSSHログイン先のパソコン(今回は中継サーバ)からコマンドを実行したパソコンへ向かって逆向きにSSHトンネルを張るというオプションです。

 

 

4. 遠隔操作をする場所のパソコンから中継サーバに対してSSHトンネルを張る

つぎに遠隔操作をする場所のパソコンから中継サーバに対してSSHトンネルを張りましょう。

$ ssh -L 5901:localhost:55900 aws-relay-server
Last login: Sun Jun 25 01:56:28 2017 from xxxxx.xxxx.ne.jp

       __|  __|_  )
       _|  (     /   Amazon Linux AMI
      ___|\___|___|

https://aws.amazon.com/amazon-linux-ami/2017.03-release-notes/

遠隔操作をする場所のパソコンの5901番ポートにアクセスしたら、中継サーバ(aws-relay-server)の55900番ポートに転送する、というSSHトンネル2が張られました(注記:localhost:55900の”localhost”は、中継サーバにおけるlocalhostのことです。紛らわしいですが)。

-Lオプションはコマンドを実行したパソコンからSSHログイン先のパソコン(今回は中継サーバ)へ向かって順方向にSSHトンネルを張るというオプションです。

これで2本のSSHトンネルが張られ、遠隔操作をする場所のパソコン(localhost)の5901番ポートにアクセスしたら、中継サーバ(aws-relay-server)の55900番ポートを経由して、遠隔操作対象パソコンの5900番ポート(VNC)へ転送されるようになりました。

5. VNCで接続してみる

いよいよ遠隔操作ができる環境が整いました。早速、Mac標準のVNCで遠隔接続してみましょう。

-1. 遠隔操作をする場所のパソコンでFinderを開く

-2. 移動、サーバへ接続を表示

-3. vnc://localhost:5901 を入力して接続

 

遠隔操作対象のPCの画面が表示されれば成功です。遠隔ログインできない場合は、遠隔操作対象PCの画面共有(システム環境設定−共有−画面共有)が有効になっているか確認してみてください。

aws-relay-server以外はプライベートIPしか持っていなくても安全に遠隔操作できるようにすることができました。

 

 

6. Windowsのリモートデスクトップはどうするの?

ここではSSHが標準で利用できて設定が簡単なMacを例として取り上げました。ではWindowsでリモートデスクトップを利用するにはどうしたら良いでしょうか?Windowsを使う場合は、TeraTermやPuttyなどのSSHクライアントのインストールが必要ですが基本的なやり方は一緒だと思います。

違うところは、SSHトンネルのポートです。WindowsはVNCではなくRDP(3389番ポート)が標準なので、ここだけ変える必要があります。ただ、Macみたいなconfigが使えるか不明なのでコマンドをベタ打ちしてみます。aws-key.pemは実際にファイルがある場所を指定してください。

・遠隔操作対象パソコン

$ ssh -p 80 -i ./aws-key.pem -R 53389:localhost:3389 ec2-user@13.113.212.xxx

・遠隔操作をする場所のパソコン

$ ssh -p 80 -i ./aws-key.pem -L 53389:localhost:53389 ec2-user@13.113.212.xxx

あとはリモートデスクトップを開いて「localhost:53389」と打てば良いはずです。

 

 

ポートに穴を開けることなく安全なリモートデスクトップ環境を構築しよう(その2)

その1で作成したEC2上の中継サーバは作っただけですので、これから設定を進めていきましょう。遠隔操作対象PCと遠隔操作をする側のPC両方共に設定が必要です。どちらが先でも良いですが、まずは遠隔操作をする側のPCで設定してみましょう。とりあえずMacでの設定例です。

 

2. 中継サーバにSSHログインできるように設定する(Macの例)

Mac標準のターミナルを立ち上げます。

-1. ダウンロードした秘密鍵(aws-key.pem)を.sshフォルダにコピー

$ cp ~/Downloads/aws-key.pem ~/.ssh

-2. aws-key.pemのアクセス権を400 に変更

$ cd ~/.ssh
$ chmod 400 aws-key.pem

-3. configファイルを作成(修正)
.sshフォルダにconfigファイルがある場合は新規で作成し、すでにある場合は、一番下の行に追加してください。

$ vi config

iを押して挿入モードにして、以下の項目を追加します。

Host aws-relay-server
    HostName        13.113.212.xxx  (※ Elastic IPで割り当てをした固定IP)
    Port            22
    IdentityFile    ~/.ssh/aws-key.pem
    User            ec2-user
    Protocol        2
    ServerAliveInterval 15

ESCを押して、:wqで保存します。
これで中継サーバにSSHログインできるようになりました。

-4. 中継サーバにSSHログインしてみる

$ ssh aws-relay-server
The authenticity of host '13.113.212.xxx (13.113.212.xxx)' can't be established.
ECDSA key fingerprint is SHA256:U/7mSq0snVUviUrozSGydTX63FkmtCGEsxxxxxxxxxx.
Are you sure you want to continue connecting (yes/no)? 

yesを入力

Warning: Permanently added '13.113.212.xxx' (ECDSA) to the list of known hosts.

       __|  __|_  )
       _|  (     /   Amazon Linux AMI
      ___|\___|___|

https://aws.amazon.com/amazon-linux-ami/2017.03-release-notes/
4 package(s) needed for security, out of 6 available
Run "sudo yum update" to apply all updates.

無事にログインできました。

-5. サーバに最新のパッケージを適用する
ログイン後のコメントに出ているように、yum updateを実行して最新のパッケージを適用しておきましょう。

$ sudo yum update -y

1分くらいかかかりますが、最後にComplete!が出れば適用成功です。

-6. SSHのポート番号を22から80に変更する
遠隔操作対象パソコンが置いてあるところのルータやファイアフォール設定が厳しい場合、外向きのポートが制限されていてSSHログインができない場合があります。大抵のルータやファイアウォールはHTTP(TCP:80番)やHTTPS(TCP:443番)が開いているため、SSHトンネルを張るためだけにルータやファイアフォール設定を変えなくても良いようにポート番号を変えてみます。

$ sudo -i
# cd /etc/ssh/
# cp sshd_config sshd_config_old
# vi sshd_config

iを押して、17行目くらいの #Port 22 を #をはずして、Port 80に変更します。

.
.
.
# If you want to change the port on a SELinux system, you have to tell
# SELinux about this change.
# semanage port -a -t ssh_port_t -p tcp #PORTNUMBER
#
Port 80
#AddressFamily any
#ListenAddress 0.0.0.0
#ListenAddress ::
.
.
.

ESCを押してから:wqで保存後、sshdを再起動します。

$ service sshd restart
Stopping sshd:                                             [  OK  ]
Starting sshd:                                             [  OK  ]

これでsshdが再起動され、次回のSSHログイン時からは80番ポートでログインする設定になりました。exitを2回入力して、中継サーバからログアウトしておきましょう。

# exit
logout
$ exit
logout
Connection to 13.113.212.xxx closed.

-7. configファイルを修正
SSHポート番号を80番に変更したので、configファイルも書き換えておきましょう。

$ vi config
Host aws-relay-server
    HostName        13.113.212.xxx
    Port            80
    IdentityFile    ~/.ssh/aws-key.pem
    User            ec2-user
    Protocol        2
    ServerAliveInterval 15

-8. 中継サーバにログインできるか確認

$ ssh aws-relay-server
Last login: Sun Jun 25 01:33:12 2017 from xxxxx.xxxx.ne.jp

       __|  __|_  )
       _|  (     /   Amazon Linux AMI
      ___|\___|___|

https://aws.amazon.com/amazon-linux-ami/2017.03-release-notes/

ログインできたらSSHの設定は完了です!確認が終わったらログアウトしておきましょう。

$ exit
logout
Connection to 13.113.212.xxx closed.

-9. aws-key.pemを遠隔操作対象パソコンにも入れて、同様の設定をしてください。
・aws-key.pemのコピー
・aws-key.pemのアクセス権を400に変更
・configファイルにログイン情報を記載

 

以上で遠隔操作のための中継サーバの前設定はおしまいです、お疲れ様でした!

 

その3へ続きます。

ポートに穴を開けることなく安全なリモートデスクトップ環境を構築しよう(その1)

インターネットを介したリモートデスクトップ(RDPやVNC)は便利ですが、普通にやろうとすると遠隔操作対象PC側にグローバルIP(固定IPでないときはさらにDDNSも)が必要で、ルータやファイアフォールの設定をいじって内向きにポートに穴をあける必要があります。

別にそのくらいやればいいじゃんと思いますが、いくつか問題があります。

・グローバルIPかつポートが開いているということは、サイバー攻撃の対象にされてもおかしくない

・暗号化されていない遠隔操作プロトコルを使うと、途中で盗聴されてしまう可能性がある

・ルータやファイアフォールの設定権限を持っていない場合、そもそもポートに穴を開けることができない

 

ここではこれらの課題を解決するために、中継サーバを使用して2本のSSHトンネルを張って、その中をRDPやVNCを通して遠隔操作する方法を試してみます。

・固定グローバルIPがなくDDNSを使用していなかったり、携帯電話回線などグローバルIPを持っていない回線につながっているPCの遠隔操作が可能

・普通にWebブラウジングができる環境(HTTP(S)が使える環境)であれば、追加のポートを開けることなく遠隔操作が可能

・途中のすべての経路を暗号化し、安全に遠隔操作が可能

 

具体的にはこんな感じを目指します。

中継サーバはVPSでもなんでも良いですが、必要な時に必要なだけサーバを動かせるクラウド(AWS)を使ってみます。遠隔操作しない時はサーバを止めてしまえばお金もかかりませんし 笑

 

1. AWSに中継サーバーを立てよう

早速ですが、AWSに中継サーバーを立てていきましょう。

 

-1. AWSのアカウントを作成

まずはAWSにアカウントを作成しましょう。しばらくは無料で使えます。すでにアカウントをお持ちの方は次の項目へお進みください。

 

-2.  AWS EC2のインスタンス(仮想サーバ)を作成する

EC2を選択
EC2を選択
インスタンスの作成をクリック
インスタンスの作成をクリック
一番上のAmazon Linux AMIを選択
一番上のAmazon Linux AMIを選択
無料枠のt2.microを選択して次の手順へ
無料枠のt2.microを選択して次の手順へ
次の手順へ
次の手順へ
次の手順へ
次の手順へ
仮想サーバに名前を付けるためにタグの追加をクリック
仮想サーバに名前を付けるためにタグの追加をクリック
Nameタグとして中継サーバという名前を付けて次の手順へ
Nameタグとして中継サーバという名前を付けて次の手順へ
セキュリティグループ(ファイアフォール設定)にRELAY-SGという名前をつける
セキュリティグループ(ファイアフォール設定)にRELAY-SGという名前をつける
ルールの追加で、TCP:80番、0.0.0.0/0を追加後、確認と作成をクリック
ルールの追加で、TCP:80番、0.0.0.0/0を追加後、確認と作成をクリック

※TCP:80番を解放したのは、実はHTTP通信を通すわけではありません。初期状態はTCP:22番がSSHポートですが、後でSSHポートをTCP:80番に変更します。この理由ですが、詳しくはその2で説明します。

起動をクリック
起動をクリック
新しいキーペア(aws-key)を作成してダウンロード後、インスタンスを作成
新しいキーペア(aws-key)を作成してダウンロード後、インスタンスを作成

※ダウンロードしたaws-key.pem(名前はなんでも良いです)は、その2で中継サーバにSSHログインするために必要ですので紛失しないようにご注意ください。

インスタンス(仮想サーバ)が作成されたので、作成されたインスタンスを表示します。
インスタンス(仮想サーバ)が作成されたので、作成されたインスタンスを表示します。

 

これで、AWS EC2上に仮想の中継サーバが立ち上がりました!

 

-3. Elastic IPを使用してEC2のインスタンスに固定IPを割り当てる

ちょっと疲れてきましたがもう一息です!

標準ではサーバを起動し直すたびにIPアドレスが変わって不便なので、作成されたインスタンス(仮想サーバ)に固定IPを割り当てておきましょう。Elastic IPをいうサービスを使いますが、IPアドレスだけとって放置するなど、ちゃんとインスタンスに割り当てておかないとお金がかかるので注意が必要です(インスタンスを消したらIPも消しましょう)。

Elastic IPをクリック
Elastic IPをクリック
新しいアドレスを割り当てます
新しいアドレスを割り当てます
割り当てられたIPを先ほど作成したインスタンスに関連付けします
割り当てられたIPを先ほど作成したインスタンスに関連付けします
インスタンスに中継サーバを設定し、関連付けをクリック
インスタンスに中継サーバを設定し、関連付けをクリック

これで、先ほど作成したインスタンスに固定IPが割り当てされました。

 

-4. 中継サーバ完成!

 

その2へ続きます。

Aptana Studio 3 Standalone版 を macOS Sierra に入れる

以前、Eclipseを用いたRuby on Rails開発環境構築のご紹介をしましたが、Aptana Studio 3 の Standalone版の方が軽くて使いやすいようです。UIもEclipseとほとんど同じです。

しかし、何度インストールにトライしても「予期しない理由云々…」というエラーが出て起動しないので、あきらめて、ご紹介しましたEclipse + Aptana Studio 3プラグインの組み合わせでしばらくいじっていました。

ところが最近Eclipseの調子が悪く(エラーでEclipseが起動しなくなってしまう現象が発生)2回も開発環境を入れ直ししましたので、3回目のエラーで見切りをつけてAptana Studio 3 Standalone版をなんとか動かそうと再調査、うまく動きましたので報告します。

El Capitanまではエラー報告がないのでどうやら「予期しない理由」のエラーは、Sierra 以降で起こるようです。

以前の投稿と半分以上重複しますが、一連の流れの中で紹介します。

 

1. Xcodeをインストール

3. Homebrewを入れるための 2. Command Line Tools for Xcode を入れるために、Xcodeをインストールします。

 

2. Command Line Tools for Xcode をインストール

ターミナルを起動して、以下のコマンドを実行し、立ち上がったダイアログからインストールします。

$ xcode-select --install

 

3. Homebrewをインストール

続いて、ターミナルから以下のコマンドを実行します。途中でパスワードの入力を促されますが、しばらくするとインストールが完了します。

$ /usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"

 

4. rbenvと目的のバージョンのRuby、Railsに必要なgemをインストール

Macでは、Ruby 2.0.0がデフォルトですが、ここで目的のバージョンのRubyを入れておきます。rbenvというのはRubyのバージョンを管理するためのツールらしいです。今回Rubyは2.3.3を使用することにします。gemはコマンドが短いのでついでにここで入れてしまいます。

続いて、ターミナルから以下のコマンドを順に実行していきます。

$ brew update
$ brew install rbenv ruby-build
$ rbenv install 2.3.3
$ rbenv rehash
$ rbenv global 2.3.3
$ gem update --system
$ gem install bundler
$ gem install rails
$ rbenv rehash

5. Java for OS X 2017-001をインストール

あとで入れる、Aptana Studio 3 に必要なJavaをここからダウンロードしてインストールします。Java 6が必要らしく、旧版を入れないと動かないみたいです。

 

6. セキュリティ関係の設定をしておく

Sierraからよりセキュリティにうるさくなったらしく、初期設定ではAptana Studio 3 が動きません。まぁ、ここにハマったわけですが。。。

-1. アプリケーション−ユーティリティ−ターミナルを起動し、コマンドラインから以下を実行します。パスワードを求められますが、自分のアカウントのパスワードを入力します。

$ sudo spctl --master-disable

-2. システム環境変数−セキュリティとプライバシーを開き、ダウンロードしたアプリケーションの実行許可を「すべてのアプリケーションを許可」に設定します。

ここの回答に助けられました。ありがとうございます!

 

7. Aptana Studio 3 Standalone版をインストール

ここでようやくご本尊の登場です。ここからAptana Studio 3 の Standalone版 をダウンロードし、インストールします。

アプリケーション−Aptana Studio 3−AptanaStudio3を起動してみてください。「予期しない理由」云々が出ずに起動すればとりあえずはインストール成功です!

 

8. Aptana Studio 3 Standalone版を日本語化しておく

英語が苦手な人(私を含め)は、日本語化しておきましょう。

-1. ここからPleiades プラグインをダウンロードし、展開します。最新版でも安定版でもお好きな方をどうぞ。

-2. 展開し、pluginsの「中身」を アプリケーション−Aptana Studio 3−plugins の中にコピーします

-3. featuresの「中身」を アプリケーション−Aptana Studio 3−features の中にコピーします

-4. アプリケーション−Aptana Studio 3−AptanaStudio3 を右クリック(もしくは二本指クリック)し、「パッケージの内容を表示」をクリックします

-5. アプリケーション−Aptana Studio 3−AptanaStudio3−Contents−MacOS−AptanaStudio3.ini をCotEditorなどのエディタで開いて編集、最後の行に以下を追加して保存します。

-javaagent:/Applications/Aptana Studio 3/plugins/jp.sourceforge.mergedoc.pleiades/pleiades.jar

viが使える人は、ターミナルを開いて編集しても良いです。

$ vi /Applications/Aptana\ Studio\ 3/AptanaStudio3.app/Contents/MacOS/AptanaStudio3.ini

 

Mac + Eclipse + Ruby on Rails (Aptana Studio 3)Hello World!

前回構築したMac + Eclipse + Ruby on Rails (Aptana Studio 3)環境を使って、Hello Worldを出してみます。

 

1. Rails プロジェクトを作成

プロジェクト・エクスプローラで右クリック、「新規」–「Rails プロジェクト」をクリック。Rails プロジェクトが出てこないときは、右上の「Web」パースペクティブを選択するか、その他…から開いてください。

 

2. プロジェクト名を入力

プロジェクト名に適当な名前をつけて「完了」をクリック。ここでは「helloworld」としてみます。

 

3. application_controller.rbの編集

app – controllers – application_controller.rb をダブルクリックで開き、以下のコードを入力して保存します。helloメソッドが作られました。

 

class ApplicationController < ActionController::Base
  protect_from_forgery with: :exception

  def hello
    name = "〇〇さん"
    render text: "Hello, #{name}, Welcome to Ruby!"
  end
end

 

4. routes.rbの編集

config – routes.rb をダブルクリックで開き、以下のコードを入力して保存します。さきほど編集したapplication_controller.rbの helloメソッドが呼ばれるようになりました。

 

Rails.application.routes.draw do
  # For details on the DSL available within this file, see http://guides.rubyonrails.org/routing.html

  root 'application#hello'
end

5. Webサーバを起動

Eclipseの一番下に出ているコンソールから、「rails s」コマンドを入力し、Webサーバを起動します。http://localhost:3000 が起動されます。

 

6. 適当なWebブラウザを起動

適当なWebブラウザ(FirefoxやSafariなど)を起動し、http://localhost:3000を開きます。

 

7. Hello World! が出れば成功

 

Mac + Eclipse + Ruby on Rails (Aptana Studio 3)開発環境構築 覚書

何かWebアプリを作ってみたくなり開発環境を整えようとおもいましたが、PHP等どの言語も使ったことがないので、せっかく一から覚えるのであればということで Ruby on Railsに挑戦してみようと思います。

まずは開発環境の選定ですが、色々個別に揃えるよりは統合開発環境がやりやすそうなのでEclipseを選択することにしました。Eclipseにするにしても結構色々入れないと動かないので、忘れないうちに覚書を残しておきます。

パソコンはWindows機ではなく、MacBook Proを使うことにします。WindowsでもEclipseが入るのですが、少し手を出してみたものの上手く動かず結構はまってしまい、結局Mac 側にいれることにしました。

 

1. Xcodeをインストール

3. Homebrewを入れるための 2. Command Line Tools for Xcode を入れるために、Xcodeをインストールします(回りくどい・・・)。

App Storeから Xcodeを検索して、普通にインストールすればOKです。本日時点ではXcode 8.2.1でした。

 

2. Command Line Tools for Xcode をインストール

ターミナルを起動して、以下のコマンドを実行し、立ち上がったダイアログからインストールします。

$ xcode-select --install

 

3. Homebrewをインストール

続いて、ターミナルから以下のコマンドを実行します。途中でパスワードの入力を促されますが、しばらくするとインストールが完了します。

$ /usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"

 

4. rbenvと目的のバージョンのRuby、Railsに必要なgemをインストール

Macでは、Ruby 2.0.0がデフォルトですが、ここで目的のバージョンのRubyを入れておきます。rbenvというのはRubyのバージョンを管理するためのツールらしいです。今回Rubyは2.3.3を使用することにします。gemはコマンドが短いのでついでにここで入れてしまいます。

続いて、ターミナルから以下のコマンドを順に実行していきます。

$ brew update
$ brew install rbenv ruby-build
$ rbenv install 2.3.3
$ rbenv rehash
$ rbenv global 2.3.3
$ gem update --system
$ gem install bundler
$ gem install rails
$ rbenv rehash

 

5. Mac用 Eclipseをインストール

http://mergedoc.osdn.jp/ から、Mac用 最新版のEclipse(日本語版 Pleiades All in One)をダウンロードしてインストールします。どれをダウンロードするか迷いましたが、入れてみて何か足りなかったら面倒なので、全部入りの「Eclipse 4.6 NEON, Mac 64bit, Ultimate, Full Edition」にしておきました。

6. Eclipseに RDT(Ruby Development Tools)プラグインのインストール

これと7.が意外と大事。。Eclipse + Ruby on Railsの色々な記事があり参考にさせていただきましたが、これが書かれていないところが多く、何度も何度も入れ直しました。。Rubyエディタを使うために必須なプラグインです。これを入れないとファイルをダブルクリックしてもエディタが起動せずハマります。

-1.インストールしたEclipseを起動して、画面上のメニューバーから「ヘルプ」ー「新規ソフトウェアのインストール」をクリック

-2. 作業対象の右側の下向き三角をクリック、「—すべての使用可能なサイト—」を選択、名前カラムが「保留中…」になるので、1分くらい待ってください。

-3. 下から9番目くらいの「▶︎プログラミング言語」を展開し、「動的言語ツールキット – Ruby 開発ツール」にチェックを入れ、「次へ」をクリック、使用条件の条項に同意してインストールし、Eclipseを再起動します。

 

7. Eclipseの環境設定でRubyインタープリターを追加

-1. 画面上のメニューバーから「Eclipse」–「環境設定」を開く

-2. 「▶︎Ruby」–「インタープリター」を展開し、「追加」をクリック、インタープリター実行可能ファイルに「/Users/<ユーザ名>/.rbenv/shims/ruby」を入力し「OK」をクリック、さらに設定画面の「OK」をクリックして確定

 

8. Eclipseに RadRails(Aptana Studio 3)プラグインのインストール

Aptana Studio 3 プラグインをインストールし、EclipseでRailsプロジェクトを開発できるようにします。

-1. 画面上のメニューバーから「ヘルプ」ー「新規ソフトウェアのインストール」をクリック

-2. 作業対象に「http://download.aptana.com/studio3/plugin/install」を入力、「Aptana Studio 3」にチェックを入れ、「次へ」をクリック、使用条件の条項に同意してインストールし、Eclipseを再起動します。

 

9. EclipseにWebパースペクティブの追加

EclipseにWebアプリが開発しやすい画面(パースペクティブというらしい。。)を追加します。もう一息!

-1. 画面上のメニューバーから「ウィンドウ」ー「パースペクティブ」–「パースペクティブを開く」–「その他…」をクリック

-2. 「Web」を選択して「OK」をクリック。Webが2つあるかもしれませんが、私は下の方を選びました。

 

これで開発環境が整いました!
何度も何度も入れ直しているので、もしかしたら順番通りにやっても動かないかもしれませんが、その際は入れ替えてみたりしてお試しください。

 

次回はこの開発環境を使って Hello World! を出してみましょう。

 

 

Mac mini Late 2014 でトリプルディスプレイを実現するための下準備

業務用PCとしてMac(Mac mini Late 2014)を使っていますが、メインモニタとして4kモニタ(ただしMac mini の4k時のリフレッシュレートは30Hzですが)を買ってもらえることになったので、現在のFHDのモニタ2台をどうしようか検討しました。せっかくなので左右に縦置き(1080×1920 x 2台)してトリプルにしてしまおうとおもいますが、Mac mini単体では、最大でもデュアルディスプレイまでしかできません。

そこで予備実験として、USB-DVI変換コネクタがMacで使えるか、自分のMacBook Pro Early 2015 13inchに接続して試してみました。

試したUSB-DVI変換器は以下となります。

玄人志向 USB3.0 グラフィックアダプタ DVI接続 バスパワー駆動 VGA-USB3.0/DVI

ドライバはDisplayLink社のページから最新版(今回は3.0 Beta2)を落としてインストールし、再起動後に上記変換器をUSB接続します。

 

これで、私のMacBook Proで何の問題もなく動作しました。Parallels Dektop上に動かしたWindowsも問題なく表示されます!

意外とMac miniのトリプルディスプレイ化の成功記事がほとんど見当たらないので参考までに投稿してみました。まだMac miniでの実績はないですが、うまくいったらまた投稿します(職場につき写真はご容赦ください)。思いの外失敗するかもしれませんが、それはそれで。

 


追記

Mac mini Late 2014 にて、トリプルディスプレイ動作しました!

ただ動きは結構もっさりするので、動きのあるものの表示は厳しいです。動きのない資料を参照するためだけに使用した方が良いと思います。通常はデュアルで使用し、画面サイズ不足を感じた時だけトリプルにするようにしています。快適です。

32inch 4kモニタ使用感ですが、リフレッシュレート30Hzということで多少ちらつき感はありますが、事務作業やソフト開発(アニメーションとかは厳しいと思いますが)程度であれば全然問題ない感じです。全体サイズもバカでかい感じはせず、ちょうどいいです。あと、スケーリング100%でもそれほど文字サイズの小ささは感じません。MacBook Pro 13 inch でFHD表示に慣れているせいかもしれませんけど。

 

 

MacBook Pro 13inch に Retinaの 1920×1200 擬似解像度を追加しよう

私のMacBook Pro 13inch(Eary 2015)ですが、解像度を変更してスペースを拡大にしても、最大1680×1050までにしかなりません。デスクトップPCのFull HDに慣れれているためかちょっと作業スペースが狭く感じます。

そこでネットの記事を参考に1920×1200の解像度を追加してみましたので、手順を紹介します。

 

1.SIPを無効化する

SIPとはEl Capitanから導入されたシステムファイルの書き換えを防止する機能らしいですが、今回解像度をいじれるように無効化しておきます(気になる人はあとでdisableに戻してください)。

-1. command + R を押しながら電源を入れ(command + Rを離すと起動します)、日本語を選択します。

-2. ユーティリティからターミナルを起動します。

-3. 以下のコマンドを実行しSIPを無効にしたあと、再起動します。

# csrutil enable --without fs

2. 解像度の追加

-1. ターミナルを起動して、ルートになります。パスワードはルートパスワードではなく自分のアカウントのパスワードです。

$ sudo -i

-2. MacBook ProのモニタのVendorIDとProductIDを取得します。

# ioreg -lw0 | grep DisplayVendorID
| | | | | |       "DisplayVendorID" = 1552
# ioreg -lw0 | grep DisplayProductID
| | | | | |       "DisplayProductID" = 41001

-3. 10進→16進変換し、編集すべきファイル名を取得し編集します。念のためcpコマンドで元ファイルをバックアップしておきましょう。

1552 → 0x610 → DisplayVendorID-610

41001 → 0xa029 → DisplayProductID-a029

# cd /System/Library/Displays/Contents/Resources/Overrides/
# cd DisplayVendorID-610
# cp DisplayProductID-a029 DisplayProductID-a029.old
# vim DisplayProductID-a029

-4.「i」を押して、DisplayProductID-a029 を編集します。<array>の下に<data>AAA…</data>がたくさん並んでいますが、一番上に1920×1200に相当する「AAAPAAAACWAAAAAB」を足します。追加が終わったら escを押した後、「:WQ」で保存です。

.
.
.
<array>
          <data>AAAPAAAACWAAAAAB</data>      <!-- 1920x1200 Added -->
          <data>AAANIAAACDQAAAAB</data>
          <data>AAALQAAABwgAAAAB</data>
          <data>AAAIAAAABQAAAAAB</data>
          .
          .
          .
</array>
.
.
.                              

※どの解像度がAAA…になるなのか解説してあるサイト。私の検索不足もありますが、情報が少なく日本語はおろか英語サイトも含めここ以外見つけられませんでした(貴重な情報提供に感謝します!!)。

例えば 3840 x 2160 であれば、

3840 → 0xF00

2160 → 0x870

00000F00 00000870 00000001 00200000  をBase64エンコーディングすると、「AAAPAAAACHAAAAABACAAAA==」となるそうです。

ただ、これに今回の1920×1200を当てはめてもうまく一致しませんでした。試しに「AAAPAAAACWAAAAB」をBase64→16進変換後に10進変換してみると、

AAAPAAAACWAAAAB → 00000F00 00000960 00000001 → 3840 x 2400

となりました。00000001はわかりませんが、➗2のRetina解像度みたいな意味でもあるのでしょうかね。さらに00200000をつけるとDot by Dotになるのかな(たぶん)。

 

3. 再起動して1920×1200を選択する

再起動して、システム環境設定のディスプレイ設定からスペースを拡大を選択すると、「擬似解像度: 1920 x 1200」になっていることが確認できます。

どうやら、<array>内に並んでいる<data>の解像度が高い順に4つ、選択できるようですね。

これでMacBook Pro 13inch の作業領域が広くなりました!

 

ちなみにRetinaではなくDot by Dotでよければもっと解像度をあげられるようです。たとえば2560×1600解像度は、EasyResなどのアプリを入れると選択できるようになります。ただし、今回追加した1920×1200のRetina解像度はアプリを入れるだけでは出てきませんでした。

 

 

 


追記

いたずらで、Dot by Dot 2560×1600(5120×3200 ➗2)の解像度を足してみようとしましたがシステム環境設定のディスプレイ設定では認識されませんでした。ちゃんとRetinaで表示できる解像度しか出てこないようです。

<data>AAAUAAAADIAAAAAB</data>   <!-- 2560x1600 Added Disappear -->

 

 

以下、DisplayProductID-a029 全文

少しだけコメントに解像度をつけてみました。デフォルト解像度の1280×800はこのファイル内の記述にないみたいです。

<?xml vçersion="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
        <key>DisplayVendorID</key>
        <integer>1552</integer>
        <key>DisplayProductID</key>
        <integer>41001</integer>
        <key>DisplayLeakage</key>
        <real>0.4</real>
        <key>DisplayLowestLevel</key>
        <real>4</real>
        <key>DisplayLowestMeasured</key>
        <real>0.52</real>
        <key>DisplayBacklight</key>
        <real>350</real>
        <key>DisplayDarkReflection</key>
        <real>2</real>
        <key>DisplayBrightReflection</key>
        <real>355</real>
        <key>IOGFlags</key>
        <integer>4</integer>
        <key>scale-resolutions</key>
        <array>
                <data>AAAUAAAADIAAAAAB</data>   <!-- 2560x1600 Added Disappear -->
                <data>AAAPAAAACWAAAAAB</data>   <!-- 1920x1200 Added -->
                <data>AAANIAAACDQAAAAB</data>   <!-- 1680x1050 -->
                <data>AAALQAAABwgAAAAB</data>   <!-- 1440x900 -->
                <data>AAAIAAAABQAAAAAB</data>   <!-- 1024x640 Disappear -->  
                <data>AAAGcgAABBoAAAAB</data>   <!-- 825x525 Disappear -->
                <data>AAAKAAAABkAAAAABACAAAA==</data>
                <data>AAAKAAAABaAAAAABACAAAA==</data>
                <data>AAAHgAAABLAAAAABACAAAA==</data>
                <data>AAAHgAAABDgAAAABACAAAA==</data>
                <data>AAAFAAAAAtAAAAABACAAAA==</data>
                <data>AAAFoAAAA4QAAAAB</data>
                <data>AAAFAAAAAyAAAAAB</data>
                <data>AAAEgAAAAtAAAAAB</data>
                <data>AAADSAAAAg0AAAAB</data>
                <data>AAAEAAAAAwAAAAAB</data>
                <data>AAADIAAAAlgAAAAB</data>
                <data>AAACgAAAAeAAAAAB</data>
                <data>AAANIAAACDQAAAAJAKAAAA==</data>
                <data>AAALQAAABwgAAAAJAKAAAA==</data>
                <data>AAAKAAAABkAAAAAJAKAAAA==</data>
                <data>AAAKAAAABaAAAAAJAKAAAA==</data>
                <data>AAAIAAAABQAAAAAJAKAAAA==</data>
                <data>AAAGcgAABBoAAAAJAKAAAA==</data>
                <data>AAAHgAAABLAAAAAJAKAAAA==</data>
                <data>AAAHgAAABDgAAAAJACAAAA==</data>
                <data>AAAFAAAAAtAAAAAJACAAAA==</data>
        </array>
</dict>
</plist>

 

 

サブドメイン宛に届いたメールを外部に転送する

前回の記事でサブドメインを作ってみましたが、試しにサブドメインのメールアドレス宛に来たメールを外部の他のメールアドレスに転送する設定をしてみましたので覚書を残してみます。メールサーバ(postfix)が動いている前提です。

 

administrator@web.ji0vwl.net 宛に来たメールを、hoge@ji0vwl.comに 転送する

DNS設定

VPSのIPアドレスが、111.111.111.111と仮定します。

転送先のメールサーバに弾かれないように、念のためSPFレコードも登録しておきます。

web.ji0vwl.net IN MX 10 111.111.111.111.111
web.ji0vwl.net IN TXT "v=spf1 ip4:111.111.111.111 ~all"

エイリアス設定

VPSにログインして、エイリアス設定します。エイリアスを使えば、ユーザの実体を作らなくてもよくなります。

ここでは administrator@web.ji0vwl.net 宛に来たメールを、hoge@ji0vwl.comに 転送したいので、以下のように記述します。/etc/aliasesを修正した後、newaliasesを実行することで反映されます。

$ sudo -i
# vi /etc/aliases
.
.
.
administrator:      root, hoge@ji0vwl.com
.
.
.

:wq

# newaliases

postfix設定

administrator@web.ji0vwl.net宛に来たメールを受信できるように/etc/postfix/main.cfを修正します。mydestinationの設定が大事です。myoriginに$mydomainを設定しておくと、送信されるメールの送信元が administrator@web.ji0vwl.net になりますが、今回は単なる転送なので関係ないかも。

# vi /etc/postfix/main.cf
.
.
.
$mydomain = web.ji0vwl.net
myorigin = $mydomain
mydestination = localhost, $mydomain
.
.
.

:wq

 

私の場合はVPSをメインのメールサーバとして使っていないので、新しいサブドメインのメールアドレスを作った場合、このように転送しておくと便利です。

サブドメインでなくても、例えばSSL証明書を取得するためにどうしてもadministrator等アドレス固定でメールを受信しなくてはいけなくなった場合に使えますね(Let’s Encryptなら不要ですが、初めに使ったStart SSLのときにこうすればよかったかもしれません)。