iPadだけで江添亮のC++をお勉強する(iSH)


はじめに

最近話題の江添亮のC++入門を買いました。
ハロワの前にmakeを教えるのとかすごい好きです。
しかもこれwebで全文公開されてるんですよね。 すごい。 (本文はGPLv3)
単純なhtmlなのでどこでも読めちゃいます。 よい。

最初はふつうに机では紙書籍、ゴロゴロしながらmacやiPadで読んでたのですが、
iPadでg++がさらっと動いちゃって これiPadだけで完結できるんじゃ... →できた\('ω')/
ので記事にしました。

ついでにネット環境のないオフラインでもローカルなhtmlを表示がうまくいったので織り込みました。
(もちろんアプリとかでやってもいいと思います)

手順

1. iPad買う

  • キーボード付きケースがいいかんじ
  • もちろんUSB頑張って繋げて外付けしてもいいです
  • ソフトウェアキーボードは...
  • Androidは知らないです _(:3 」∠ )_

2. iSH入れる

iSHは現在(2019/09/30)ベータテスト中
1. TestFlightを入れる
1. https://ish.app/の「Join the TestFlight beta!」の下のアイコンをタップする

(もし入らなかったらTestFlightのテストユーザー数制限10,000人のせいかも...)

3. apkで諸々入れる apk add vim みたいにインストールできる

  1. iSHを開く
  2. apk add vim git make g++ php bashする
    • 宗教上の理由でemacsが使いたい方は
      echo "alias emacs=vim" > .bashrc; source .bashrcする(冗談)
    • もちろんapk add emacsでもよい
  3. あと好きなのいれる(ないかも)
  4. 初期のシェルがashなのでお好みでecho "bash" > ~/.ash; bashとかする

4. 江添亮のC++入門をありがたくwgetする

  1. 真心込めてwget https://ezoeryou.github.io/cpp-intro/index.html
    を実行し、聖書をゲットする
    • 宗教上の理由でCurlの方が心がこもる方は
      curl https://ezoeryou.github.io/cpp-intro/index.htmlする
      ただし入ってるかは知らない(確認してないだけ入ってると思う)
  2. php -S localhost:80して、お好みのブラウザでhttp://localhost/を開く
  3. htmlが見える\('ω')/ か確認する
  4. 確認できたら、一旦Ctrl-Cして閉じる
  5. 適当なところに下記のようなシェルスクリプトを用意して(local_server.shとか)
    index.htmlのあるディレクトリで実行する。
    .bashrcとかにbash local_server.shみたいに書いてログイン時に自動実行してもいいかもしれない
    あんまり詳しくないので まさかり待ってます _(:3 」∠ )_
#!/bin/bash
php -S localhost:80 > /dev/null 2>&1 &

5. ありがたく写経する

  1. iSHを開きながら聖書見る 詳しくはiPad でマルチタスク機能を使うを参照
    1. Dock(正式にはApp スイッチャーというらしい)にお好みのブラウザを入れる
    2. iSHを開く
    3. Dockを出してお好みのブラウザを触ったまま上にドラッグしてマルチタスク状態にする
  2. 気の赴くままに写経をすすめる
    雰囲気はこんな感じです

めも

  • iPad Pro 12.9inを買った よい
    • iSHというターミナルエミュレーターがつよい
    • いわゆる脱獄、root化はいらない
    • iPadの中でgit,gcc,g++,clang,python,phpなどなど動いた
    • どこまで出来るかは調査中
  • 最近話題の江添亮のC++入門を買った よい
    • 全文公開されている 太っ腹
    • 書籍も買ったので実質電子書籍と(紙)書籍の両方を使えることになる
    • 書籍は700ページ弱で1kg超の重さがある 持ち歩くにはつらい ← 移動先全てに配備?
    • デスクトップでは書籍、他はmacなりiPadなりで読み進める
  • iPadでg++が動いた(激震)
    • これiPadだけで全部できるんじゃないかな → できた\('ω')/
    • 最近のiPadつよい...

おわりに

  • 今や聖書を石板にwgetする時代
  • iPadがつよくなってる (Androidは知らない)
    • gcc8.3.0 clang8.0がapkで入る
    • vim8.1がapkで入る (emacsはC-x,C-cしか知らない子です _(:3 」∠ )_ )
    • vimのプラグインも動く deinであっさり つよい
      • vimprocのコンパイルのみmakefileいじった
    • ローカルのhtml表示はphpだとうまくいったけどpythonだとエラーになった
    • 昨今PC持ってない学生が問題になってるけど、確かに垣根が低くなってる。
      • でも物理的なキーボードは必須だと思う...
  • 時代はなんでもオンライン、かもだけどネットなしで動く信頼性は侮れない
    • Qiitaの様に編集中に問題が起きたため、このWebページが再読み込みされましたとかならない
      • ほんと勘弁して欲しい 0(:3 )~ ('、3_ヽ)_ ← 保存しろ
    • そもそもオンラインでよければ[Wandbox]三へ( へ՞ਊ ՞)へ ハッハッがある
      • 三へ( へ՞ਊ ՞)へ これなに...
    • アプリがiSHだけで完結するのはそれはそれでよい (TestFlightは見えない (๑>◡<๑) )
  • 初投稿だけどQiitaの使い方あってるだろうか...
  • golangが動かない This program can only be run on processors with MMX support.
    • iPadでgolangが動けば更につよつよになると思う
    • 一応to-doリストにあるので、そのうち対応されるかも...
    • armじゃなくてx86をエミュレートしているらしい つよい
  • iSHはβ版で、TestFlightにはテストユーザー数10,000人の制限があるらしいので、
    もしかしたら使えないかも_(┐「ε:)_
  • iPadは過渡期にある感じかも
    • ダム端末としては今までもsshで使えたけど、これからはコンパイラが動く よい ⸜(๑’ᵕ’๑)⸝
    • Pythonista3とかもいいけど iSHの方が正統進化な感じがする
    • ネイティブなGUIアプリの開発ができるようになる日も近いかも
      • electronなら開発だけは一応いけそう(ただしiSHではnode.jsはまだ動かない)
  • 江添亮さんに感謝

履歴

2019/09/30 Qiita初投稿 下書き 気が向いたらまともな文章にする