コミュ障だから明日が僕らをよんだって返事もろくにしなかった

何かを創る人に憧れたからブログをはじめたんだと思うよ

どこまでできるか分からないけどもNをやってみる。2

2020年 Nの旅

コロナの影響で某学習サイトが無料開放しているのでできるところまで進めていこうと思ったんでやってみることにしました。

f:id:andron:20200419085049p:plain

ところでここ最近アフターコロナとかいうワードをよく聞くんですが、なんでもう収束した後の話をしているんですかねぇ……。まあいいや。上のやつの続きやっていきます。



前回記事
inujini.hatenablog.com


今回やったこと!

f:id:andron:20200420011952p:plain
第2章すすめました。

1. はじめに
 環境構築のやり方の話です。日本語ファイル・フォルダはやめろみたいなこと書かれててウケた。


2. LinuxとOS
仮想環境の構築のお話。VagrantVirtualBoxの導入の仕方について書いてあります。僕の環境ではWSL使っているのでまあそれで動かせるしいいかとか良い感じでかなり飛ばして読んでましたw。


あ、ツールの導入はパッケージマネージャー使うといいってのが書いてありましたよ。
Chocolatey Software | Chocolatey - The package manager for Windows
The Missing Package Manager for macOS (or Linux) — Homebrew
特段ひろうべき内容ではないんですが僕がChocolatyを愛用しているんで拾ってしまったのでした。

そして特段拾う内容ではないけど以下コマンドでテトリスできるよ!

# Ubuntuのコンソール画面 (ターミナル) 上で以下を叩く
$ sudo apt update
# 続行しますか? [Y/n] と聞かれます。
$ sudo apt install bsdgames
$ tetris-bsd

aptコマンドがDebian系パッケージ管理ツールなんでUbuntuとかでしか動かないんですがゲームやるだけなら下のサイトでできます。

ココ。
PaizaCloud Cloud IDE - Browser-based web development environment for Ruby on Rails, PHP, Java, Django, Node.js...

f:id:andron:20200419182642g:plain
楽しい!はい……。本題に戻ります。


3. コンピュータの構成要素
コンピュータアーキテクチャなお話。

  • CPU
  • メモリ
  • ストレージ
  • ネットワークデバイス
  • ディスプレイ
  • GPU
  • バス

以上の解説レッスンでした。


4. ファイル操作
SyoumonaiShell/makeWorkspace at master · Andou666/SyoumonaiShell · GitHub
フォルダ作ったり階層移動したりするやつ。例としては上のような感じ。リンクのところは好き放題やっているからbatとかで書いたりしてますが……。


5. 標準出力
catlessgrepについての話。ファイル操作と似たようなことやりたいけどもサンプルが/binの中身の確認とかやってて上のネタでやる場合はsystem32とか確認すればいいのかとかなったのでサンプル作れなかった。なんかいい案思いついたら増やします。


6. vi
vimの使い方について。

$ vimtutor

コレやれば解決。操作方法について色々言うことはあるけど上のやつやっておけばいいんじゃねっていうのが僕の見解。


7. シェルプログラミング
SyoumonaiShell/lsAndDate at master · Andou666/SyoumonaiShell · GitHub
SyoumonaiShell/quiz at master · Andou666/SyoumonaiShell · GitHub
コンソールいじるプログラム。こんな感じのやつの作り方の説明。


8. 通信とネットワーク
TCP/IPなな話。実践でやるコマンドでいうとtcpdump curlpingの話。読み物回。

まじめにやろうとするんならこの本読んでおけばいいと思う。


9. サーバーとクライアント
サーバークライアント型通信とP2P (Peer to Peer) 型通信についての説明。実践でやるコマンドでいうとnctelnetの話。読み物回。


10. HTTP通信
サーバとクライアントの話をしたので実際にHTTP通信をしてみましょうとかそんな感じの内容。

# Pythonでサーバを立てる
$ python3 -m http.server 8000

レッスンではPythonでサーバ立ててた。

サーバーを立ててみる
やることはこんな感じの確認。ざっくりでも確認するならCGIでないとサーバ使うメリットとかが全然ない……。そういえば前回PHPでいじったときもそうなんだけど、ビルトインサーバでこういうの動かすのは危険だからやめようね…。


11. 通信をするボットの開発
RSS取得してcronするやつ作るそうです。

#!/bin/bash
dirname="./rss"
rss="RSS_URL"
yourmail="your@mail"

mkdir -p $dirname
filename="${dirname}/rss-`date +'%Y%m%d%H%M'`.xml"
echo "Save to $filename"
curl -s -H "User-Agent: CrawlBot; ${yourmail}" -o $filename $rss

こんなノリのやつをcronで回すそうで……。

そういえば関係ないけどもニコニコってRSS一覧みたいのここにまとめられてたんですね……。
公開RSS配信一覧

そしてiTunesRSSジェネレータなんていうRSS取得するのに便利なツールも……。
RSS Generator
いまこんなんあるんですね。へー。


12. GitHubでWeb サイト公開
GitHubの使い方。そしてあなたのいいところ診断を公開してみようとかそんな話。
GitHub - Andou666/assessment: あなたのいいところ診断ゲーム (ISC License)
こんなんやりまして、こんなんなります。


13. イシュー管理とWikiによるドキュメント作成
GitHub機能をつかってドキュメントづくりのお話。
Home · Andou666/assessment Wiki · GitHub
こんなんやります。


14. GitとGitHub の連携
Gitコマンドを使ってGitHubに公開とかそんなやつ。なんか拾って面白そうなネタがない……。読み物回。


15. GitHubへのpush
f:id:andron:20200419224508p:plain
ここら辺の説明回って感じがした。


16. Git のブランチ

git checkout ブランチ名
git branch

この辺りの話。

Git - Reference
ここの「Branching and Merging」読んでおけばいいと思う。


17. ソーシャルコーディング
「フォーク」して「プルリク」しあうことをソーシャルコーディングというらしい。Scratchのリミックス文化みたいなものだと勝手に思ってるんだけど定義はよく知らない。
GitHub - progedu/pull-request-study: プルリクエストの練習用リポジトリ (ISC License)
GitHub - progedu/pull-request-training: プルリクエストの練習用リポジトリ (ISC License)
これ使ってプルリクの練習とかするとのこと。

Pull Requests · progedu/pull-request-study · GitHub
こことかボケーっとながめてるとなかなか壮観。全部に回答されててすごいね。


第2章の内容はそんな感じでした。無理やりコードネタ入れてみたけども基本的に環境構築用の読み物回でした。GitHub使うようになったのでどれだけの人がやっているのか可視化されるようになってしまった。そしてそれで絶賛されている陰でどうにもならない人も見えてしまってツライ……。


つらいけどがんばって続けます。


余談

今回も並行して別のところにも手をだしていたのでそっちの報告も。前回のWebデザインの続きを……。

f:id:andron:20200420013758p:plain
しないで英文読んでましたww。

内容は以下の通り。有名な寓話ばかりなので中身を知っていると英語問題でも対応できてしまうのかもしれない…。僕はおぼろげな記憶を頼りに問題解いてたんで勉強のベクトルが確実に違うw。
1. 田舎のネズミと町のネズミ
2. 長靴をはいた猫
3. エルマーのぼうけん

んで、なんで手を出したかというと課題内容にあった「エルマーの冒険」めっちゃ好きだったからです。本とかめったに読まない僕がハマってシリーズ3作夢中で読んでしまったやつなんですよね。へえ、原題これなんですね……。読み進めて「あ、これアレやん」ってなってつい終わらせてしまった。