Textastic Code Editor

http://is4.mzstatic.com/image/thumb/Purple5/v4/f1/3e/d5/f13ed50c-834e-cf7f-6489-e7c81ea940da/AppIcon60x60_U00402x.png/0x0ss-85.jpg
https://itunes.apple.com/jp/app/textastic-code-editor-for/id550156166?mt=8&uo=4&at=1l3v6Ns:text

ftp によるファイル転送や、html & javascript のローカル実行環境を兼ね備えたエディタ。特に内蔵されているカスタムキーボードのカーソルキーは選択範囲を正確に調整できたり、コードを書く時に使うであろう記号がほぼ全てショートカット入力できたりと、他に類を見ない優れもの。

Google Compute Engine に出会うまではこれをメインで使っていました。

Coda for iOS (旧 Diet Coda)

http://is5.mzstatic.com/image/thumb/Purple7/v4/51/1e/3a/511e3a94-2493-3bbe-7f5d-7634eaede888/AppIcon60x60_U00402x.png/0x0ss-85.jpg
‎「Coda by Panic」をApp Storeで

サーバに接続してコードの編集ができるエディタです。カスタムキーボードがついているので、普段の文章ではつかわないけど、コード書く時はよく使う記号の入力が簡素化されています。

ただ、私の場合このエディタに組み込まれている ssh クライアントで Google Compute Engine に繋いで、GCE 上でvi使ってコードをいじくるという感じなので、このアプリの利点を半分位しか活かせてない気がします。

iPadでプログラミング

自宅ではなかなかpcの前に座る余裕がなくなったため、趣味プログラミングができるのは通勤時間のみとなってしまいました。

そこで、通勤時間中にプログラミングする方法を検証した結果をご紹介したいと思います。

起動時に何か処理をさせたい時はchkconfigではなくsystemctl

ターゲットos : CentOS Linux release 7.1.1503 (Core) 

はじめに

Google Compute Engine のインスタンスは起動時にipアドレスが変わるので、起動時に Dynamic DNS に登録されているIPアドレスを更新するスクリプトを実行させようと思ったのが事の発端。

※注意 : 2015年9月8日現在、dns の更新に時間がかかって私が想定していた使い方ができていません。。。

※参考サイト : http://tire-retire.blogspot.jp/2014/12/centos7rclocal.html

Dynamic DNS サービスは ieServer

いくつかあるドメインを選んで、好きなサブドメインを無料で取得可能。1ヶ月に1回はipアドレスの更新 or 管理画面へのログインが必要。
IPアドレス更新用のWebAPIあり。

ieSever.Net
https://ieserver.net

          • -

ググったら上の方に出てきたサイト。特に問題なく使えている感じです。

シェルからieServerに登録されているipアドレスを更新する

wget で更新用のurlにアクセスする感じです。
起動時しか実行する想定では無いのでシンプルです。

#!/usr/bin/bash

# ieserver.net のダイナミックdnsに登録されているipアドレスを更新

# DDNS更新ページURL
# wgetをSSL接続可能でビルドしているなら、https:// での接続を推奨
DDNS_UPDATE=http://ieserver.net/cgi-bin/dip.cgi

# ieServer.Netにて取得したアカウント(サブドメイン)情報を記入
ACCOUNT=aaaaaa
DOMAIN=dip.jp
PASSWORD=abcdefgh


PARAM="${DDNS_UPDATE}?username=${ACCOUNT}&domain=${DOMAIN}&password=${PASSWORD}&updatehost=1"
echo ${PARAM}
wget -q -O - ${PARAM}

serviceファイルの追加

/etc/systemd/system/

に .service という拡張子で

[Unit]
Type=simple
Description=update dynamic DNS
After=network-online.target

[Service]
ExecStart=/usr/bin/bash 上記ddnsを更新するシェルのパス

[Install]
WantedBy=multi-user.target

というファイルを作成。

追加したserviceの動作確認

sudo systemctl enable 上記ファイル名
sudo systemctl start 上記ファイル名
sudo systemctl status 上記ファイル名

SUCCESS と出てればok.

問題点

起動時に ddns の更新をする事で、起動の度にipアドレスが変わるgceのインスタンスに対して、host名でアクセスできるようになる事を期待したのですが、実際はdnsが古いipアドレスを返してきて、最新のipを返すようになるまで時間がかかる事がわかりました。

これはdnsの仕様なのでどうにもならなさそうです。。。

※参考 : http://qa.atmarkit.co.jp/q/140

ターゲットos : CentOS Linux release 7.1.1503 (Core) 
ruby -v : ruby 2.2.3p173 (2015-08-18 revision 51636) [x86_64-linux]
gem -v : 2.4.8

ruby と gem が用意出来ていれば、インストールはいたって簡単。

sudo gem install taskjuggler

バージョン確認

tj3 -v

rubyのインストール

ターゲットos
CentOS Linux release 7.1.1503 (Core) 


sudo su -
git インストール
yum install -y readline-devel
rbenv を git clone
ruby-build を git clone
profiles 編集
sudoers 編集
rbenv install -l
rbenv install 2.2.3
rbenv global 2.2.3
gem update --system
gem install bundler


※参考 rbenv : http://www.task-notes.com/entry/20150624/1435114800
※参考 rbenv : https://github.com/sstephenson/rbenv#installation
※参考 sudoers : http://qiita.com/ogwmtnr/items/3ec2fab50d069a3cf335