2018年12月18日火曜日

他人の卒検の手伝いでダイヤモンドゲームを作った話

TUT Advent Calendar 2018 18日目の記事です
タイトルの通り、他人の卒検の手伝いでダイアモンドゲームを作った話です。ちなみにiOSアプリケーションです。まさか自分が初めてSwiftを書くのがこんな機会だとは夢にも思っていませんでした。

2018年10月27日土曜日

Gitの過去のcommitを編集する

2018年10月23日火曜日

vimでTexを書く(vim-tex)

2018年10月3日水曜日

シフト代行管理SlackAppを作りたい とりあえず動くBot編

2017年6月22日木曜日

MacMiniに外部からSSH接続できるようにしてみる。

例によってふと思った。各端末からmacにsshできたら、それぞれにコンパイラを用意する必要はないしjavaでもなんでも実行できる。じゃあ接続しなきゃ(使命感)

れっつとらい

ここから備忘録。

  1. 暗号鍵作成

パスワードの認証だとガバッちゃうからまず認証用の鍵を作る。
$ cd ~ 
$ mkdir .ssh        
//暗号鍵作成
$ ssh-keygen -t rsa
//ここから「パスフレーズを設定するか」何かを英語で尋ねられるけど、
終わるまでEnter連打でも大丈夫。
//認証公開鍵の複製
$ cat id_rsa.pub >> authorized_keys
//認証鍵のアクセス権変更
$ chmod 600 authorized_keys
この作業後に生成されたid_rsaのファイルを優先で端末に転送しておく。これを-iオプションで鍵に使うことで認証できる。転送が終わったら念のため下記。
//鍵の削除
$ rm id_rsa

  1. ssh設定変更

不本意なお客にノックされたり、入られたりしないように設定をいじる。
$ cd /etc    
//設定ファイルのバックアップ(大切!)
$ sudo cp /etc/sshd_config /etc/sshd_config.back
//設定ファイルを開いて編集
$ sudo emacs /etc/sshd_config
emacsでもviでもいいから開いて、下記のところを編集する。具体的には、前半の項目名と同じところが有るので後ろのyes/noをかえたり、行頭の#を外したりする。編集したら保存を忘れずに。

//ルートでのログイン禁止

PermitRootLogin no


//RSA認証の有効化

RSAAuthentication yes

//"authorized_keys"ファイルの場所

AuthorizedKeysFile      /Users/hoge(ユーザーのid)/.ssh/authorized_keys


//パスワードによる認証不使用

PasswordAuthentication no


//空のパスワードは拒否

PermitEmptyPasswords no


//チャレンジレスポンス認証を不許可

ChallengeResponseAuthentication no

  1. 使用ポートの変更
    ssh標準のポート22を使ってると、やはりノックされまくるらしいので使うポートを変える。
    //設定ファイルを開く
    $ sudo emacs /etc/services
    開いたファイルの下記の箇所を書き換える
    //前
    ssh              22/udp     # SSH Remote Login Protocol
    ssh              22/tcp     # SSH Remote Login Protocol
    
    //後
    ssh              10022/udp     # SSH Remote Login Protocol
    ssh              10022/tcp     # SSH Remote Login Protocol
  2. ホスト側のグローバルIP確認
    ホストのMacからこういうところ(グローバルIPアドレス確認 - CMAN)にアクセスしてグローバルIPを調べてメモっておく。
  3. ルーターの設定からポート開放設定
    自分の家のルータの設定を変更して、上で設定した10022番ポートがホストに回してくれるよう設定する。ルーターごとに設定が違うのでググらなければいけない。我が家は憎きSoftbank光なので以下
    1. 192.168.11.1に接続、user/userでログイン
    2. 詳細設定を開く -> ポート転送
    3. 有効/無効 -> 有効
      プロトコル -> tcp
      WAN/LAN側ポート両方 -> 10022-10022
      転送先IPアドレス -> 自分のMacのローカルip(ネットワーク環境設定から手動設定にして固定するといい)
  4. リモートログインを有効にする
    システム環境設定を開き、共有>リモートログインにチェックを入れる。
ここまでやれば暗号キーを持った端末から
$ ssh -p 10022 -i "鍵のファイル" アカウント名@グローバルIPアドレス
でssh接続できるようになる。is01でemacsを開いてgcc/javacして実行もできるぞ!
グローバルIPとDDNS
グローバルIPアドレスはたまに変わる。これが嫌な場合はDDNSサービスを利用することで解決できる。自分はNo-IPというサービスを使ってアドレスを固定している。サインインしてホストにクライアントを入れるだけの簡単仕様なので調べてみるとよろし。

is01とConnectBot

is01からのssh接続にはConnectBotを使うことにした。至極当たり前だけど、is01にはCtrlキーとEscキーが無い。そのため、ショートカットを用意してくれているんだけど、使いづらい。おまけにShift+数字がファンクションキーの判定になって記号が打てない。

これじゃあコーディングできないじゃん

軽くググると、 ConnectBotはオープンソースなので自分で書き換えてビルドすればいい とのありがたい言葉が出てきた。が、何故かEclipseがうまく動かなかったので断念。更にググると、改変済みのapkを配布している優しい人がいた。神はいる。
ここ(is01アップローダー)からダウンロード、インストールするだけでOK!
ConnectBotで鍵ファイルを使う場合は
1. SDカードに鍵ファイルを転送
2. ConnectBotを開きMeueキーから公開鍵管理を開く
3. Meueキーからインポートを選んで、鍵ファイルを選択
4. 一度失敗してもいいからホストに接続を試みる
5. Backキーで一覧に戻って履歴を長押し>接続ホストの編集
6. 「公開鍵認証を使用」をタップして、さっきインポートした鍵を選ぶ
で準備完了。
このapkのConnectBotはShift+数字が正しく記号になるのに加えて、”絵・顔・記”キーが”Ctrl”,”文字”キーが”Esc”に当てられてる。これでコーディングができるねやったね!

参考

No-IP : https://www.noip.com/
ソフトバンク 光ユニット ポート開放 : https://www.akakagemaru.info/port/bbunit.html
スマホからSSHで自宅のMacへ接続する方法 (前編) : http://jrkl.hatenablog.com/entry/ssh_connect1
Macに外部からアクセス出来るようにする方法 : https://rcmdnk.com/blog/2013/10/29/computer-mac/

2017年6月9日金曜日

U-mobileLTE使い放題とモバイルルーター

徹夜でレポートを書いている時ふと思った。
モバイルルーターがあれば、外で確保すべきものが電源だけになってやりやすい。
ついでに端末をいくつ持っても、モバイルルーターがあればネットに繋げられる。テザリングでメイン端末の電池持ちを心配することもない。そんなわけでモバイルルーターと、せっかくなんでLTE使い放題のSIMを使ってみようと思った。

2017年5月19日金曜日

nexus7とdeep sleep

つい先日、おじいちゃんに貸し出されていたnexus7(2012)が我が家のiPad2と引き換えに帰ってきた。年をとるとやはりiPadの方が使いやすいのだろうか…それはさておき、寝かせておくのももったいないから活用、というか使えないか考えた結果ROMを焼いて遊ぼうという考えに至った。というかやってみたかった。

CM13を焼く


CMとはCyanogenModの略称で、界隈では有名なカスタムROMのベンダー?ブランド?らしい。今回焼くのはそのバージョン13の非公式ROM(個人がカスタムしたもの)。オリジナルのCM13はAndroid6.0.1をベースにしたROMなので、出来上がるのはMarshmallowな端末ということになる。

参考
Nexus7 2012 にAndroid6.0 Marshmallowを導入してみた - 木陰の魚、エビに喰われる