y.y

yoshihirのプログラマ日記=≡Σ((( つ•̀ω•́)つ

技術書典6に行ってきました

2019/04/14 (日) に池袋サンシャインシティで行われた技術書典6に行ってきました。 techbookfest.org

前回は12:45に入場規制が解除されたので、13:00くらいに行こうかな?と思ったのですが、今回から11:00〜13:00までは入場料1000円がかかるようになり、並ばずに入れるのかわからない状態に...
そこで今回は13:25ぐらいに着くようにしたのですが、10分ほど並んだら入場できました。 さすがに物理本がもうないブースもありましたが、ある程度は買うことができましたので、次回参加するなら、このあたりの時間をおすすめします。 以下、戦利品です

f:id:yoshiyoshi7:20190419093537j:plain
技術書典6

Go + Docker + CircleCI + GKE + Spinnaker でアプリケーションのデプロイフロー(https://techbookfest.org/event/tbf06/circle/35970001)

パケットキャプチャ解析基盤構築(https://techbookfest.org/event/tbf06/circle/52340002)

雰囲気でOAuth2.0を使っているエンジニアがOAuth2.0を整理して理解できる本(https://techbookfest.org/event/tbf06/circle/40430007)

受託開発会社のための初めての自社プロダクト開発(https://techbookfest.org/event/tbf06/circle/38390001)

継続的にアウトプットする技術――エンジニアのための「続けられる」科学(https://techbookfest.org/event/tbf06/circle/71480001)

Pragmatic Terraform on AWS(https://techbookfest.org/event/tbf06/circle/71480001)

稼げるエンジニアになるためのインターネット広告入門(https://techbookfest.org/event/tbf06/circle/65490006)
これからの「広告」の話をしよう(https://techbookfest.org/event/tbf06/circle/65490006)

コードで理解するWebフレームワークの脆弱性 Playframework編(https://techbookfest.org/event/tbf06/circle/36030002)

【青】におうコードの問題集 〜バリエーションに立ち向かう編〜(https://techbookfest.org/event/tbf06/circle/40050004)
【緑】におうコードの問題集 〜セキュリティホールに立ち向かう編〜(https://techbookfest.org/event/tbf06/circle/40050004)
【赤】におうコードの問題集 〜ソフトウェア設計に立ち向かう編〜(https://techbookfest.org/event/tbf06/circle/40050004)

『りあクト! TypeScriptで始めるつらくないReact開発 第2版』(https://techbookfest.org/event/tbf06/circle/58150002)
『りあクト! TypeScriptで極める現場のReact開発』(https://techbookfest.org/event/tbf06/circle/58150002)

読み終わったらそれぞれの感想を書きたいと思います。

実践Scala入門を読んだ感想

実践Scala入門

実践Scala入門

遅ればせながら、実践Scala入門を読み終わりました。
私は仕事でもScalaを書いていますので(といっても半年のペーペーです...),それをふまえたうえで、章ごとの感想とまとめを書きたいと思います。
先に結論だけ申し上げますと『良著』です。

第1章Scalaひとめぐり

Scalaとは何かの説明やREPLなど。

第2章 Scalaの基礎

型, クラス, メソッド, 制御構文などそもそも知らないとScalaを書けないものが纏まっていました。
人に説明するときに使えると思えるぐらい、うまく説明されていました。

第3章 Option/Either/Tryによるエラー処理

3章と4章が一番感動しました。 3章ではOption/Either/Tryを比較しやすいように同じ構文で説明されていて、すっと頭に入ってくる感じです。

第4章 コレクション

4章ではコレクションの説明がされていて、実際にScala書くときはココに一番苦労していたので、
綺麗に纏まっていて忘れてしまったら何度も読み返したいと思いました。

第5章 並行プログラミング

並行プログラミングとしてFutureの説明がされていました。最初に並行プログラミングの説明がありますので、初心者でも安心です。

第6章 Scalaプロジェクトのビルド

独学で覚えていたsbtの説明があり、初学者にパッケージ構成を説明するのに、大変良いと思います。

第7章 ユニットテスト

ネットにはあまりない、実践的なtestの書き方を説明されています。ココだけでも買った価値がありました。

第8章 知っておきたい応用的な構文

8割方、productionコードで見たやつで、ココもネットにはあまりない...以下略

第9章 よりよいコーディングを目指して

Effective Scala的な...そこまで行かないが、production環境では確実に求められることが書かれています。

終わりに

ということで、Scalaエンジニアだったら手元に1冊置いておきたい、そんな本だと思いました。

エンジニアの勉強法について

今回はエンジニアの学習方法について書きたいと思います。
私は今まで、ずっと適当に技術の学習をしていたのですが、転職後仕事で扱う言語やツールが80を超えキャパオーバーしました...
そこで、何か効率的に学習しながら仕事を全うできる方法はないか調べたところ、「10steps process」というものを見つけました。
せっかく見つけたので、社内で講演しました。その資料を今日は公開したいと思います。

docs.google.com

皆さんにも良きエンジニアライフを!!

新しい技術を学ぶために必ずやること(React編)

もうすぐゴールデンウィークですね。
まとまった時間が出来るので、新しい技術で何か作ろうと思っています。

今回学習するのはReactに決めました。

休みに入る前に何を使うか決めておかないと決めるだけで休みが終わりそうなので、
今のうちに概念理解&環境構築をやっておこうと思いました。
Reactについて調べて聞くと、React単体ですべてが出来るわけではなく、
Redux,react-router,material-ui,axios,ES2015,Babel,webpack,ESLint…etc
これらをinstallしてコンパイルするとあったので、実際にやってみたのですが、なかなかうまくいきませんでした。
何かないかとsampleを探しに公式サイトを見に行ったら、「create-react-app」なるものが…
installしてみると、package.jsonに今までにないreact-scriptsが…
何?とググってみるとBabel,webpack,ESLint,severとかよろしくやってくれる…

うわああああああああああ

ReactのサイトなのだからReactしかinstallしてくれないと思いこんでいました。
これにRedux,react-router,material-uiを入れればなんとかなりそう。

結論

何か新しいものを学ぶためには最初に公式サイトを見ましょう。絶対!!

ハイブリッドアプリ(Ionic)の開発を終えて…これから開発を考えている人へ

会社でWebサービスの開発をしていたのですが、人に説明するときにアプリ版が欲しいと言われ、
お試し版として、3週間で選定から開発、リリースまで1人で行いました。

ネイティブアプリとハイブリットアプリで迷ったのですが、 開発期間がなかったのと、お試し版と言われたので、 iOS/Android両方のアプリを同時に作れると巷で言われているハイブリットアプリ(Ionic)で開発をしました。
今回は今後開発を検討している方に向けて、自身が苦労した点を挙げていきたいと思います。

学習コスト

見た目部分はマニュアルを見ながらコードを書けばそれっぽく出来るのですが、 IonicはControllerにAngularを使っているため、がっつりAngularの学習コストがかかりました。
他のハイブリットアプリのフレームワークにも言えることなので、 すでにWebサービスで使った経験があるJSフレームワークを使っているハイブリットアプリのフレームワークを選びましょう。

見た目と動きについて

Web系の人にはBootstrapといえばわかりやすいでしょうか…最初からある程度形が決まっているんですよ、 だから「ここの見た目を変えて」、「こういう動きにしてー」と言われるとかなり厳しいものがあります。 幸い、Ionicはコミュニティが大きく情報量が多かったため、なんとか対応出来ました(全部英語でしたが)。 それでも足りない部分があり、Autocompleteを独自実装したのですが、かなり大変でした。

iOS/Androidの違いについて

私はAndroid版を一通り完成させてから、iOS版の開発を行ったのですが、 見た目が思った通りになっていない箇所が何箇所かありました。 なので全く一緒にはなりません…といっても本当に数カ所なので気にならないレベルですが。

テストについて

iOS/Androidで微妙に違う箇所があるため、結局テストは両端末でやらなければなりません。

どういうものが向いているのか

とてもシンプルな見た目でデフォルトから変更予定がないもの、独自色を出さないものなら良いと思います。
特に見た目についてこだわりがある発注者には、作り始める前に見た目と動きが固定なことを必ず伝えましょう。
と言っても、どんなものができるか伝えるのが大変だと思いますので探しました。
いま出ているアプリだとGameWithの「モンスト 全国マルチ掲示板 & 攻略」は、ハイブリットアプリっぽいです。
なので発注者には、こんな感じの見た目と動きになることを伝えると幸せになれると思います。

感想

私は事前に発注者に無理が出来ないことを伝えていなかったため、地獄を見ました。
相当応用が簡単にならない限り、ハイブリットアプリを作ることはもうなさそうです。
次からは必ずネイティブで作るよう説得していきたいと思います。

GCP(GAE)+WordPressで1ヶ月でいくら位かかるのか実際に運用して確かめてみた

今のレンタルサーバーって大体1ヶ月1000円くらいかかりますよね。
なので、GCP(GAE)+WordPressで1ヶ月でいくら位かかるのかを知るために前回、

yoshiyoshi7.hatenablog.com

で実際に環境構築をしました。
そこ今回、実際に運用してみて、いくらかかったのか公開します。

f:id:yoshiyoshi7:20170307204334p:plain

合計で¥1,617でした。

内訳

かかっている料金は全部Google Cloud SQL…つまりdatabaseです。
最近、Google Cloud SQLって第2世代になったのですが、第1世代と違って第2世代って常時接続なんですよ。 そのせいで、結構料金が上がっています。
他のサービスと比べてのメリットを挙げると、Googleのサーバーでキャッシュを作ってくれるので、アクセスが爆速になるぐらいかな…。

これ以上安くするには

他の方法としては、WordPressサイトを静的HTMLに変換するプラグイン(WP Static HTML Outputとか)で吸い出して、
Google Cloud Storageに上げれば200円ぐらいには出来ると思われる。

なんでやらないかと言うと、自分が文章を書く能力なさすぎて、そもそもサイトが維持できないので断念した\(^o^)/

GCP(GAE)+WordPressでサイト構築してみた

今までクラウドを触ったことがなかったので、ちょっとやってみようかとGCP(GAE)+WordPressでサイト構築してみた話です。
全部書くとものすごく長くなってしまうため、要点を掻い摘んで説明します。

GAEにWordPressを構築

こちらを参考に構築しました。
ちょっと情報が古いので変えた点は

です。

Cloud-SQL v2にしたことで、ユーザーがGUIから作成できなくなったため、
Google Cloud Shellを使い、SQLでユーザー作成を行いました。

独自ドメイン

お名前.comでドメインを買いました。
GAEでの独自ドメインの設定はこちらを参考に構築しました。

SSL証明書

SSL証明書こちらを参考にしました。
Unix環境がなかったため、Google Cloud Shellを使い、証明書を作成しました。

最後に

以上で、サイト構築、独自ドメインhttps化まで出来ると思います。
次回に実際運用していくらぐらいかかるのか紹介したいと思います。