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を導入してみた - 木陰の魚、エビに喰われる

2017年5月17日水曜日

IS01での失敗と再興

1年くらい前にIS01を買って放置していた。なんとなく気が向いたので色々いじっていたら、shをbashに入れ替えようとした時にbashをchmodしないまま入れ替えてrebootしてしまった。気づかずにターミナルを起動するも落ちる。is01rootも動かない。ここでchmodし忘れたことに気づき絶望。そんなわけで諦めて一か八かオールリセットを試すことにした。

目次

2017年5月15日月曜日

Vivaldiでのあれこれ

普段ブラウザはメインがVivaldi、サブがChromeでやってる。このVivaldiが曲者で、タブスタックやサイドパネルなど便利な機能がある反面、不具合なのか仕様のかわからない挙動もある。個人的な対処の備忘録。

2017-05-15現在 Mac版64bit 1.9.818.49での記事

  • ページ読み込み後にしばらくフリーズする

    ページを読み込んだ後、数秒間一切の操作を受け付けなくなる現象。放置しても治らないよう。そこまで重大な問題ではないけど、急いでいる時には凄まじくストレスになる。
    -> Shift + ⌘ + Delete で「プライベートデータの削除」のメニューを出し、キャッシュとアプリケーションキャッシュを削除する。自分はこれで解消された。

  • Magnetと⌘Hが効かない

    Macで愛用しているウィンドウ管理アプリ「Magnet」。キーボードでウィンドウサイズを定形に変えられる便利なアプリだが、Vivaldiでは効かない。ついでに⌘Hで隠せないときもある。これが地味にイライラさせられる、Chromeでは問題ないのに…
    -> 新しいウィンドウを出すたびに、そのウィンドウを最大化、その後最大化を解除。こうするとウィンドウサイズの変更等々が効くようになる。

  • 入力した文字が化ける

    アドレスバーなんかで文字を入力して検索すると、入力した文字がちょくちょく化けてしまう。文字を未変換のまま削除すると、backspaceの文字コードが入力されてしまうのが原因らしい。未解決の問題なのでアップデートを待つしか無い。
    -> 対処としては未変換での文字の削除を避けること。効率は落ちそうだけど、仕方ない。文字化けした際は日本語部分を削除してかなキー・英数キーを交互に連打したあと再度入力すると文字化けしないときもある。

2017年5月1日月曜日

Java戦車道(Robocode)

楽しいGWに埋もれるほどの課題


大学は5/1,2を休校にし、9連休を与えた。
しかし、学生には途方もない課題だけが残った。
4月末 某所 まっつん

というわけで9連休を手にしましたが、課題の量ですでに頭がいたいです。頑張ります。
それで本題ですが、今回出されている課題の中に

Robocodeで強いロボット(戦車)を作ってレポートを書く。ついでにそのロボットの特徴や戦術をプレゼンしてね。

というのがある。

2017年4月27日木曜日

Boostnoteをしばらく使ってみて思ったこと

BoostnoteとMarkDown記法を本格的に使い始めてほぼ一ヶ月経つので勝手に感想をまとめてみた。ちなみに使いはじめはこんなこと書いていた。

目次

MarkDown記法のいいところ


  • ほぼキードードだけで見やすい文章が作れる
  • 画像も入れられる

これは自分にとって革命だった。かつて講義のノートをプレーンテキストでとっていたことがあったけれど、少しでも見返すときの視認性を考えるとすぐに手間取り始めて最終的にとるのをやめてしまった。特に数学系の式を多用する講義では絶望的だった。ところが、markdownで書くとキーボードからほとんど手を離さず文書を整形し、修飾することができる。ハイフンを大量に並べてウィンドウサイズが変わったときに見栄えが悪いのに苦しんだりしなくて良いのだ。Wordやその互換ソフトのように修飾するのにいちいち該当箇所を選択して対応するボタンをクリックしたりしなくていい。慣れてみるとこんな素晴らしい記法は無いように思える。html互換の記法なので、記法になくても表示したいものはhtmlのタグを調べれば解決するし、Boostnoteを使っている以上はレポートで使っているLatexの数式表示が使えるので、数式も怖くない。これはぜひ一度触れてみるべきものだ、間違いない。

2017年4月22日土曜日

Proフルコンマラソン

デレステのはなしです


唐突ですがデレステをしてます。

デレステとは
アイドルマスターシンデレラガールズ スターライトステージ」の略で、
超端的にいうと「携帯機のアイドルゲーの音ゲー」。

始めたのはいつごろか覚えてませんが、攻略wikiのイベント履歴をみると、イベント「Jet to the Future」中だったから大体2016年の10月頃ですかね。ちなみにこのイベント楽曲のCDが発売しました、ロックなのでおすすめです。

2017年4月19日水曜日

centosのパッケージ管理とemacs

viはめんどくさい


centOSを導入したはいいが、エディタが使えない。1年の授業でUbuntuを使った時にはGUIのemacsを使っていた。が、サーバーをやる人たちはviが好きなのか、こういう環境はviしか入ってない。前にIS01をいじったときもviしか入っていなくて苦労した。実際はviのほうが軽量でどんな環境でも動くからその点優れているのだろうが、我はGUIで育った温室育ち。そんな厄介なものは使えないので、馴染みのemacsをインストールすることにした。

知ってるんだぜ!コマンドをインストールするときはsudo api-get install emacsだ!

$ sudo api-get install emacs
sudo: api-get: コマンドが見つかりません

なんすかこれ。調べてみると、UbuntuとcentOSではパッケージマネージャーが違うらしい。めんどくさ centOSではyumというパッケージマネージャが採用されているらしい。すごい近親感を感じる…!

コマンドの確認

2017年4月16日日曜日

Vagrant導入とCentOSのインストール

参考:初心者がVagrantを使ってみる。
homebrewとVirtualBoxは導入済みだった。

Vagrantのインストール


インストール
$ brew install Caskroom/cask/vagrant
最初にコマンド打ち間違えてビビった…うまくいくとy/nは訊かれないが、間違えているとy/n?が来るので出たらnを打ってコマンドをよく確認しよう。
インストール完了の確認
$ vagrant -v 
Vagrant 1.9.3

2017年4月7日金曜日

MacminiとHDD交換

それは突然訪れる


新年度が始まる。学生にとって新年度といえば気がかりなのはやはり時間割だ。そんなわけで時間割のシートを編集すべく、大学から自宅のMacminiに接続したときだった。接続できない。何かがおかしいとビクビクしながら帰宅。帰りを待っているはずのMacは驚くほど固まっていた。ログイン画面のまま一向に反応する気配がない。しかたなしに強制終了。ここまではたまにあることだった。

ここから全く動かない

2017年3月29日水曜日

自転車のライトとエクステンションバー

デカくて邪魔だったライト


ある日キャンプから帰ってくると、自転車のフロントライトの台座がなかった。父親が台座を他の用事のためにばらしてしまったらしい。そんなのありかよ

2017年3月6日月曜日

Java学習と文字列連結

先日、Java学習のためにこんな本を買った。Amazonポイントのための奨学金の無駄遣いではない

こんな本
スッキリわかる Java入門 実践編 第2版 (スッキリシリーズ)スッキリわかる Java入門 実践編 第2版 (スッキリシリーズ)

買ってからしばらく置いていたが、やっと心の準備ができたので開いてみた。実践編というだけあって確かに初歩的なことは習得している前提のようで、1章までしか読んでいないが割りとサクサク進む。1章はStringクラスのメソッドを使った文字列操作を解説しているのだが、大学の授業とある程度かぶっているあたりに「うちの大学はちゃんとやっていたんだ」ということを実感した。

連結演算子の話


さておき、これを読んで初めて知ったがJavaにおける文字列演算子は「+」だけではないらしい。StringBuilderとStringBufferなる手法が存在し、それらは「+」演算子を用いた文字列連結より高速に動作するのだと。

2017年2月28日火曜日

便利なエディタとMarkdown記法

Boostnote


しばらく前にLifeHackerにてこんなソフトウェアの記事を見つけたのを read it laterの中から発掘した。

100種類の言語に対応したプログラマー向けノートアプリ「Boostnote」
(http://www.lifehacker.jp/2017/02/170205_boostnote.html)

なにやら面白そうなので早速インストールして使ってみた。インストールと言ってもdmgファイルをダウンロードしてApplicationフォルダに投げ込むいつものパターンだ。
その他初期設定なんかは保存先設定くらいしか無いけども、リンク先を参照ということで。 自分はDropBoxフォルダ 内に保存して疑似クラウド同期しようとしている。

さておきこのアプリケーションは新しくファイルを作るときにマークダウンかスニペットか訊かれる。ここでスニペットを選ぶと、下部のバーに言語の選択肢やインデントの設定が現れてシンタックスハイライト機能があるエディタになる 。

また、マークダウンを選ぶとマークダウン記法に対応したエディタとして 機能する。編集中はプレーンテキストとして編集でき、編集を終えると変換して表示してくれる 。

このマークダウン(markdown)記法、存在こそ知っていた けれどなんとなく避けていた。MarkDownと正規表現は「2大食わず嫌い」として自分の中で長らく君臨していたが、1年生のうちの講義で正規表現があっさり陥落。この機会にMarkdown記法についても触れてみることにした。

MarkDown記法


この記法はプレーンテキストをhtmlに変換するフォーマットとして作られたものらしい。その為、 それぞれの 修飾をhtml直書きで再現できるとのこと。伝聞形ばっかりなのは、html についてどんな言語か と基本的な構造を知っている程度だから。まぁそのうち…しかし直接書いてる人っているのかな。

まぁ実践あるのみということで書いてみるのがいい。記法の参考にしたのは以下のページ。

かんたんMarkdownの記法
(https://tatesuke.github.io/KanTanMarkdown/syntax.html)

このページ自体は「かんたんMarkdown」というサービス(?) の解説をしているのだが基本的なところは抑えられている 。Boostnoteで有効だったから多分大丈夫なはず。 キーボードだけで装飾が棲むのが 楽な上に 、たのしい。Latexもそうだけど男心をくすぐるというかかっこよさを感じる。boostnoteともども講義ノートを取るのに活躍しそうで楽しみ。はやく春休み終わってほしい。

2017年2月26日日曜日

BootCamp上でトラックパッドが効かなくなった

MacBookAirでBootCampしているWindows10で唐突にトラックパッドが効かなくなった。おそらく、以前にトラックパッド多機能化のためのドライバを導入しようとして諦めた時のことが原因のようである。諦めた後にWindowsがテストモードになっていることに気づきそれを解除した後の出来事なので間違いない。原因はさておき我らがGoogleで検索するとこんな記事があった。

MacBook(MC516J/A) Windows8導入時の注意点 - 電脳絵日記
http://dennouenikki.blog.fc2.com/blog-entry-2.html

これを参考にUSBマウスを突っ込んで以下のように対処した。
  1. コントロールパネル>ハードウェアとサウンド>デバイスマネージャーを開く
  2. ヒューマンインターフェースデバイス以下の「Apple Multi-Touch」に警告マークがついていることを確認
  3. ダブルクリックでプロパティを開き、ドライバのタブに移動
  4. 「ドライバを元に戻す」を実行。ここでデバイス名が「USB入力デバイス」になる
  5. 再度プロパティを開き、「ドライバの更新」を実行
これで元通り使えるようになった。手順4の段階でトラックパッドが効くようになるが、 2本指での副クリックやスクロールが効かなかったので手順5を忘れないように注意。手順5を実行するとBootCampコントロールパネルにもトラックパッドのタブが表示されるようになる。