プログラマと発達障害
最近の事
最近日記がかけていなかった・なんていうか子育ては大変だ?
下の子寝ない問題
下の子は今生後6か月
一応夜から朝にかけて寝るサイクルは決まってるんだけど、寝に入る時間が遅い
22:00からチョイ寝をして、0:00時ころにミルクでなく。
これは、21時にあげてようが20時にあげて間隔があいていようが関係なく、
絶対0:00付近でミルクを欲しがるので、前倒しはできない。
上の子はお母さんが添い寝しないとまだ寝れないので、俺が一人でめんどう見る必要がある。
勉強時間が取れないのが最近の悩み(かれこれ一年くらいだけど・・・)
java基礎を勉強中
会社のプロジェクトでjavaが一本あるので、javaを勉強中
やっぱりこういうのは基礎からやった方がすごく良い
StringとStringBufferの違いとか、local変数のスコープとかそういう基礎ができてるのが重要だと思う。
ただ、Playでscalaをちょっと使ったこともあって冗長な表現がかなりキツい
HashMap<String,String> map = new HashMap<String,String>();
みたいの書いてると、もうバカなんじゃないかと思えてくる。
でもデザインパターンとかもjava覚えれば理解が早いと思うので頑張る。
javascriptも勉強中
昔はカオス感が好きじゃなかったけど、やっぱり基礎を学ぶとすごく良いものに思えてくる。
特に、javaのMapみたいなクソみたいな冗長性がないのでむしろ好きになってきた。
大腸カメラ
なんだありゃ
あんなもん人類は発明してしまったのか。バカじゃないのか
神の領域に片足突っ込んでる感がハンパなかった。けつからカメラ入ってくる状況に耐えられなくて最初笑っちゃってたけど後半は痛すぎて見かねた看護師さんに鎮痛剤、鎮静剤を打たれてそこからは気絶
まさにいま終わって帰ってきたけど何にもする気が起きないし眠気がすごい。
今日は閉店休業です。
人はそこまで馬鹿じゃない
PlayFrameworkをherokuにデプロイするときにハマったところ(2015/10/24)
さて、Playで作成したアプリをherokuにデプロイしたのですがだいぶハマりました。
解決する際にやったことを書いていきます。(2015/10/24現在の内容です。)
書いてる事は初心者向けだと思います。自分が初心者なので…
最初に
herokuのエラーがでたら、herokutoolbeltからlogsを確認しましょう。
そのほか、パスが間違ってるときはLinuxコマンドでディレクトリを確認しましょう
<問題解決に使ったコマンド>
heroku logs
→ログを確認する【超重要】heroku config
→heroku上の環境変数を確認できるheroku open
→アプリのページを開くheroku run {xxx}
→{}にLinuxコマンドをかいて動かせる
(例)heroku run "ls -l target/universal/stage/bin/"
Procfileの編集
まず、僕は以下のテキストで勉強を進めています。
www.amazon.co.jp
これが初心者にもめちゃくちゃわかりやすく、とっても読みやすい
演習も正直に従っていけば素直なPlayアプリが作れるようになると思います。
で、これなんですがherokuへのデプロイ方法が少し古いため、実際はherokuのドキュメントを見ながらProcFileを直す必要があります。
ProcFileはPlayのバージョンごとに3パターンの書き方があるので、公式ドキュメントを見ながら合わせて書きましょう。
ProcFileの書き方:
https://devcenter.heroku.com/articles/play-support
自分がデプロイしようとしてるplayのバージョンがわからなくなった人は(いないと思うけど) projectのplugins.sbtにあるので見てみましょう (play自身がsbtのライブラリであるため、plugins.sbtの中に定義がある)
Playの構成:
https://www.playframework.com/documentation/ja/2.3.x/Anatomy
ProcFileの編集は慎重に
heroku logsで確認したときに、環境変数が置換されずに設定ファイルそのままの文字列でてたら、スペルミスの可能性が高いです。
Bad application path: -Xmx384m
ProcFileからJAVA_OPTの一文を消しましょう。
これが書かれていると「Bad application path: -Xmx384m」とでてエラーになります。
(コンパイラが二つ選ばれちゃう?よくわかんない)
scala版とJava版は自動で判断してくれるので公式ドキュメントにしたがって勇気をもって消しましょう。
で、最終的にできたProcFileの中身がこれ
web: target/universal/stage/bin/xxxx-1234 -Dhttp.port=$PORT -DapplyEvolutions.default=true -Ddb.default.driver=org.postgresql.Driver -Ddb.default.url=$DATABASE_URL
target/universal/stage/bin/xxxx-1234: No such file or directory
めちゃくちゃはまりました。
herokuのアプリ名{xxxx-1234}に合わせても、全然うまくいかない
StackOverFlowとかでもたくさん引っかかります。
で、これが何かというと、playをpushしたタイミングでビルドが走り、
そのときにtarget/universal/stage/bin/xxxx-1234というディレクトリ構成でフォルダ生成するんですが、
そのディレクトリ名は「build.sbt」にあるNameをもとに作ります。
なので、Nameを修正します。
・build.sbt
name := "SampleApps"
→name := "xxxx-1234"
PostGreSQL使用時のUserテーブル
PostGreSQLを使用する場合、Userがテーブル名にあるとPostGreSQLでは予約語になっているため、エラーとなる User→Accountにリネームしよう(Eclipseのリファクタリングで) hakobera.hatenablog.com
あとがき
自分は、herokuもplayもわかんないって状態でチャレンジしたので本当にハマりました。
いやーでもデプロイできて感動でいっぱいだー
最高の気分だーーー!!
しかし…
子供達が完全に寝てからちょこちょこ調べながらデプロイ作業を行っていたけど辛すぎる!!
一歩進んで二歩下がる的な感覚に陥ってフラストレーションがたまる!
やっぱりこういうのって時間とってやるのがいいのねー…
子育ての合間に
夏休みからずっと出ずっぱりで疲れた
娘1は高熱を出し、娘2は新生児のためタイマ割り込みで泣き叫ぶ
二人をいなしつつ勉強時間を確保するのは至難の業だ
最近では電車の中の時間は設計に回し、家に着いたらコードを打ち込む日々
やっぱり自宅で勉強用に開発するとはいえ、なんだかんだでその都度考えながら打ち込むとうまくいかない
僕の場合、経験不足なので最短距離でコードが書けない
なので設計の結果をそのままアウトプットすることにしてみた
するとどうだろう、嘘のようにはかどる
画面、DB構成も考え済みなのであとは打ち込むだけ
設計って当たり前のことなんだけど自宅開発だとどうもすっ飛ばす事が多く、よくないねというお話です。
安保法案から見るコストの押し付け
テレビを見ていて、安保法案に関する市民のコメントを見て唖然とした。
「理解できてないけど、~だと思う」、「説明が足りない」、「民意が反映されてない」
どのコメントにも思うところはあるけど、特に気になるのが「説明が足りない」
理解する気がないならないなりに黙ってればいいものを、なんで相手のせいにするんだろうか。
今はネットもあってちょっと調べれば情報が腐るほど出てくるのになんで説明する方が悪いみたいな言いぐさなんだ。
コストの押し付けじゃないのか。
昔っから思っているけど、日本でムカつくのはたいていコストの押し付けだ。
コストを本来支払うべき人が支払わず、第三者に押し付ける。
コストの押し付けがどういう事かというと大体こんな感じ
→本来会社が払うべき賃金を労働者に押し付ける
- ベルマーク
→労働コストを保護者達に押し付ける(切り取り、集計)
- 年金
→将来もらえない若者に老人を支えるコストを強制する
- メーカーが作るクソみたいなマニュアル
→稚拙な文章説明能力を誤魔化して、説明責任を果たさずに読み手に押し付ける
こういったコストの押し付けに、日本人の悪いところが凝縮されている。
特に、サービス残業はひどい。
よく、労働時間あたりのGDPを比較すると、ドイツは日本の1.5倍の生産性だとかそういう話があるけど、実際は1.5倍どころじゃないと思う。
日本人はすぐにサービス残業してしまうので、日本の実際の労働時間はさらに2倍くらいにした方が良いだろう。
とすると、ドイツは実際には日本の3倍くらいの生産性になるんじゃないだろうか。
話がそれました。
では、安保法案について説明が足りないという人は、どういう説明なら納得するのだろうか
おそらく、池上さんあたりが解説してくれないとだめだろう。
お茶の間でテレビをボケーっと眺めながら、オレオでも食べながら池上さんが教えてくれないと理解できない。
こんな人たちに忙しい国会議員さんが付き合う必要はあるのかはなはだ疑問です。
そしてもう一つ、「民意が反映されていない」という人は選挙そのものを否定しているわけだが、どういう形なら納得するのだろう。
全員の民意を反映するとしたら、法案を決めるごとに毎回国民全員で一か所にあつまって、○×クイズよろしく全員で多数決
そんなのが理想なんでしょうか。
まとめ
まとめると日本人は
「テレビで池上さんが教えてくれた後に、全員で一か所にあつまって○×ゲームで多数決しないと納得できない。
そういうシチュエーションを用意してくれない国・社会・自分以外の全てが悪い。」
これが言いたいんじゃないだろうか。
そう、自分以外の全てが悪いのだ。
理解する頭を持たず、話すだけの素養がなく、最後は相手のせいにして第三者にコストを押し付ける。
なんとも素晴らしい考え方ですな。
フレームワーク
うちの嫁は、技術者ではない。