1年ちょっとで勉強した内容 2019年6月ー2020年7月

去年6月からWebサービスのようなものを作りたくて、思いつくままに色々勉強した内容を1年過ぎたのでまとめようと思う。

下記の13ぐらいを勉強したが、今回は勉強に使った本をまとめたい。

基本的には、なるべく最新の本でかつ、初心者でもわかりやすい本を選んでいる。

  1. HTML5
  2. CSS
  3. JavaScript
  4. JQuery
  5. Monaca
  6. 正規表現
  7. Python
  8. スクレイピング
  9. データベース一般
  10. リレーショナルデータベース
  11. グラフデータベース(Neo4j)
  12. クラウド(特にAWS
  13. Vue.js(今やってる)

 

 

1, 2のHTML5CSS

これからWebをはじめる人のHTML&CSS、JavaScriptのきほんのきほん

が超初心者がひっかかりそうな細かいところも全て説明されており、そもそもどういうソフトで勉強していくべきかも書かれており、大変分かりやすかった。

これからWebをはじめる人のHTML&CSS、JavaScriptのきほんのきほん

 

3, 4のJavaScriptやJQeuryは、

確かな力が身につくJavaScript「超」入門 第2版

確かな力が身につくJavaScript「超」入門 第2版

がこれも解説がとても丁寧で、分かりやすかった。

 

5のMonacaはプログラミングというより、そういうサービスではあるが

Monacaで学ぶはじめてのプログラミング ~モバイルアプリ入門編~

Monacaで学ぶはじめてのプログラミング ~モバイルアプリ入門編~

まさにその会社から出ているこの本が分かりやすい。HTML, CSS, JavaScriptだけでアプリを作りたい場合はとてもいいサービスだと思う。日本の会社なのでその点もありがたい。

 

6の正規表現は、スクレイピングの勉強している時に出てきた。分けがわからないが、すごく僅かな文字列で必要な情報を絞り込めることに中二病を刺激され、下記の本を読んだ。

詳説 正規表現 第3版

詳説 正規表現 第3版

 

この本はとても分厚いのだが、これほど優れた教科書はないのではないのだろうかと思うぐらい本の構成や進め方が読者のその時々の成長にきめ細やかに対応しており、とても感銘を受けた。

 

7のPythonはまずは

いちばんやさしい Python 入門教室

いちばんやさしい Python 入門教室

と、

スラスラ読める Pythonふりがなプログラミング

スラスラ読める Pythonふりがなプログラミング

を勉強した。

当時はそもそもプログラミング言語に触れたことすらなかったので、当り前のことすらよくわかっておらず、そういうプログラミングの超基本的なことも一から説明されており、その感覚が身に着けることが出来た。

この後に、

詳細!Python 3 入門ノート

詳細!Python 3 入門ノート

を使用した。こちらも初心者でもわかりやすく書いてあり、かつ色々詳細も書いてあるので辞書代わりに見直すこともできるのでいい。

 

8のスクレイピングは、Pythonでやろうと思っていたので、

Pythonクローリング&スクレイピング[増補改訂版] -データ収集・解析のための実践開発ガイド-

Pythonクローリング&スクレイピング[増補改訂版] -データ収集・解析のための実践開発ガイド-

をやった。結局スクレイピング自体はやりたいことから外れてきたが、検索の元となる情報をどう集積しているかなど分かって面白かった。あと正規表現やサーバやらクラウドの興味のきっかけになったので、いい出会いだった。

 

9のデータベース一般だが、そもそもデータベースってなんやねん。どんな種類があって何が違うのかがわからなかったので、雑誌やらいろいろ読んだが、

ビッグデータを支える技術―刻々とデータが脈打つ自動化の世界 (WEB+DB PRESS plus)

ビッグデータを支える技術―刻々とデータが脈打つ自動化の世界 (WEB+DB PRESS plus)

で全体像をつかんだ。

あとは

データ指向アプリケーションデザイン ―信頼性、拡張性、保守性の高い分散システム設計の原理

データ指向アプリケーションデザイン ―信頼性、拡張性、保守性の高い分散システム設計の原理

も前半を特に読んだ。

 

10のリレーショナルデータベースは、

リレーショナルデータベース入門―データモデル・SQL・管理システム・NoSQL (Information & Computing)

リレーショナルデータベース入門―データモデル・SQL・管理システム・NoSQL (Information & Computing)

を読んだが、数学の勉強に傾きそうになったので、まずは概要をつかみたく、

マンガでわかるデータベース

マンガでわかるデータベース

を読んだ。絵が好みではなかったが、文字では理解に時間がかかった内容が漫画だと桁違いの速度で理解できたので、初心者がリレーショナルデータベースのとっかかるには超おすすめできる本。

 

11のグラフデータベースはなかなか日本語の本そのものが少なかったが、

グラフデータベース ―Neo4jによるグラフデータモデルとグラフデータベース入門

グラフデータベース ―Neo4jによるグラフデータモデルとグラフデータベース入門

を基本にして、Neo4jが気になったので、

グラフ型データベース入門 - Neo4jを使う

グラフ型データベース入門 - Neo4jを使う

も併せて読んだ。

 

12のクラウドだが、最も普及しているAWSに絞って勉強することとした。

みんなのAWS 〜AWSの基本を最新アーキテクチャでまるごと理解!

みんなのAWS 〜AWSの基本を最新アーキテクチャでまるごと理解!

とっかかりとしてはこれが全体像をつかむにはよかった。

 

上記以外にもとりあえず気になる本は片っ端から買ったが、とりあえず代表的なものを選出した。

PC読書便利アイテム

PC画面で読書する機会がとても増えてきました。

紙の本と違って、大画面で、本を持つ必要もなく、姿勢も正しく見れるのでかなりいい感じですが、ページをめくるさいにキーボードを押さなくてはいけない点だけがとても不満でした。

座った状態で手を伸ばさずに本を読みたい!

ということで手元にあるもので色々工夫しました。

先ずはゲームコントローラー。

 なんでもいいですが、安いのと懐かしい形状なのでこれを買いました。ゲームにも使えて一石二鳥。今なら3600円でしょうか。

次にゲームコントローラーの入力を、キーボードやマウスの入力に変換し、さまざまなアプリケーションを操作できるようにするユーティリティソフトです「JoyToKey」をダウンロードします。

これがあれば、十字キーをキーボードの各矢印キーと対応させ、ジェイスティックをマウスの動きと連動させ、各ボタンを左、右クリックに対応させると、もはやゲームコントローラーでなんでもできます。

これで座りながら手元でゲームコントローラーで本のページがめくれます。

肩や腕の負担がほぼ無くなって、何のストレスもなく本が読めるようになりました。

在宅勤務アイテム

在宅勤務の長期化が予想されたので、自宅勤務環境を一新しました。

デスクはコンパクトでシンプルでかつ部屋の雰囲気にあうものという観点で下記を採用。3月末時点で3つ在庫がありました。お値段がお手頃なのも〇

ノートPC1台おいて仕事する分には十分な大きさです。ただ奥行がそこまでないためモニターは置けないので、別モニターが欲しいときはモニターアームの取り付けは必須になります。モニターアームさえつければ使わないときは、モニターアームを少し内側にずらしてコンパクトに片付けることもできます。

item.rakuten.co.jp

 

次にオフィスチェア。

長時間座っていても腰やお尻が痛くなく、腰のサポートが別になっており、座る部分がヘタレないネットで身長が180近くある自分に調整できるものとして、エルゴヒューマンプロのオットマンなしを採用。

少し値段は張りますが、この機能性とデザインでこの値段はアーロンなどの他メーカーと比べお買い得と判断しました。椅子は在宅勤務環境の肝ですし、ケチって体を壊すのも怖いので。メッシュ生地なので、透けてそこまで圧迫感はないです。

座るところを全部前まで出して、お尻より上の腰の部分にランバーサポートを調整し、ヘッドレストは頭の下半分くらいにすると、非常に快適です。

ちなみに今は少しだけ高くなっていますが、アマゾンの下記のリンク先が一番安かったです。

 モニターアームは、一番大手でかつ見栄えもいいエルゴトロンに。オカムラの木製の机とも調和しています。

 ただ、オカムラのlieubleはモニターアームをひっかけられる部分がないため、穴をあけてつけました。下記の道具は1000円もしないのに、手動で力もいらずすぐ穴をあけられたので、おすすめです。所要時間は5分もなかったですね。

スターエム 34-100 ミニビット 10mm

スターエム 34-100 ミニビット 10mm

  • メディア: Tools & Hardware
 

 最後にモニターは24インチのこれを。27インチでも良かったかも。

 おかげで、腰痛や肩こりの頻度や程度がかなり低減されました。もうオフィスには戻れない。。

 

 

 

Cypher備忘録③ 同じnameのnodeの属性変更

同じnameを持つnodeの属性を追加/変更する際は、属性などで指定せずにnameだけで指定すればよい。

逆に同じnameを持つnodeの一部のみを追加/変更したい場合は、属性を指定するなどnodeを特定してmatchする必要がある。

Cypher備忘録② nodeのnameのコツ

Neo4jでnodeのnameは特にルールはないが、Neo4j desktopでGraph表示させる際に、「Median_OS」と「Median OS」だと微妙に違いがある。

「Median_OS」だと円を小さくすると文字が切れてしまうが、「Median OS」だとスペースの部分で折り返してすべて表示してくれるのだ。

なんでかは知らない。

Cypher 備忘録① label も name もない id のみのノードの消し方

Neo4j Desktopで遊び始めました。

そんな中、label も name もない id のみのノードを間違えて作成してしまい、消せずにもがいていました。

ネットで探しても意外と見つからなかったというか、答えはNeo4j公式のCypher manualにあったのですが、説明が分かりずらかったので、備忘録としてここに残します。

 

公式マニュアルには id でノードをマッチさせる方法は下記のようにせよ。とあるのですが、id番号どこだよって迷子になったのですが、結局 0 となっているところがノード番号でした。

MATCH (n)
WHERE id(n)= 0
RETURN n

 なので、idが15のノードをマッチさせたい場合、

MATCH (n)
WHERE id(n)= 15
RETURN n

とすればいいわけです。

なのでidで該当するノードを消したい場合は、

MATCH (n)
WHERE id(n)= 15
DELETE n

とすれば消せるわけです。

ただしrelationが残っている場合は消せないので、その場合はrelationを先に消してあげればOKです。

インターフェロンとがん①

インターフェロンは1954年に東京大学伝染病研究所に所属していた長野泰一と小島保彦により発見・報告された。両名はウサギの皮内に天然痘不活化ウイルスを接種する実験結果からウイルス感染組織内には、干渉能のあるウイルス粒子、ウイルス抗原、抗ウイルス抗体とは別に、ウイルス感染を抑制する液性成分が含まれていると結論し、その成分をウイルス抑制因子(inhibitory factor)と名付けた。

1957年に別のグループであるA. IsaacsとJ. Lindenman (National Institue of Medical Research)が、ニワトリの胚に熱不活化処理したインフルエンザウイルスを投与させると、細胞から産生されるタンパク質がその場所でほかのウイルスの増殖を抑制することを見出し、ウイルス干渉(viral interference)を誘導するそのタンパク質をIFNsと名付けた。日本国外では、この1957年の報告を最初の発見としていることが多い。

(上記2報は下記リンク先より確認できる。)

http://www.pharm.kyoto-u.ac.jp/bisei/NaganoKojima.html

当時は、ウイルス感染や悪性腫瘍にも効くともてはやされたと長野先生の著書「インターフェロンとは何か」にも記載されている。

f:id:chroemon:20191116231109j:plain

ちなみに、1980年のTIMEでも特集され表紙を飾っているようだ。

f:id:chroemon:20191116231237j:plain

インターフェロンとは何か」は下記のまえがきから始まる。

よい基礎医学者は強靭な観察力と透徹した論理を持っているが、胸の奥底には病む人の苦しみ、悲しみ、死の恐怖を、ともに苦しみ、怖れる心を持っている。

その温かい心は信仰に根ざしている場合もあり、倫理に支えられている場合もあるだろうが、ごくありきたりの人情にほかならないことの方が多い。日本の中世の唄に、

ただ人は

情あれ

あさがおの

花の上なる

露の世に

というのがあるが、これはわれわれ日本人にとってはごく自然な思いである。この柔和な心情と、鋼鉄のような実証精神とが結びついて、医学の研究は営まれている。

研究者自身は、試験管や実験用動物に囲まれて研究に没頭しているのは専ら生物学的あるいは物理化学的興味に駆り立てられてのことだと日常思っているが、心の底には病む人への思いが沈んでいる。自ら意識しないだけである。

医学の進歩は、このような思いをもった幾多の研究者たちの努力の上になりたっていることを深く感じさせる一文である。

 

次回は「インターフェロンとがん②」ではインターフェロンとがんの現状をまとめていきたいと思う。