はぜにっき

日記です。(毎日更新ではない)

「プロを目指す人のためのRuby入門」読んだ

はぜです. 「プロを目指す人のためのRuby入門」という本を読んだ.

 Rails, 「めっちゃ高速にWebサービスを作りまくれる未知のWebフレームワーク」という認識しかなかったものの, 興味は結構あった.
ここ数年, Twitterとかで超高速で作りまくる人たちは大体GAEかRailsな気がする(観測範囲は狭い)

元々RubyとかRailsには興味はあって, 俺も高速にバンバン作れるようになってハッカソンで一山当てたいという気持ちも湧いてきたのでやるか〜〜〜〜となりました.
いやまあ最近Node.jsとかは触ってるけど結局俺何ができるんだろうという感じになって, ちゃんとWeb技術を勉強する上で抑えておかないとなあ という思いが強い. それ以上に意味は特にないです.

 Rubyそのものは去年にたのしいRubyの第4版を読んで, 仕事でChefを触り始めたこともあって雰囲気ではあるけど触ってはいました.
で, Railsを触るとかそれ以前に「ちゃんと言語のことは最低限理解してからフレームワーク触ろう」ということもあって, ひとまず題名の本を買ったという流れです.

その辺やるのと一緒にフロントエンドも多少は触れるようになりたいね という気持ちもあります.

hazediary.hateblo.jp

 

買う本はAmazonでレビュー読んだり本の概要とかを読んで決めた.
最高にわかりやすい+他の入門書には書いてなさそうな感じの説明が多くて良かった.

本がでかい+内容が詰まってる+実際に写経したりとか丁寧めにやってた こともあって想定以上に時間掛かった. 大体1週間半ぐらい?そんなもんか


個人的に面白いなーって思ったところとか, 知らなかったところを適当にメモしておく.

return あんまり使わない

  • まだ慣れない
  • 理屈はわかる

暗黙的な型変換が無い

  • 型推論ではあるけど, 変換はない
  • 1 + '10' が死ぬ
  • めっちゃ良いと思う

引数のデフォルト設定

  • def method(str = 'default', nums = 0 ) みたいな感じ
  • 引数を指定せずに呼び出したらデフォルトの設定が適用される
  • 便利っぽい

メソッド名の ! とか ? とか

  • ? == 他言語でいう is***
  • ! ... 注意事項有
  • わかりやすくて良い

インクリメントとデクリメントが無い

  • なんで?
  • まあメソッドの機能でカウンタみたいなの付いてくること多いし使い道少なさそうだし別に問題ない気がするな

Minitest

  • 便利
  • この本のTDDの導入説明めっちゃ良いと思う
  • テスト駆動開発も読もうと思った

配列周り

  • メソッド多すぎ
  • * ポインタみたいなやつ結構わかりやすいと思うのはCやってたからだろうか
  • 可変長引数作るの便利 def method(a, b, *c)

ループ周り

  • メソッド多すぎ
  • 使って覚えていく感ある
  • さらーっとメソッド一覧みたいなのを一回読んでおいて, 都度調べ直すみたいな感じで最初は良さそう. 暗記するようなものでもないし

inject

  • 畳み込み演算のやつ
  • 競プロで似たようなのを見た気がするけどこういうの慣れるまで時間かかりそう(苦手)

Range

  • 1..3 : 1~3
  • 1...3 : 1~2
  • これ絶対いつか間違える

SymbolとStringの使い分け

  • シンボルは内部的には整数値で管理されてるらしい. 大体納得した
  • =同一の値のシンボルは同一オブジェクト
  • 破壊的な変更ができない

#### キーワード引数

  • def method( str, isNum: false, keyword1: 'keyword' } ...
  • 良さそう

正規表現

  • 半分ぐらいperlと同じ
  • & 使った表記は大体書き換えができるようになっていて最高. 黒魔術みたいなのは書きたくないし見たくないんや

Object-Oriented周り

  • attr_**** 便利
  • className.methodNamemethodName が何を表しているかを瞬時にまだ把握できないのでやっていくしかない
  • 自動で色々メソッドが定義してくれるのは有難いんだけど大規模になればなるほど混乱しそう
  • 慣れ

  • protected 公開レベル大事

freeze

  • const とか final とかの代わりみたいな
  • 最初から固定じゃなくて, ある段階の処理をしたら固定させられるのは便利

クラス変数

  • @@name みたいに定義
  • クラスメソッド/インスタンスメソッド/スーパ.サブクラスで共有される変数
  • config値で使う. 便利

undef

  • メソッドを消せる
  • いつ使うんこれ

module

  • extend めっちゃ便利

::.

  • ドットは右辺がメソッドのみ
  • ::名前空間区切ったり定数の時に使うのが一般的
  • 慣れたら良さそう

例外処理

  • retry と 修飾子の rescue 便利だなーって思った

yield / Proc

  • つよい
  • 無名関数を定義したり投げ合うみたいな感覚で覚えてしまったけど多分大丈夫
  • ブロックの認識をまだちゃんとし切れてない気がする. 慣れたい

&:

  • 右辺のシンボルに対して to_proc メソッドを呼び出してProcオブジェクトにして左辺に返す
  • 左辺のメソッドがそれを受け取って内部で .call とか使って処理する

  • なにこの...なにこれ...

tap

  • メソッドチェーンの途中に入れて値を出力させたりできる
  • 便利

半分ぐらい便利としか言ってない.
全部を正しく理解できた気がしないので, 来月あたりにまたさらっと読み直してみようかなあと思った.
分かりやすいし内部のことも意識させるような書き方をしていて良かった. 自分もこういう説明できるようになりたいし中のコード読んだりしていきたい


次はこの本をやります

Ruby on Rails 5アプリケーションプログラミング

Ruby on Rails 5アプリケーションプログラミング

おわり

「ノンデザイナーのための名刺デザイン」を読んで2時間ぐらいで名刺を作った

はぜです. 名刺作りました.


c-mitsuba.hatenablog.com

⬆︎本を書いた蜜葉さんのブログはこちら

去年転職をしたのですが, 退職が決まった後とか有休消化中とか, 新しい会社に入って名刺をもらうまでの間, 渡せるものが無くて困っていたので, 名刺作りたいなあとは前々から思ってはいた.
TwitterとかFacebookを共有できれば良いんですが, 割とハードルが高いんですよね.

ただ, いざ作るとなると, 正直デザインに関する知識もなく, やったこともないという状態. 作り方を軽く調べて まあ後で良いか...という感じで忘れてました.


hazediary.hateblo.jp

 本を買ったのは先日行った技術書典4.
元々目当ての本は違うものだったのですが, 人混みを避けながらふらっと会場を歩き回っていたら見つけて, すぐ購入.
帰ってすぐイラストレータを入れて数時間で出来上がり.
すぐ完成してびっくり. (入稿は2回失敗したけど)
高いと思っていた障壁は, 思っていただけでした.
大切な部分だけがシンプルに小さくまとまっていて, とても良い本でした.


出来としては, まあ...初めてだったしこれで良いか っていう微妙な感じ.
よくデザイナーの人たちから聞く, @ディスプレイ上で見るのと実際出来上がったものはかなり違う」ことを実感した.

具体的には

  • 思いの外小さい. アイコンのサイズは大体イメージ通りだけど文字がちょっと読みづらい.
  • 割と暗い. iMac明るいんだなあ と思った
  • 背面に色つけるとめちゃくちゃ文字読みづらい(裏面の話, 裏には本名とかが書いてあります)

といったところ.

 おもて面は文字が小さい気がするけど, それなりに悪くない出来かなあと思うので, 100枚なくなるまではこれを使っていこうかなあと思います.
次はもっと良いデザインにしたい.



体験版は7日間使い放題なので, 欲しい人は作ってみると良いかと思います.
名刺自体も送料込みで1000円ぐらいで作れるし.

以上

GW!!9連休!!!!やったー!!

技術書典4 一般参加してきた

techbookfest.org

いってきました.

そもそも「同人誌即売会」というイベントに行くことが初めてで, 更に言うと「同人誌」を初めて買った.
手作り感の溢れる会場だったり, そうと思ったら異様に完成度の高い本が多かったり, 開く直前のディズニーみたいな待機列だったりと驚きがたくさんでした.

どう動けば良いのか全くわからなかったこともあって開場前の割と早い時間に行ったけども, それでもめちゃくちゃ並んでいて驚いた.
整理券をもらうための列が死ぬほど長く, まじか....まじか...とか思っていたんだけども全然待ち時間は短いほうだったっぽい(整理券番号は400台前半)

QR決済は便利というよりも面白かった. 決済処理後に出てくるマークで正しい処理かどうかを判別するのはよく思いついたなーという感じ.
ただ, 多少確認に時間が取られるというのも事実で, 混みまくってるところでど真ん中に置いてあるQRコードを読み取って画面を見せて...みたいなことをするのは大変だった.
特に待機列の間で販売されていた公式ガイドブックは丁度1000円だったこと, 人が並んでいて画面を見せるのが大変だったことからQRではなく現金での決済にした.

あと, 全店舗がQR決済に対応しているわけではないので, ブースをさらっと見て決済が対応しているかどうかを見て財布を出すか出さないかを判断しなければならないのは微妙につらかったかも.
常にアプリを立ち上げておいて, それだけで完結できるようになるともっと良いんじゃないかなあ. それをやるのは簡単じゃないんだろうけど.


もともと書いたかった本以外にも, その場で軽く読んでよさそうなものをいくつか追加購入.
逆に混みすぎてて断念したブースもあって, ちょっと残念.
YATTEIKI projectのPodcast本とニッチ技術本が本命だったので買えて良かった.
可視化法学は公式ファンブックに特別寄稿があって, 待機列が止まっている間に読んでいて面白かったので買ってみた.

...

 たった1時間しか中にいなかったけど, 色々と面白い体験が多くて良いイベントだった.
次は秋?にあるらしい. LINE Messaging APIのこととか, 情報処理技術者とかの話で本を書いて売る側に回って見るのも面白い気がするなあ.

あと灼熱だった. 完全に夏の格好で行ったので丁度良かったけど, 長袖だったり二枚来てる人が結構多くて暑そうにしていた.
昨日今日みたいな初夏の雰囲気は大好きだから嬉しいんだけど, それでももう少しゆっくり暖かくなってきてほしい. 頼むぞ.


米の食べる量を減らす

hazediary.hateblo.jp

今週に入ってからほとんど米を食べていない.
その分多めに肉とか野菜類を食べるようにしている.
昼過ぎの眠気が食べていた頃と比べると明らかに減っていて, いい感じ. ただしその代わり食費が上がる.
米は安いなーというのを実感.
あと, サラダというものがあんまり好きじゃないことに気付いてしまって野菜をどう取ろうか悩んでいる.
基本的に炒めるか煮るでなんとかやっているけど来月になる前に飽きそう. どうしようかな.

上の記事の生活リズムは, 多少前後はあれど一応うまいことやっていけている.
ただ睡眠時間は6時間あれば良い(というか自動的に起きる)ので, その空いた分を朝に本を読んだり, インターネットをして過ごしている.
GWは特に予定がなくて, 生活環境の改善とかバランス調整をやっていけたらいいなと思う.

追記

独り言

昔から自己分析をしていて思うのは,自分は
 基本的にどんなに良い状態でも危機感を持って生活をしている.
言い換えればどれだけ恵まれていようが辛い気持ちになる人間で.

焦燥感 とか 危機感 とかを原動力として動くので, 自分を追い詰めれば追い詰めるほどアウトプットが出てくるようになる.
情熱プログラマでいう「一番下手くそなプレイヤーでいろ」っていう考え方を極限まで突き進めたような状態になっている.

自分に限らず似たような性質の人はいるだろうけども この性質はかなり危うい,
具体的に言うと
 歯止めが効かない っていう危うさ  環境による依存が大きすぎる っていう危ういさの
2つの危うさがある.

歯止めが効かないっていうのは, パフォーマンスが最高の状態っていうのは本当にやばくて危機的な状態だということなので, その状態の時はうまくコントロールができなくなるということ.
そしてその歯止めが効かない状態っていうのも, 結局は環境によってヤバイとかやばくないが決まるので, 自分の想定外のことが起きて環境が激変するとそれに耐えきれない可能性があるということ.

これらをまとめると, 現状自分は自分の中だけでパフォーマンスを上げる方法を持っていなくて, 周りへの依存度が大きいということ.
最初にまとめてあるツイートにアイデンティティという言葉を入れているが, それが無いからこうなっているのではないかと思う.

で, 一番問題なのはこれを解決する方法が全く浮かばないところ.
その状態でも頑張り続けるしか無いっていうのはよくわかっていて, その状態でまあ2年間働いて来たわけなんだけども
一向に改善をする感覚はないし, むしろ悪化の一方を辿っている.
半年前ぐらいからは何かきっかけが欲しくてIT系の専門職大学院を行こうと考えたり, 最近は全く手を触れられなかった学術的な研究に関わりたいと思い始めて夜間大学を探し出したりしている.
別にその選択肢が悪いことではないんだけども, 進学の選択肢は本来そういう理論で行くところではなくて, ちゃんと具体的にやりたいことが決まった状態でないと行くべきではないだろうし, 行っても無駄になるんじゃないかなと思う.
ただそういって, そのまま仕事を続けて行くのもなんだかなあという感じではある.
最近は色々と動いていて, 関わったことのない会社の考え方を聞いたりとか, 昔憧れていたような文化を持つところで互いに話をしてみたりとかしているのだが, そういうことをすればするほど自分の大元の考えとか理念というのがわからなくなってくる.
今まで頭の中で考えて来たものも, その場その場の環境下での最適解を探し求めていただけな気がしないでもないし, もっと先を見据えて走り続けていきたい.

なんか思ってた方向とはだいぶ違うところに飛んで行った気がするけどつらくなってきたので寝ます.

生活リズムを正しい方向に持っていく

はぜです.

先月微妙に忙しかったり色々あったりで睡眠時間がバラけたり土日昼寝しまくってたりで, なんとかしていきたいという話.

6:50起床  
→  
朝ごはん作ったりシャワー浴びたりコーヒー飲んだり本読んだりインターネットしたり  
→  
準備  
→  
出社(8:30~)


→  
退社  
→  
晩御飯作って食べる  
→  
インターネットか本読む  
→  
22:00に風呂  
→  
音楽とか聞いたり静かに過ごす  
→  
23:00 寝る

こんな感じで生きていきたい. 最近は6時台に自動的に目が覚めてけど8:00ぐらいまで布団から出られない. とてもつらい.

hazediary.hateblo.jp

先日バリスタも買ったことだし, 朝にパン焼いてコーヒー飲みながらゆっくり買った本を読む時間を作りたい. 最近本を読むペースが落ちてきているのをなんとかしたい.
ということでうまく生きていくための方法を考えていきたい


指定の時間に音楽をかける

基本的に家にいるときは音楽をかけっぱなしにしているのだが, 4月に入ってからは寝るときは消すようにしている.
これをスイッチとして, 6時40分〜50分ぐらいから自動で音楽を流すようにすれば起きやすくなるのではないかという考え.

自動で流すのは, iMacを指定時間に自動で起動するように設定して, Automatorで起動時にitunesの音楽を再生するようにした.
PCを落とし忘れた時が最悪だが, 最近は毎日消して寝ているのでなんとかなるだろう.
落とさなくても指定時間に再生する機能があるのなら教えてほしい.

どうでもいいけど, 朝になったら機械が自動で色々動いてくれるの近未来感があって良い. バリスタの起動とか電気周りとか風呂とか全部自動で動いて欲しい.
俺...お金いっぱい稼げるようになったら電気をHueにしたりタイマー付きの良いバリスタ買ったり風呂が指定時間に自動で湧いてくれる家に引っ越すんだ.......

コーヒー / 食パン

買ってからは毎日朝にコーヒーを飲んでいる. 割と良い.
ネスカフェは結構好きで, UCCとか他のその辺に売ってるやつよりは全然うまいと思う. 次点でカルディ.
全然詳しくないので基本的に飲み比べとかはできないし高いコーヒーの味とかわかんないけど気にしない. ネスカフェはブラックでも美味いしこれでええんや.

食パンはかなりの頻度で買い忘れるので気をつける. 今日も買い忘れたのでさっき買ってきた.
健康診断で引っかかって以降, ほとんど米を食べていないけど割と健康. そろそろラーメンを減らさないといけない.

運動

なんてことはないただの運動不足. 先月はほとんど運動もしていなかった. というか秋〜冬の終わりまでは全く運動しなくなる. 良くない.
最近は少しずつ暖かくなってきていて, 運動をするようになってきた.

先週末は少し走ったり自転車で横浜まで行ったりした. あとカラオケ. カラオケは運動.
この調子で毎週1回ペースぐらいでちゃんとした運動をしていきたい.


上記以外にも寝られるように23時超えたらスマホの通知全部消したり とか シャワーじゃなくてちゃんと風呂に入るとかできる範囲でやっていきたい.
目的としては 本を読む時間を増やしたい / 布団にこもる時間をなんとかして減らしたい / 健康になりたい とか.
精神的につらくなってきた時に生活リズムが崩れているとぶっ壊れるので, それをなんとか回避したいというのもある.

がんばっていきていこうな

「LINE Pay APIによる決済機能を実装しよう」勉強会に行った

はぜです. いつもの雑な日記です.

【東京】LINE Pay APIによる決済機能を実装しよう というLINE Payの勉強会に行ってきました.

内容としては,

  • LINE Payの仕組みや概要の説明
  • Web上でLINE Payを実装する
  • Bot上でLINE Payを実装する
  • 懇親会

といった感じでした.
かなり細かい説明してもらいつつ, 参考のQiita記事を眺めながら進められたので特に問題なく実装ができました.

以下は自分用のメモです.


決済の流れ

  • 1: 決済予約

    • ユーザが決済手続きを始める動きをした際に行われる
    • サービスプロバイダがLINE Payに決済予約を行うリクエストを送信する
    • そのレスポンスとして, 「トランザクションID」と「決済URL」が返却される
    • トランザクションIDは, その決済手続き一つを表すためのIDで, 決済URLはその決済手続きをユーザが行うためのURL
  • 2: ユーザの決済承認

    • サービスプロバイダがユーザに決済URLを渡し, リダイレクトするとかしてそのページにアクセスをする
    • LINE IDによるアカウント認証を行い, 決済の承認を行う(=PAY NOWボタンを押す)
  • 3: 決済の実行と通知

    • ユーザによる決済の承認が行われると, LINE Payに承認したことが通知される
    • その際に送られるトランザクションIDを元に, 承認したトランザクションを特定し, サービスプロバイダに決済が行われたことを通知をする

テスト用のアカウント

  • 実際に決済を行うことができるようにするには「加盟店登録」が必要
  • この辺の手続きは飛ばしているのでわからない.
  • テストとして決済を行いたい場合, 開発用の環境が欲しい場合はサンドボックスを用意することになる
  • LINE Pay Developers : Sandbox creation

実装する上での気をつける点

  • nodeのバージョンが古いと動かないことがある
  • (ハンズオンでは)環境変数で設定するCHANNEL ID, SECRET, CONFIRM_URLは当たり前だけど間違えないこと
  • サンドボックス生成時に設定するIPアドレスも間違えると死ぬ. 2桁ずつ入力欄が分かれているためコピペしづらい
  • トランザクションIDは消失すると最悪なので気をつける.

所感/感想

仕組みとしてはかなりシンプルで, 実装が簡単.
LINE上で何か取引をする上では間違いなく最高の選択肢になるかとは思うが, Web上ではどうかはわからない. どうであれ楽に運用できるような仕組みはなっている
実際使う際の加盟店登録がどれだけ面倒臭いか, 登録に当たっての条件や制限事項によって実用性は大きく変わりそう. ひとまずやってみないとわからない

初めてherokuを使ったが, クラウドサーバとサーバレスの中間ぐらいのものでとても良い. 適当にサクッと物を作る時には最高っぽい.
色々ぐぐりながら何ができるかを調べる

LINEはセミナールームが綺麗でよかった.

LINE Community lab なる, 個人orチームで数ヶ月ぐらいでLINEを使ったアプリケーションを作るプロジェクトみたいなものが立ち上がるらしく, 面白そうなので参加しようと思っています.

おわり

フロントエンドの知識が全くなくてつらい

はぜです.

hazediary.hateblo.jp

ちょうど一ヶ月前に

「ホームページを作れるようになろう」と「Javascriptから始めるお手軽プログラミング」を3月末までには終わらせたい.

とか言っていたが全く進んでいない.

Twitterでは言い訳をしている.

今はReal World HTTPを読んでいる. 知らないことが多くて面白い.


haze-page.tokyo haze-page.tokyo を多少それっぽくした.
中学校の頃にFC2ホームページでサーバ(?)借りてHTMLを書いていたのを思い出した. 懐かしい. 削除しといてよかった.

背景写真は近所で咲いていた桜を撮ったもの. その時々で変えたくなったら変えます.
最寄駅が結構花見スポットになっているっぽくて, 家族連れの人たちとかが昼間にわいわいしているのを眺めて平和な気持ちになっていた.


最近仕事でもそれ以外でもJavascriptを書くようになり始めていて, せっかくなのでちゃんと理解しようと思って書籍を買った.

初めてのJavaScript 第3版 ―ES2015以降の最新ウェブ開発

初めてのJavaScript 第3版 ―ES2015以降の最新ウェブ開発

これより以前に出ているJSの本は闇に近いらしく, これだと比較的最近の「嫌いにならないJavaScript」を学べるらしく激推しされた.
実際かなりわかりやすく, 付録のコードの変数名が日本語で書かれているところ以外はとても良いと思う.

非同期処理がデフォルトの言語を触るのが初めてだったことがありそこそこハマったりしたが何とか理解することができた.
async/await がとても良いと思った. 早く全ての環境がES2016対応になってほしいところ.


[追記]

背景画像がくそみたいに重かった(Lightroomで編集し終わったやつをそのまんま表示していた)ので品質を落とした.
あと, nginxの設定で include mime.types; を入れておらずCSSが読み込まれない現象が起きて10分ぐらい悩んだ. 無知すぎる. つれえ.

雑記 ( つらみ編 )

ここ最近良くない方向に考えが行きやすくて困っている........つらい...人生とは.....

ここ最近, 仕事面でもそれ以外の面でもあまり上手く行かないことが多くて凹むことが多い.
だいたい自分の能力不足が原因だったり, 精神的に弱いところが露出しているだけっていうのを自覚してしまうのがつらいところ.
助け舟を出す先がないんだけども, 元々そういう生まれというか, そういう生き方を選んでしてきたのでどうしようもないかなあと.

ひとまず出来ることは, 自分が潰れない程度にやることをやりつつ, 地道に技術を身につけたり知識を増やしたり, 考えをまとめたりして一歩一歩進んで行くということなので.
死にたくならない程度にやっていこうと思います.

雑記 ( 買い物編 )

天気も良いし, 軽く走るついでに近所のブックオフとかドンキを散策していたら, このバリスタが新品1980円で売っていて思わず買ってしまった.
友達の家で飲んだことがあって, 美味しいし, (カプセルより)コスパ良いからいつか買おうと思っていたのでよかった.
毎朝起きたらこれのスイッチを押してコーヒー飲んでから生活することになりそう. QOLが結構上がる. 嬉しい.


何買うか悩みながらツイートしたら著者の方々から圧力のRTといいねとリプが飛んできて焦った. 今年の前半中に全部買って読みます. たぶん.

とりあえず以下のものを買った

最初に Real World HTTPを読んでいる.
サンプルコードが主にGoで書かれている. Goの本と一緒に買ったのは正解だったっぽくて, これ読み終わってからGoの本を読めば一気に理解ができそう.

この3冊を読み終わったら次はカイゼンジャーニーとSRE本だろうか. どっちも内容が最高に濃いようなので時間を掛けて読みたい(SREは物理的にでかいし文量もとんでもないので大変っぽい)


バリスタ買ったブックオフMacbook Air Mid 2013 / もりもりタイプが綺麗な状態で4万円台で売っていて即購入.
付属品全て付いて, 充電回数28回! めっちゃ当たり引いた. あと2年戦える.
外に持ち運ぶ用のMacbookを買うかずっと悩んでいたので歓喜している. それ用のお金置いといてよかった.

シールについての考えは以下の通りです.

普段お世話になっている/興味を持っているツール類を少しずつ貼っていきたい. GCPとか.