SakuraWi - BLog

WEBエンジニア。聴いたお話をまとめておく倉庫的な。スタックストックスタック!

わからないなーの壁の第一段階を越える

最近、以前よりもRailsに対してクリアになった気がしている。 といっても劇的にどうだ!ということではないけど MVCへの理解だったり、モデルへの切り分けとか、テーブルとかその辺についてがかなりクリアになったなぁと思う。

英語の勉強って階段状になってます、という話をよく聞いていたけどその階段の1ステップが、登れたのかもしれない。

クリアになるまで、正直9ヶ月くらいはかかっていると思う。 長かったのか、短いのかは人それぞれだろうけど。

Railsはじめました、とか、プログラマーなりたいっす。とか、そんな人が勉強しだしてどんなもんでどうなるかの基準になるかもとおもったりして書いている。

だいたいどんなもん。

平日毎日7時間くらいお仕事しているとして、時間でいうと5時間 * 5日 25時間が平日コード書いたり設計したりしたとして1ヶ月で100時間(少ないw)

9ヶ月で900時間。

と思うと1000時間が1ステップ目だったりするのかなー。

1万時間の法則といったりするけど、これを10倍すれば、ある程度極めたことになるのか。なるほど。

もっとやる人は、1日10時間の積み重ねで、毎日やれば1ヶ月で300時間。3ヶ月。 たしかにこんなもんかも。

gitでみる

gitでみるとこんな感じだった。 オープンにしちゃうスタイル。

f:id:Saku-Saku:20180617132550p:plain

mac購入後のセットアップ

やったこと全部まとめ

mac全般

  • 英かなダウンロード
  • 電池表示を数値で出るようにする
  • ライブ変換OFF
  • caps lockをcontrolにする
  • リピート入力認識までの時間を短いにMAX
  • キーのリピートも速いにする
  • トラックパッドのタップをクリックできるようにする
  • 軌跡の速さをmaxにする
  • クリックを強いにする
  • dockからいらないのを全部消す

アプリとか

  • better touch tool入れる
  • line
  • chrome

開発環境

macbook pro 15インチ2016モデル256GBを買った

買った。

会社のパソコンがUSキーで家のキーがJISであって大変ストレスフルだった。 また、僕が個人で所有しているmacはなんと12インチだったのだ。

いや、なんだかんだでよく動いてくれていたのだが、思い動作をすることをさせるとやっぱり遅いなということが多く さすがに限界だろうということで。。。

15インチ買っちゃった理由は、でかいほうがよくね?っていうくらい。 持ち運び大変かなーとも思うけど、いつもでかいリュック持って歩いたりするくらいだし案外困らないんじゃね?って思って。 12インチもめっちゃ軽かったけど、軽すぎて最高!ってなったことがそこまでないきがしている笑

2016モデルなので、ちょっとキーボードの不具合とかが怖い。うーん。

処理速度については15インチはクアッドコアだしメモリもあるし、余裕でしょう。 昔のモデルだけども全然使えるやろうなっていう判断。 最悪1年くらいでまた買い換えてもいいしなぁと。(多分しないんだけど)

なんか今あった方がいいなぁっていう思いがつよかったのでWWDC前に購入。 めっちゃ大幅アップデートされたらそれはそれで辛いけど、それまで使い倒して5月中はあってよかったぜ最高という風に言えるようにするしかない。

かなり高い買い物だったので、なんだかんだでテンションがあがっている。 分割払いにしたので未来のオレからの投資ってことで。

スクロールによってヘッダーやフッターを固定するためのcss position stickyが便利

どうも、櫻井です。

最近position stickyなるものを知りまして、これがまた便利だなと思って共有するための記事を書きました。

概要

この方の記事がめちゃめちゃわかりやすいです。 動画もついているし、デモ用のコードがくっついているので。

position: stickyの面白い使い方と使用時の注意点 | Rriver

使い方

親要素の構成によるところがありますが、基本的に

.sticky-class {
    position: -webkit-sticky;
    position: sticky;
    bottom: 0;
}

こんなのでいけちゃいます。

ポイントはposition: stickyで指定する部分と、topやbottomなどの指定があるところですね。 top: 0にすると上でひっかかって、 bottom: 0とかにすると下でひっかかるイメージです。

position: -webkit-sticky;はsafariに対応するためのものになります。iOSなど想定が多いなると必須かと思われます。

注意点

2018/5時点では、IE11には対応していないみたいです。

そのため利用する際は注意が必要ですね。 モバイルでの利用想定などであればそこまで問題なさそうです。

Can I use... Support tables for HTML5, CSS3, etc

ブログとかにもどんどん使っていきたいcssだなぁと。

一人暮らしをして気づいた病院の費用の高さ

最近風邪をこじらせて、喉が完全にやられて声が出ない、なんてくらいには弱ってまして さすがにGWは元気に過ごしたいと思って病院にいったんですな。

そしたら高い!!診察って結構お金かかるんですねえ。 しゅっとみてもらって3000円。

あとから友達から聞いたら初診料ってのが意外ととられるってことをきいて、行きつけをつくった方が良いみたい。 さらには、個人病院のが安いんだとか。 大学病院とかちょっとお高いらしい。

しかしまぁ、社会人となると帰りに寄る、てくらいにしたいし、その場で行きたいなぁなんてことを思うと 病院もその場所に固定せずにいろいろ行きたいし、その時々でしゅっといきたい。 が、初診料ばっかりとられてもなんとも。

あと、どこいったらいいかとか結構わかんない。どの病院がいいかとか、喉が痛い時は内科なのか、耳鼻科なのかとか。 さらには病院に行くべきかもう少し寝てりゃなおるのかとか知りたい。

ともあれ、病院に行く機会がないように健康でいるのが一番ベストってことですねえ。

【Ruby on Rails】sidekiqをrspecでテストしてみよう

sidekiqを用いてバックグランドジョブをさばきたい人のための備忘録。 tips集みたいな感じで残します。

sidekiqって?

まずはやっぱドキュメントだ。本物をみよう。

https://github.com/mperham/sidekiq

バックグランドジョブを管理、実行するためのライブラリ。 非同期処理を使いたい時に便利です。

で、バックグランドジョブとか非同期処理って何?ってなるかと思うのでその解説を少しはさんでおきます。

通常動き続けているプロセスとは別に、この処理だけは別プロセス、スレッドでやってほしいってやつがありますよね。それを分けて処理してくれるのが非同期処理です。 誰かにメール飛ばす、なんてやつは独立した処理としてわけられるやつです。 イメージはメール飛ばすのは12時に別処理でやっておいてねーみたいな。

それをRuby on Railsでちゃちゃっと便利にやってくれるのがsidekiq。 ちなみに、activeJobというのもあります。

非同期処理ってなんやねんって思う人も一読するとよさそう。ちなみにめっちゃ高速で5分~10分くらいで読めちゃうので読んじゃいましょう。 Active Job の基礎 | Rails ガイド

sidekiqのジョブ

sidekiqのジョブはworkerと呼ばれます。 activejobとかだと、それを動かすためのスレッドがワーカなんていわれてちょっとややこしいなーと思いがち。

ということで、app/workersにこんな感じでファイルを作ります。

app/workers/test_worker.rb

class TestWorker
  include Sidekiq::Worker

  def perform(xxx, yyy)
    # 処理を書く
  end
end

だいたい、activejobと一緒ですね。

sidekiqのエンキュー

じゃ、ジョブを追加しましょう。

TestWorker.perfom_async(xxx,yyy)

これで追加できます。 activejobだと、.perform_laterとかでしたので、そこが違うポイントでしょうか。 .perform_inとかで時間指定のジョブにしたりもできます。

Rspecでテストしたろか

ほな、Rspecでのテストはどないですか、と。 これがまたちょっとやっぱいろいろ必要だったりするんですね。

sidekiqのrspec用のgemもあるようなので、必要によってはそっちを使ってもよさそうです。でも、なくてもテストできそうでした。

毎回のジョブをリセットする

spec/spec_helper.rb

...
config.before do
  Sidekiq::Queue.new.clear
end

これでテスト毎に生成されるジョブをリセットできます。

ジョブ数が追加されたことをチェックする

expect(Sidekiq::Queue.new.size).to eq 1

これでジョブが追加されて1になったかをチェック可能。

CircleCIでの設定

dockerを使っている場合は、

docker:
  - image: dedis:3.2

のように設定する必要がありそう。

まとめ

結構単純にジョブ追加、テストはできます。

ジョブ自体のテストは、中身の処理の各々のユニットテストをしっかり記述してテストすればよさそうです。

ラジオ投稿してみた

youtubeにラジオを投稿してみた。

ラジオした理由はなんか、音系が流行りそうだったから。Voicyとか?

のと、ブログもいいけど言葉で語る(話す)ってのも面白そうだし、笑いがそのまま伝わるといいな、と。 普段から友人といるときに爆笑することがおおいので、それを共有したかった。

f:id:Saku-Saku:20180410022137p:plain