漫画、作曲、ラップ、プログラミングをやっています。I am Keita Roimo: Manga Artist, Musician, Rapper, Software Engineer.
Thursday, June 27, 2019
Sunday, June 23, 2019
Thursday, June 20, 2019
Wednesday, June 19, 2019
Tuesday, June 18, 2019
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ページとか使用ライブラリ読み飛ばすクラスタかいなか、みたいな)
ちょっとだけ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
Thursday, June 6, 2019
Logic Pro X の意外と助かるショートカット
スコアの鉛筆をだすショートカット
option + K でショートカット設定できるので、
ここでSet Pencil Tool のところに任意のショートカットを設定してあげるだけ
捗る
横、縦幅調整
Command ボタンと矢印
option + K でショートカット設定できるので、
ここでSet Pencil Tool のところに任意のショートカットを設定してあげるだけ
捗る
横、縦幅調整
Command ボタンと矢印
Wednesday, June 5, 2019
Tuesday, June 4, 2019
Monday, June 3, 2019
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. 決めつけない。何事も決めつけてしまうと問題を解決するのに時間がかかるか、まったく解決できない。
以上、ちょっと脱線したけど開発者としての心がけ
当たり前のように聞こえるが、この当たり前を当たり前のようにやることが大きな違いになる
若いうちに必要な心がけをしていれば、必ず将来困らない
公開は控えるけど、ひょんなことからウェブサイト作ってという話になり、じゃあ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. 決めつけない。何事も決めつけてしまうと問題を解決するのに時間がかかるか、まったく解決できない。
以上、ちょっと脱線したけど開発者としての心がけ
当たり前のように聞こえるが、この当たり前を当たり前のようにやることが大きな違いになる
若いうちに必要な心がけをしていれば、必ず将来困らない
Saturday, June 1, 2019
Subscribe to:
Posts (Atom)