ITの隊長のブログ

ITの隊長のブログです。Rubyを使って仕事しています。最近も色々やっているお(^ω^ = ^ω^)

Railsの日付操作が面白い

RuboCopにこんな怒られ方しました。

C: [Correctable] Rails/DurationArithmetic: Do not add or subtract duration.

Time.new - 30.minutes

これ以外にどんな方法が???と思っていたのですが、同僚から教えてもらいました。

qiita.com

おもしろい。

記事は日付ですが、時間もいけます。

[36] pry(main)> Time.current.ago(30.minutes)
=> Mon, 17 Oct 2022 22:22:54 JST +09:00
[37] pry(main)> Time.current.since(30.minutes)
=> Mon, 17 Oct 2022 23:23:00 JST +09:00

[38] pry(main)> Time.current.ago(30.seconds)
=> Mon, 17 Oct 2022 22:52:40 JST +09:00
[39] pry(main)> Time.current.since(30.seconds)
=> Mon, 17 Oct 2022 22:53:36 JST +09:00

[40] pry(main)> Time.current.ago(30.hours)
=> Sun, 16 Oct 2022 16:53:13 JST +09:00
[41] pry(main)> Time.current.since(30.hours)
=> Wed, 19 Oct 2022 04:53:17 JST +09:00

RuboCopさんに怒られたメモ

概要

  • 意味調べて修正しているので、せっかくだからメモする
  • Rubyなれなさすぎてもあり、めっちゃ怒られた(修正箇所いっぱい)

怒られたメモ

C: [Correctable] Style/MutableConstant: Freeze mutable objects assigned to constants.

定数は freeze してね。はい。

qiita.com

[Correctable] Style/TrailingCommaInHashLiteral: Put a comma after the last item of a multiline hash.

読めばわかりますね。Hashの最後にもカンマ入れてね。はい。

C: Naming/AccessorMethodName: Do not prefix reader method names with get_.

きびしい〜って思ったけど、アクセサメソッドのルールに引っかかったっぽい

www.rubydoc.info

今回はそうじゃないんだけど。。。いや、広義の意味でそうなのか。しかし、変数名とメソッド名が同じになること多くならないかな?

# ids = get_ids
ids = ids  # 極論こうなる

qiita.com

うーんって思ってたけど、下記記事みて考えを改める。

qiita.com

安直だけど、集めてくる系のメソッドだったので、 collect_ とかつけてみました。

C: [Correctable] Layout/ArgumentAlignment: Align the arguments of a method call if they span more than one line.

複数行のメソッド定義の引数が揃っているかので揃えてとのこと。

# bad
        message = format(BLOG_TEMPLATE,
          title: title,
          body: body,
        )

# good
        message = format(
          BLOG_TEMPLATE,
          title: title,
          body: body,
        )

C: [Correctable] Style/NumericPredicate: Use xxxxx.positive? instead of xxxxx > 0.

はい

C: [Correctable] Rails/TimeZone: Do not use Time.new without zone. Use one of Time.zone.now, Time.current, Time.new.in_time_zone, Time.new.utc, Time.new.getlocal, Time.new.xmlschema, Time.new.iso8601, Time.new.jisx0301, Time.new.rfc3339, Time.new.httpdate, Time.new.to_i, Time.new.to_f instead.

なるほど。なんでふたつあるんやって思ってたけど、 currentRails用でしかもそれ使ったほうがいいと。

qiita.com

C: [Correctable] Layout/SpaceAroundEqualsInParameterDefault: Surrounding space missing in default value assignment.

なるほど

qiita.com

C: [Correctable] Style/BlockDelimiters: Avoid using {...} for multi-line blocks.

なるほど。。。インラインじゃないと駄目的な。

C: [Correctable] Style/TrailingCommaInArrayLiteral: Put a comma after the last item of a multiline array.

配列も一緒

C: [Correctable] Style/TrailingUnderscoreVariable: Do not use trailing _s in parallel assignment. Prefer ...

PythonだとOKだけどだめなのね

www.rubydoc.info

物流について調べているメモ2

www.aipacommander.com

前回

続き読んでいる。

読んでいるんだけど、IoTはともかくAIの期待値が大きくてもっとがんばらんと。という気持ちにはなる。

あと、AIがまじで頑張ってコスト削減ーってなると、極論人がいらなくなるということになると思うので、その点どうなの?という気持ちにもなる。

というのが海外だとそうなっているらしいけど、日本だと現場のノウハウがめちゃ溜まっているとのことなので、日本型のボトムアップ式でロジスティクス4.0をやっていこうぜ!というのがこの本の趣旨。

で。僕が知りたかったのはドライバーが儲けるにはどうすれば?ということだったので、この本はちょっち違うかなと思った。ただ、情報集めには色々しれたのでよかった。

Yotubeで検索してみると結構でてきたのでみている。

www.youtube.com

  • 人気の職業にしないといけない
  • 残業時間が減るので稼げない可能性がある → 運賃の値上げしかない
    • 過去はめちゃめちゃ運賃やすかった
  • snsからの発信でドライバーが増えた
  • 国も運賃の改善を目指している
  • 軽貨物配送が人気になって軽バンが高くなっているらしい(へー)

there-winthree-service.jp

www.youtube.com

  • 物流業は他の業種と比べて実はそんなきつくない(マジ?)
    • 配信者はパチンコ業とかが大変だった
  • 倉庫内の仕事、ピッキングフォークリフトの運転、荷降ろし、トラックに乗せる
  • きついのは時間が長い
    • 長時間働かないといけない理由は賃金がやすいから、残業しないときつい
    • 3 ~ 4時間残業しないとやっていけない
    • 日々続けているとやっぱりきつい
  • トラック運転は12時間が平均
    • 居眠りとかに繋がりやすい
    • 休みも少ない。。。
  • 稼ぐなら残業するしかない現状。物流の辛いところ

www.youtube.com

  • 法律ができて、物流の会社が増えた。増えるまではよかったけど荷主からの需要は増えなかった
  • ので、たたきあい(ダンピング)がはじまった。そのため単価が下がった
  • 傭車
  • 仕事はじめてからおわりまで拘束時間がながい
  • 大手はしっかりしているけど、中小は守れていないとかが多い
  • 給料は基本給をしっかりしていると中小は赤になりがち
    • 地域でも金額が違う
    • 基本給 7 ~ 8万がざら
    • メリットは?会社の人間トラブルはまったくない。ドライブが好きなら良い

Nuxt3.0.0-rc.11が動かない

結論からいうと、Nuxt3.0.0-rc.10で動きました。

環境

$ sw_vers
ProductName:    macOS
ProductVersion: 12.6
BuildVersion:   21G115

$ docker --version
Docker version 20.10.17, build 100c701

m1 macです(m2でも試しました)

試したこと

だいたいはドキュメント通りに試しました

$ docker pull node:16.16.0-slim
$ docker run --rm -p 4000:4000 -it node:16.16.0-slim /bin/bash
$ npx nuxi init nuxt-app
$ cd nuxt-app
$ yarn install
$ yarn dev -- --port 4000

するとこんなエラーが

[nuxt] [request error] [unhandled] [500] request to http://[::]:4000/__nuxt_vite_node__/manifest failed, reason: connect EADDRNOTAVAIL :::4000 - Local (:::0) ()
  at async $fetchRaw2 (./node_modules/ohmyfetch/dist/shared/ohmyfetch.c2a48baf.mjs:132:20)
  at async ./.nuxt/dev/index.mjs:457:20
  at async ./.nuxt/dev/index.mjs:526:64
  at async ./.nuxt/dev/index.mjs:106:22
  at async ./node_modules/h3/dist/index.mjs:592:19
  at async Server.nodeHandler (./node_modules/h3/dist/index.mjs:538:7)
$ curl localhost:4000/__nuxt_vite_node__/manifest

で、アクセスすると、返却されるんですが、エラーになる。わけがわからん。

解決

色々ぐぐってみたり、ソースコードも確認してみましたが、全然わからないので、ダウングレードしてみました。

$ yarn upgrade nuxt@3.0.0-rc.10

そしたらうまくいった!!!

ログが残っていないので気になるのは、manifestの結果が違うのが気になっています。(rc11の場合は、もっとスカスカでした)

$ curl localhost:4000/__nuxt_vite_node__/manifest | jq .
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
100   599  100   599    0     0   292k      0 --:--:-- --:--:-- --:--:--  292k
{
  "@vite/client": {
    "file": "@vite/client",
    "css": [
      "/node_modules/@nuxt/ui-templates/dist/templates/welcome.vue?vue&type=style&index=0&scoped=b35d5156&lang.css"
    ],
    "module": true,
    "isEntry": true
  },
  "/node_modules/@nuxt/ui-templates/dist/templates/welcome.vue?vue&type=style&index=0&scoped=b35d5156&lang.css": {
    "file": "/node_modules/@nuxt/ui-templates/dist/templates/welcome.vue?vue&type=style&index=0&scoped=b35d5156&lang.css",
    "resourceType": "style"
  },
  "/nuxt-app/node_modules/nuxt/dist/app/entry.mjs": {
    "resourceType": "script",
    "module": true,
    "file": "/nuxt-app/node_modules/nuxt/dist/app/entry.mjs",
    "isEntry": true
  }
}

物流について調べているメモ

今これを読んでいる

今思ったけど、全く知らない業界を知るために本を読むのは僕は向いていないかも知れない。本ででてくる単語をある程度理解した上で読むとストレスなくてすっと入ってくるタイプなのかも。

話戻して、ロジスティクスってなんぞ???ってなっていましたが、ロジステック回帰じゃないのかとか思ってましたが、全然違いました。

ja.wikipedia.org

物流の英語じゃろ?って思ったけど、物流は物的流通の略語で物理の話で、英語にするとロジスティクスではあるが、これは全体を管理することを指すとのこと。

んで、バージョン(?)が1.0 ~ 4.0まであって、今から4.0をがんばろ!って感じとのこと。

まだ序盤だけどこんなふわっとした理解。

また、驚いたのが、物流のはじめは戦争だったらしい。兵士が各戦地へ物を配送するために管理、効率化することが始まりらしい。戦争っていろんな意味で恐ろしいなって思った。