Monday, June 17, 2019

今日の落書き





Dockerでコンテナ同士の接続ができない問題

Dockerで二つのインスタンス同士を接続させようとしたのだがなかなかできず....

ちょっとだけgdった。

コンテナ内で

$ curl [よそのコンテナのip]:[開けてるはずのポート]

みたいにやってもまったくつながらない.... うんこうんこうんこ

しかし、ホストOSからだと同じcurlがつながる....

うーん..... これってブリッジの問題むみょ?とおもったので公式ドキュメントをよむことに

https://docs.docker.com/network/bridge/

1. ネットワークをつくる

docker network create moomin

 2.繋げたいそれぞれのコンテナに対して、以下のようにして紐付けをつくる

docker create --name [適当に名前] --network moomin --publish 8080:80 [ネットワークを適用したいコンテナイメージ]:latest

3. 最後に、実行してあげれば、つながる


まあ詳細はドキュメントみろksということで....

いや、本当に公式ドキュメント丁寧に読むのって大事だわ....


と痛感した....

あと反省点として、Docker同士はポートだけ解放しておけばデフォルトでつながるだろう、という勝手な思い込みがあった。(Ubuntuでは問題なかった)


(多分 デベロッパーの実力を測る指針として、公式ドキュメントをいかに丁寧に読み込むか、は結構大きい。manページとか使用ライブラリ読み飛ばすクラスタかいなか、みたいな)

Sunday, June 16, 2019

歌を乗っけたンゴ

Thursday, June 13, 2019

ワイ、Aメロ→Bメロ→サビの作曲方法を覚えたンゴ


後ほど、ワイのスイートヴォイスをかぶせるンゴねえ.... (遠い目)

Thursday, June 6, 2019

きょうのぶん



Logic Pro X の意外と助かるショートカット

スコアの鉛筆をだすショートカット

option + K でショートカット設定できるので、


ここでSet Pencil Tool のところに任意のショートカットを設定してあげるだけ

捗る

横、縦幅調整

Command ボタンと矢印

Sunday, June 2, 2019

npmでgdらないための心がけ

React x Gatsby でウェブサイトを作った

公開は控えるけど、ひょんなことからウェブサイト作ってという話になり、じゃあLAMPとかRailsとか今までのコンフォートゾーンじゃないやつがいいよね、ということで、React.jsを使ってみた。

AWSの EC2で Ubuntuサーバを使った(18.x)。


以下、主にnpmあたりでグダる(Macで動いたのにリナックスでエラーになる、とか)ときに問題を解決できる心がけ

- node / npm  のバージョンチェック(だいたいバージョンが違うことがトラブルの根本なこと多い)
- 権限周りで落ちる (おもに /usr/lib/node_modules あたりとかの権限が rootじゃないと届かないので、 chownで変えてやる) 
- npm -g でグローバルにしないといけないところは -gで。

この3点さえ押さえていればそこまではまることなく問題を解決できる
古いバージョンでやるメリットはないので基本新しいやつで。

あとsurgeはめっちゃ便利


もう一歩、開発で無駄な苦しみをせずにどんな問題でもだいたい解決できるための心がけ


1.  必ず公式ドキュメントに当たる
2. 読み飛ばさない
3. 問題は狭いスコープに限定しながら明らかにしていく 
4. スタックトレースを丁寧にみる
5. サードパーティのライブラリのソースもきちんと読む
6. 決めつけない


1.  ネットの断片的な情報を当たる、というのを初心者はやりがちだけど、これは迂回になることが多い。どのようなものも、まず公式ドキュメントを調べること。Unix(-like)ならmanページとか必ずきちんと読む。基礎的なようで、結構これができているかいないかが大きな違いになる。

2. 読み飛ばさない。ドキュメントや記事をみるさいにインデックスから必要なものを特定し、それ以外を捨象することは必要だが、それでも読むべき必要な箇所を読み飛ばさない。2、3行読んですぐに読み飛ばさない。理解できなければ理解できるまで読み返す。
これができないと仕事はできない(これは還暦超えてもできない人がいる)

3. 問題を狭いスコープに限定しながら解いていく。デバッグとか、なにか問題を解決する際に複合的なものを全部載っけた状態で問題を解決しようとするのは初心者によくあること。必要な箇所以外全部コメントアウトして、一つずつ解除しながら問題を解く。それ以上に、ステートフルな構文を書かない。コードは抽象度高く綺麗に。オブジェクト指向もさることながら、代数みたいにかけるならそうやってかくのもありで、とにかく負債を作らないように心がける。

4. スタックトレースを丁寧に読む。スタックトレースを飛ばすというのはありえない。問題にぶつかったら、必ずスタックトレースを読む。

5. サードパーティのライブラリもきちんとよむ。gethを使っていたら gethのコードは公開しているから読む。grepとかで必要なものをしらべる。ctagsもある。これは、現アマゾンで働いている元Omiseのデベロッパーから学んだ心がけなので、信ぴょう性は高い

6. 決めつけない。何事も決めつけてしまうと問題を解決するのに時間がかかるか、まったく解決できない。



以上、ちょっと脱線したけど開発者としての心がけ
当たり前のように聞こえるが、この当たり前を当たり前のようにやることが大きな違いになる

若いうちに必要な心がけをしていれば、必ず将来困らない

最近描いた落書き