N予備校の【2017年度】プログラミング入門 Webアプリ をやってみたらわりと初心者殺しだった

【2017年度】プログラミング入門 Webアプリ > 第2章 準備しよう > 01.LinuxというOS を実際にやってみたときのメモです。
ネットでの評判(まじな話をすると、N予備校のプログラミング入門コースやるのがオススメ。 ..) がよかったので試しにやってみたのですが 環境構築にはよくある言われたとおりにやったのに結果が異なるという初心者殺しなところが見受けられました。

01.LinuxというOS

dateコマンドの結果が日本語にならない

f:id:snowlong:20170917150551p:plain

教材にはこのようにありますが

ubuntu@ubuntu-xenial:~$ date
Sun Sep 17 05:42:08 UTC 2017

どうなっとんじゃ。。

以下のコマンド入力が必要。

$ echo export LC_ALL= >> ~/.profile

できました。

ubuntu@ubuntu-xenial:~$ date
2017917日 日曜日 05:56:32 UTC

メモ

ローカライゼーション系環境変数のなかでは「LANG」「LC_ALL」は少々特殊なものとなっており、LC_ALLが設定された場合全てのローカライゼーション系環境変数は必ずその値が使用されるようになっている。LANGも同じような挙動をしているようにみえるがLC_TIMEなどを個別に設定することが可能となっている。

ゲームをやってみようでbsdgamesが見つからない

f:id:snowlong:20170917150555p:plain

教材にはこのようにありますが見つからないといわれる。。

ubuntu@ubuntu-xenial:~$ sudo apt-get install bsdgames
パッケージリストを読み込んでいます... 完了
依存関係ツリーを作成しています                
状態情報を読み取っています... 完了
E: パッケージ bsdgames が見つかりません

updateするとインストールできる

$ sudo apt-get update
$ sudo apt-get install bsdgames
Reading package lists... Done
…(LOCALEを英語に戻してたので英語のメッセージが表示されてた)

Linuxのディストリビューションを落としてきたらまずupdateするのは基本なので省いてほしくなかった。 初心者向けにかんたんに見せようと手順を省いたのかもしれないが結果的にそれが初心者には易しくない結果を生んでしまっているのが残念です。 生放送で講師とリアルタイムでやりとりできる人ばかりではないのですから。
言われたとおりにやったのに結果がテキストと異なるのはほんと勘弁してくれ。

プログラミングは一部の天才たちのためのものか?

プログラミングできるようにはそのくらいの問題は自分で解決できなきゃダメだみたいに言う人がいますが、個人的にはその考えには同意できません。 ITエンジニアは慢性的な人不足です。
一人でも多くの初心者を中級者にすべきな状況なのにどうしてそんな非効率の極みみたいな発言をするのか本当に理解できません。 そもそもこれ環境構築、プログラミングする前の準備段階ですからね。そこで初心者に余計な課題を与えてどうしたいのでしょう。

中卒をWebエンジニアにするを理念に掲げているのであればもう少し初心者が躓くポイントを抑えるべきであり、ここが弱いといくら手間ひまかけて人を集めてもプログラミングができるようになる生徒の数の割合は他のプログラミング学習サイトと大差ないのではないでしょうか。

試み自体はとても素晴らしいものだと思います。 が、永劫、プログラミングは一部の天才たちのためのものか?という問いの答えはやっぱりまだYESと思っているんだなあという感想を持ってしまいました。
もっともっとプログラミングの敷居を下げてください、ドワンゴさん。お願いします。

株式ポートフォリオの内訳は全部外国株

全部、外国株(米国株かADR)

投資先のすべては国外企業です。

理由は日本より業績伸ばしそうな銘柄選びが簡単そうだったからなのと日本市場よりも投資金額の単位が低いからです。

日本の市場で今後株価が2倍にも3倍にもなりそうだと期待できそうな銘柄が残念ながら今の自分にはありません。 調べればあるのかもしれませんが、そんな時間をかけるより適当に米国株に投資するほうが自分にはあっているわけです。

せっかく調べてこれは期待できそうだと思った銘柄の最低投資金額が日本の企業だと100万オーバーという現実を知り、ブラウザをそっ閉じするしかありません。 米国株ならAmazonでも10万出せば株が買える。この違いは大きいです。

セクター

製造、情報、通信、製薬(セクターは正確ではない、雰囲気で書いてます)に投資していますがこれは自分の観測範囲的にそれくらいしかわからないからです。

配当大好き

テスラ以外の投資銘柄はすべて配当を出しています。
配当というのは優秀な人たちの集まりにお金をちょっと投資すると彼らが頑張って新しい技術とか開発して市場を開拓してお金を稼いでその一部が定期的に自分の懐に入ってくる夢みたいなシステムです。
ちょっと申し訳ない気持ちにすらなります。

配当が出せるほど安定しててかつ積極的な投資を行って新分野でもうまくいっている企業に投資したいです。
正直、自分の能力とか考えると自己投資するよりも、これらの企業に投資したほうがよっぽどパフォーマンスいいと自負しています。

MSFT

Microsoft。

Azureに代表されるクラウドサービスの伸びが順調。
ナデラCEOになってからOSSと歩み寄る姿勢がいい。
デベロッパーの方をちゃんと向いていますという姿勢もAppleと比較してよい。
モバイルのシェアの低さどーすんのよという問題は未だに未解決。

TSLA

テスラ。
イーロン・マスクで現在の株価の9割は説明できる。
業績はそれほどで資金がショートとかちょこちょこ話題になる。
もっと販売台数伸びないとそのうちアレなのでは。
電池技術に注目。

GSK

グラクソ。
イギリスの製薬会社。
ADR。
高配当銘柄。 いい評判より悪い評判をよく耳にする。
高配当銘柄なので仕方ないとはいえパフォーマンス微妙。

ABBV

ABBV アッヴィ。 製薬会社。 高配当銘柄。 パフォーマンス順調。

NVDA

NVDA エヌビディア。
日経いわく謎の半導体メーカー。
GPU。GPU。GPU。

さいごに

以上が自分のポートフォリオです。
年末までにもう少し投資したいです、AMDとか。

技術的に最近のやったこと/やれてないこと

やったこと

モダンな開発環境の整備

Node + Webpack + Babel + ES6
はじめるのに遅すぎるということはない。
流れはつかめたので新しい○○というツールが出ましたよー乗り遅れるとまずいですよーといったものを余裕をもって見送れるようになったと思う。

以下の記事が個人的にはいちばんぐっときた。 qiita.com

ES6(ES2015)

これは正直TypeScriptの方がよかったかなと言う気がしている。
正直ES6の仕様はまだまだ未完成なところが多くて、スーパーセットを名乗るTypeScript のほうが書きやすそう。
型はどうでもいい。
書き直すタイミングを見計らいたい。

Vue.js

いちばんとっつきやすかったので導入。
自分がいまやりたいのは完全なSPAではなく部分的にSPAぽいねくらいのものなので大仰にならずにすむからちょうどよい。
ただ、個人的にコードはそんなに書けていなくて導入しただけで個人的タスク完了になっている。

Issueを立てるようにした

技術というより仕事の進め方の話。

Issue立てずに一人で悩んで結果できませんでしただとアウトプットが残せないケースが多い(できた場合も同じだ)。
それを避けるために Issueを立てて複数人で共同で作業を行うようにしてコミュニケーションを発生させる。
そうすることで何かしらのアウトプット=知見のようなものが貯まるようになる。

やれてないこと

テスト

個人的に実装しながらテストも書きたい。
TDD is Dead とか言われているけどそもそもTDDやったことないから。 別にテストファーストじゃなくていい。

やばいなと思っていること

サーバーサイドのフレームワークがばらばら

。。。

まだなんとかなるが今後負債になる匂いしかしない。

やりたいこと

テスト

いや、もうあとはコード書くだけなのよ。
ほんとにほんとにあとはやるだけだから。

Lint

それは最初にやるべきことだろというのはごもっともだが民主主義的にやったほうがいいかなと。
さすがにインデントがばらばらなのはとっととなんとかすべきですね。。

ほかにもやりたいこと、やらなきゃいけないことたくさんあるけどうまく整理できていない。
人生があっという間に終わる、この調子だと。

Webフロントエンド ハイパフォーマンス チューニング

フリーランスと筋肉

フリーランスおじさんになっていろいろあって開発することを仕事とするうえでの辛みを感じることが多い時期があった。

辛みの原因の多くは結局自分の体調不良が問題だったんだけど筋肉を意識するようになってかなり改善した。

人生の99.9%の問題は、筋トレで解決できる!というのは正しい。

べつに筋トレをしなくてもいい。

筋肉を意識して体を動かすだけでいい。

ブラック・スワンの著者であるタレブも反脆弱性の中で筋トレをするようになって生活が変わったということを述べていて驚いた(タレブ、お前もか的な意味で)。

もっとも彼の場合は実際に暴漢に襲われるという不安に対処するためだったが、マッチョになったことで暴漢が恐れをなして襲うのをやめたというシナリオはあまり現実味がない(本気ならば拳銃をつかうだろう)気がする。
それよりも筋トレにより男性ホルモンが分泌され、マッチョな自分の肉体を眺めることで心理的な安心感が得られ、それにより暴漢に襲われるという不安が和らいだというメリットが直接的な効果だろう。

なんにせよ、筋肉は大事だ。

我々は肉体から逃れることはできない。

f:id:snowlong:20170318110753j:plain

少なくともわたしの場合は肩こりを業務中に意識しなくなってから格段に仕事の効率が上がった。

今までは一日の中で働けるのは3時間くらいだったが、それが6時間くらいになった印象だ。

夕方になると頭がぼーっとして思考が完全に停止するなんてこともなくなった。

やる気が湧いてきて目標というものがうんざりするものからモチベーションを高めてくれるものへと変化した。

SOFT SKILLSでもソフトウェアエンジニアにとって生き延びるために必要なのでは、筋トレ、瞑想、不動産投資(!)だとあった。

筋トレはわかる。
瞑想もスティーブ・ジョブズとかもそうだしZenとか大好きだもんね、わかる。
だが、なぜ不動産投資なのか。

真の自由を得るためには、自分からも社会からも自由な存在でなければならない。
社会からの自由を得るには経済的自由を手に入れなければならない。
つまりタレブのいうF**k you money を得るための不動産投資なのだろう。
日本と違ってアメリカでは人口は増加傾向にあるため不動産価格は今後も投資対象としてわるくないのだろう。

あとはrebuild.fm に出てくるひげぽんさんも筋トレ素晴らしい論者である。

筋トレの素晴らしい点は、運動音痴でもできる点にある。

いや運動音痴にこそ向いているのかもしれない。

人は楽をしよう、楽をしようと動作を無意識のうちに最適化してしまう。

スポーツする上はもちろんのこと、生きていく上でこれは素晴らしいことなのだが、筋トレに限って言うと逆だ。

筋トレにおいて最適化すると筋肉にかかる負荷が少なくなってしまい効果が薄れてしまう。

筋トレでは最適化はだめなのだ。

最後にこれが筋肉のいちばん素晴らしい点なのだが、比較的リニアにやればやった分の成果がでるという点にある。

おとなになってからやればやったぶんの成果が得られるという機会は減った気がする。

こどものころはちょっと頑張ればテストで100点は取れたし、50メートルのタイムは縮んだし、あと身長も勝手に伸びていった。

今日のデスクワークでやればやったぶんだけ目に見えて成果がでるということはほとんどなくて非線形な曲線を描くことがほとんどだ。

だけども、人間は線形なものを愛する。
そのためタスクを細分化して達成感を得られやすくすることでモチベーションの低下を防いだりする。

フィードバックが即座にあって線形にスキルが伸びていくもの。
たとえば、ソシャゲとか。

ただ、自分の人生において他人が金儲けのためにつくった暇つぶしに没頭するというオプションを行使したくはない(しないというわけではない)。

筋トレは(正しいやり方で)やればやったぶんだけの成果がでる。

30を過ぎた人間に成長などない。
あるのは老化だけだ。
ただし、筋肉は増加する。
わかりやすく目に見える形で。

フリーランスおじさんなので自分のことは自分でやらないといけない。
会社員でも自分のことは自分でやれよって感じだけどなんだか世の中会社員は安定してて守れらててぬくぬくとした立場で、一方フリーランスは一寸先は闇の不安定な職種として捉えられている気がする。
まあそれはいいんだけど、自分という肉体が(唯一の)資本であるのだから健康であることというのはとてもとても大事だ。

どうも自分は自由であるということにこだわりすぎる傾向がある。
人間は自由でなければならないという現代の思想(最近はちょっと下火だ)に感化されているのかもともとそういう傾向があるのかわからないけど。

みんなSNSで自分のことをアップしたり、同性愛者も結婚が認められるようになって喜んでたりやっぱり社会からある程度縛られたい、みんなから認められたいという欲求があるのだろう。

個人的には組織の中で個人だったら絶対やらないようなことをやる羽目に陥ったりする(人間をガス室送りにするなど)のが嫌でそういうのとはできるだけ距離を置きたいと思っている。

でもそういう人は当然だけど社会の中ではうまく生きられない。
ただ、個人として組織と対峙できるいまのフリーランスという職種はあっているのかもしれない。

己こそ己の寄るべ 己を置きて誰に寄るべぞ

人生の99.9%の問題は、筋トレで解決できる!

人生の99.9%の問題は、筋トレで解決できる!

SOFT SKILLS ソフトウェア開発者の人生マニュアル

SOFT SKILLS ソフトウェア開発者の人生マニュアル

反脆弱性[上]――不確実な世界を生き延びる唯一の考え方

反脆弱性[上]――不確実な世界を生き延びる唯一の考え方

Ansibleについて

  • Ansibleという名前について
    • アンシブル(Ansible)とはアーシュラ・K・ル=グウィンのSFシリーズ、ハイニッシュ・ユニバースに登場する超光速通信技術。1966年出版の『ロカノンの世界』で初出。語源は、ル・グィン自身によればAnswerableのもじりであるというが、実際はLesbianのアナグラムではないかと推測されている(当時は同性愛に無政府主義的な響きがあった)。
    • Ansibleの作者 Michael DeHaanは『エンダーのゲーム』に登場するAnsible から命名した。
      • エンダーのゲーム』では遠く離れた場所にいる大量の宇宙船を一度に遠隔操作する目的使われている。
ansible
│
├ environments
│
│
├ roles
│
├ ansible.cfg ... ansibleを実行する際のオプションを指定しておく
│
├ app-deploy.yml
│
├ site.yml
│
├ webservers-provision.yml

Windows上のvagrantにMySQLやらPostgreSQLのクライアントにA5SQLを使う

MacのクライアントはSequel Pro があるからphpMyAdmin入れる必要がないんですね。
そうなってくるとWindowsで開発するときにクライアントがなくて困るんですね。 MySQL Workbench? うーん、ユーザー登録がめんどくさい。。。

そんなかたにA5SQLがおすすめ。

http://a5m2.mmatsubara.com/

ホームページみたらデザインがわりと90年代なデザインで不安を感じていたのですがインストールしてみるといい感じでした。 f:id:snowlong:20170710155335p:plain

接続手順

データベースの追加と削除から以下のように設定する。

f:id:snowlong:20170710160048p:plain

.vagrantフォルダにprivate_key があるのでそれを指定する。

f:id:snowlong:20170710160053p:plain

以上。

ティルトった作業者問題

事故が起きたあとで作業ログを見返すとなぜここでこんな作業をしたのか、もしくはしていないのか首をかしげることがよくある。

あきらかに作業者が正常な判断能力を失っているとしか思えない行動がそこにはあるのだ。

ティルトという用語がある。 https://mobile.twitter.com/ebihuryahurya/status/566957889105838080

一番広い意味でティルトとは、「プレイヤーが合理的な判断ができなくなり、感情にかられた行動をとるようになってしまった状態」、のことを指します。例えば、プレイヤーが大きな損失を出してそれをできるだけ早く埋め直すために、アグレッシブな賭けをしたり、弱いハンドでビッグ ポットを勝ち取ろうとすることは、彼がティルトになっていることを意味します。

https://ja.pokerstrategy.com/glossary/_101/

高ストレス状態におかれた人間はそこから逃げ出そうとする。 これは生物としては生き延びるために当然の行動だ。

ポーカーに置いての逃避はそのゲームを終わらせることである。 ゲームを終わらせるには自分が負ければいい。 そのためプレーヤー非合理的な行動をとって、つまりゲームを終わらせるのに最適な行動をとってしまう。

LoLでも同じだ。 高ストレス下におかれたプレーヤーはその状況から逃れるために、1人で敵の集団に突っ込むといった非合理的な行動をとる。 たとえ観衆からは不可解な行動だったとしても、それがプレーヤーにとってはもっとも賢明な判断なのだ。

作業下に置かれている作業者にとって、そこから逃げ出すには作業を終わらせたことにすればいい。 そのため必要なチェックを怠れば作業は早く終わる! なにいつもチェックして問題ないんだから今回くらいやらなくても大丈夫だろう! はやく帰って積みゲーを消化するんだ!

そして事故は起きる。

そして対策会議が開かれる。 再発防止策という作業者の業務効率と自由を奪うクソみたいなルールができる。
エンジニアのモチベーションは下がり機械の奴隷としての業務だけが残る。

なぜか作業者の負担を減らすという方向に向くことは少ない。

なぜだろう。みんな目の前のことしか考えない。 何かが失敗している。