学習資料をiPadに取り込む時の手順

この春からサイバー大学IT総合学部に入学しました。
iPadでスライドにメモを書き込む形式で学習を進めたいので、第一回の受講前のスライド取り込み手順をまとめます。

使うもの

手順

GoogleDriveは今回別に使わないけどなんかあった時のためにアップロードしてます。

PDFを結合してからGoodNotesに取り込む

PDFを結合するとPDFアウトラインが最初のスライド以外消えてしまうというデメリットがあります。
カスタムアウトラインを設定するにしても、PDFアウトラインから探す方が便利なので1回分ずつ取り込んだ方が結果的に楽かもしれません。。

  1. Cloud Campusの各講義から学習資料をダウンロードする
  2. zipを解凍してGoogleDriveにアップロードする
  3. 【無料】PDFを結合(複数のPDFをまとめる) | Adobe Acrobatにアップロードして全部のpdfを結合してダウンロードする
  4. 結合済みのpdfをGoogleDriveにアップロードする
  5. PCでGoodNotesを開き、新規から取り込む
  6. 取り込んだpdfにアウトラインを追加していく
    • PDFアウトライン使えるので必要なさそうならやらなくてOK
    • GoodNotesの検索が弱いのでシラバスで各回の講義タイトルを調べてそれで検索しながらつけていくと楽
      • 第4回とかで検索しても「第1回」が全部ヒットする謎
    • 各回→各章でつけていくと効率良さげ
  7. iPadでGoodNotesを開いて同期する

メモ

  • アウトライン追加が一番時間がかかる
  • 全部の回・章にアウトラインを追加する作業が8回分で30分くらいかかる
  • pdfアウトラインを使った方がいいかも…?

千葉運転免許センターで原付免許とってきた(2023年12月)

幕張にある、千葉運転免許センターで原付免許取得してきたので自分が知りたかったことをまとめます。 私はこれまで運転免許を取得していなかったため、全くの初心者でした。

持っていくもの

持参するものについては、原付免許・小型特殊免許を取得される方 | 千葉県警察に詳細が記載されています。

  • 申請用写真: 写真機などで撮影した既定サイズのもの
  • 住民票: 本籍記載・マイナンバー記載なし。本人のみでOK。
  • 身分証明書(マイナンバーカードなど)
  • 現金(おそらく電子マネー使用不可)
    • 受験手数料: 1,500円
    • 免許証交付手数料: 2,050円
    • 原付免許取得講習受講料: 4,500円
    • コインロッカー用: 100円
    • お昼ご飯代・飲み物代

原付講習時に荷物をコインロッカーに入れるため100円玉があったほうが良いです。
またコインロッカーは通常想像するサイズより小さいため、小さめのバッグで行ったほうが良いです。

不要だったもの

  • 手袋・軍手など: 貸し出し
  • 筆記用具: 必要な都度貸し出される

服装

長袖、長ズボン、くるぶしの隠れる長い靴下、運動靴など

と記載がありますが、靴下の長さに関しては「椅子に座った状態で肌が見えないくらいの長さ」が適しているとのこと。

1日の流れ

  1. 二輪棟で受付
  2. 書類記入
  3. 筆記試験の受付
  4. 筆記試験
  5. 合否発表
  6. 適性検査
  7. 写真撮影
  8. お昼休憩
  9. ビデオ視聴
  10. 冊子の配布と性格診断
  11. 技能実習
  12. 免許証受け取り

基本的に、事前に説明があるので指示に従うだけで大丈夫です。受験前に知りたかったポイントに焦点を当てます。

2. 書類記入

「本(国)籍」みたいな欄があるのですが、そこは本籍地です。
私は間違えて「日本」と記入しました。笑
メガネやコンタクトをする方は記載します。

3. 筆記試験の受付

階段で2階に上がって受付をします。
書類と身分証明書を確認してもらって、受験番号のスタンプを押してもらいます。
それが終わったら教室に入りますが、机の右上に番号が振ってあるので、自身の受験番号の席に座って待機します。

5. 合否発表

1階のロビーで合格発表を待ちます。
10分以上はかかったと思うのでお手洗いなど行っても大丈夫です。
私が受けた時は12/15くらい合格率でした。

7. 写真撮影

免許証の情報登録のため、しばらく椅子に座って待ちます。 このタイミングでお手洗いに行って髪型やメイクなど直すと良いです。

しばらく待つと呼ばれるので、写真撮影列に並びます。
本当に一瞬なので気合い入れて頑張りましょう!涙

8. お昼休憩

好きに過ごすことができます。
イオンモールは意外と遠いのでゆっくりご飯食べたいのであれば食堂・売店、ローソンなどで食べると良さそうです。
本館の正面にたくさんベンチがありますのでそこで買ったものを食べても良さそうです。

11. 技能実習

まず、荷物をコインロッカーに預けます。
コインロッカー小さいので大きいor固いリュックなどは入りません(涙)
背負える場合は背負ったまま実習受けられますが、結構体力使うので小さめのバッグで行くことをお勧めします。
また100円玉が必要なので事前にあるかチェックしておくと良いです。

技能実習の内容は以下のような感じでした。

  • 乗り方・降り方
  • 発進・まっすぐ走る・停止の練習×2回
  • 右カーブの練習×2回
  • 左カーブの練習&方向指示器の練習×2回
  • 8の字の練習×2回
  • コースに出て以下を練習
    • 進路変更
    • 2段階右折
    • 右折・左折
    • 見通しの悪い交差点
    • 細い道

基本的に指導員の方がたくさんおり、毎回指示していただけます。
最初は怖かったのですが、コースに出てみると走る気持ちよさを感じました。 みんな初めてで失敗するので、上手くできなくても恥ずかしくはなかったです。
教官の方(?)は少し高圧的な方もいらっしゃいましたが、理不尽に怒られたりはしないので嫌な思いはしませんでした。

最後に

誰かの役に立てば幸いです!

msftpコマンドが使えない

現象

msshは出来るのにmsftpが出来ない…。

C:\Users\(ユーザー名)>msftp
Traceback (most recent call last):
  File "C:\Users\(ユーザー名)\AppData\Local\Programs\Python\Python38\Scripts\msftp.cmd", line 42, in <module>
    sys.exit(main())
  File "C:\Users\(ユーザー名)\AppData\Local\Programs\Python\Python38\Scripts\msftp.cmd", line 39, in main
    return msftp.main("sftp", "sftp")
NameError: name 'msftp' is not defined

環境

  • Windows 10 64bit
  • Python 3.8.1
  • pip 20.0.2
  • awscli 1.17.17
  • ec2instanceconnectcli 1.0.0

解決法

Fix msftp command in windows by Maks3w · Pull Request #13 · aws/aws-ec2-instance-connect-cli · GitHub
このプルリクにあるように、msftp.cmdを↓のように書き換えたらエラーでなくなりました。

def main():
    # return sftp.main("sftp", "sftp")
    # ↓のように書き換える
    return mops.main("sftp", "sftp")

git-svnでsvnのユーザー名を指定する

git-svn(1)に書いてある通り、ssh+svn形式とそれ以外のhttp等では指定の仕方が違うそうです。

http, https, svn--username=ユーザー名

$ git svn clone --username=ユーザー名 svn+ssh://svn.bar.com/project

svn+sshの場合は、URLにユーザー名@を含める

$ git svn clone svn+ssh://ユーザー名@svn.bar.com/project

環境
Git for Windows 2.24.0(2) Git Bash

git svn cloneが出来ない

環境

$ git svn clone -r HEAD svn+ssh://server/trunk/repo
Initialized empty Git repository in  C:/Users/A/directory/.git/
Can't create session: Unable to connect to a repository at URL 'svn+ssh://server/trunk/repo': Error in child process: exec of 'C:\progra~1\PuTTY\plink.exe -l user -pw password' failed: No such file or directory at C:/Program Files (x86)/Git/mingw32/share/perl5/Git/SVN.pm line 148.

結論から言うとエラーになってる'C:\progra~1\PuTTY\plink.exe -l user -pw password' failed: No such file or directoryはシステム環境変数SVN_SSHを参照していました。 それを削除して再度実行したら成功しました。

$ git svn clone -r HEAD svn+ssh://svn.server/trunk/repo
Initialized empty Git repository in C:/Users/A/directory/.git/
user@svn.server's password:
        A       aaa.txt_
        A       bbb.txt
...
Checking svn:mergeinfo changes since r49056: 1 sources, 0 changed
r49056 = d113acc1cbf4ac3064622a0d1f2af403b1b7cee5 (refs/remotes/git-svn)
Updating files: 100% (5745/5745), done.
Checked out HEAD:
  svn+ssh://svn.server/trunk/repo r49056

document.createElement()したやつは繰り返しappendできない

結論から言うとelement.cloneNode(true);してコピーします。

現象

optionを動的に追加しようとしてて、①すべての選択肢を表示するselect②そのうち条件に当てはまるものだけ表示するselelctを追加したかったんです。

<body>
  ①:<select id="option1"></select>
  ②:<select id="option2"></select>
  <script>
    document.addEventListener("DOMContentLoaded", () => {
      const data = [
        {
          value: 1,
          text: '選択肢1',
          flag: true
        },
        {
          value: 2,
          text: '選択肢2',
          flag: false
        },
        {
          value: 3,
          text: '選択肢3',
          flag: true
        },
      ];

      let options1 = document.createDocumentFragment();
      let options2 = document.createDocumentFragment();

      for (let i = 0, len = data.length; i < len; i++) {
        let option = document.createElement('option');
        option.value = data[i].value;
        option.text = data[i].text;

        if (data[i].flag) {
          options2.appendChild(option);
        }
        options1.appendChild(option);
      }

      document.getElementById('option1').appendChild(options1);
      document.getElementById('option2').appendChild(options2);
    });
  </script>
</body>

f:id:qroku:20190823162202p:plain

②が表示されないー!!!

調べる

      ...
      // こうすると②だけ表示される
      document.getElementById('option1').appendChild(options2); // appendChildを1→2
      document.getElementById('option2').appendChild(options1); // appendChildを1→2
        ...
        // こうしても②だけ表示される
        if (data[i].flag) {
          options1.appendChild(option); // option1に変更
        }
        options2.appendChild(option); // option2に変更
      }

      document.getElementById('option1').appendChild(options1);
      document.getElementById('option2').appendChild(options2);

後からoptionを参照した方が表示されるっぽいですね。

解決策

optionをコピーしたらできました。

      ...
      for (let i = 0, len = data.length; i < len; i++) {
        let option = document.createElement('option');
        option.value = data[i].value;
        option.text = data[i].text;
        
        let option2 = option.cloneNode(true); // これを追加して

        if (data[i].flag) {
          options2.appendChild(option2); // ここをoption2に書き換え
        }
        options1.appendChild(option);
      }
      ...

f:id:qroku:20190823163757p:plain

javascriptむずかしい…

TestRailApiのstatusesのcolorがわからない

API: Statuses [TestRail Documentation]

response contentの例見るとcolor_*の値こうなってる。

       "color_bright": 12709313,
        "color_dark": 6667107,
        "color_medium": 9820525,

それで、下にこう説明がある。

The color related fields specify the different colors used for a status and are RGB colors.

えっえっ、RGBってrgb(255,255,255)みたいなやつだよね?
9桁じゃないし255超えてるしどういう形式なんだこれ…

と思ったけど、普通に16進数に変換すればカラーコードになります。

12709313 → #c1edc1
6667107 → #65bb63
9820525 → #95d96d

なんで10進数で返してくるのー!!!