uetennis’s diary

プログラミングについて学んだ事やライフハックについてかきます

6/7 日記

6/7 日記の振り返りをしよう ロジャーフェデラー ブログ youtube動画をネタにブログ テニスオフ褒めちぎる

習慣について

ブログかいた後に、思いっきり精神的につかれるのはなぜだろうと思ったが、理由がわかった。人間は変化に弱い動物なんだ。以前、筋トレが続かなかったときだってそうだ。ジム通いの時をおもいだそう。久しぶりにやるトレーニングはハードで、片道に車で、30分かかる。面倒くさいしハードだから続かなかった。バカバカしいぐらいにノルマを小さくしたら筋トレが続いた。ハードなHIITも続いている。 スクワット1日のノルマを1回で2~3ヶ月続いたら、筋トレに対する精神的な疲れがへり、SITそして、SITからHIITできるようになった。

これからのノルマ

ブログ1文字 英語1単語和訳

懸念点

人に馬鹿にされるのがやだったら言わなければいい。 効果がないと思われがちだが、習慣化が形成されると精神的に楽になり、レベルアップができる。筋トレの習慣が物語っている。

日報 8/7

やること

  • lsコマンドの修正
  • wcコマンドの単語を表示

学んだこと

  • wcコマンドの単語の定義

  • チェリー本 ヒアドキュメントとsplit勉強。

text =
<<~TEXT
a aa  bbb
rrr   hhh    eee
TEXT

puts text
p text.split(" ").length

# (m・_・bp) 16:03 ~/Desktop/vsnote2.0/kadai/wc % ruby e.rb
# a aa  bbb
# rrr   hhh    eee
# 6

ある程度近づいた!!

(m・_・bp) 17:05 ~/Desktop/vsnote2.0/kadai/wc % ruby f.rb
     152     421    3704 ls.rb
(m・_・bp) 17:05 ~/Desktop/vsnote2.0/kadai/wc % wc ls.rb 
     152     421    3704 ls.rb

配列の便利メソッドあれこれ - Qiita

Rubyでlsコマンド作成とヨドバシカメラに行ってきた。

朝が来た。 英文法大特訓を読んだ。 softskils読んだ。上司に頑張ってますアピールは大切だと学んだ!

秋葉原の肉のハナマサに行く前に寄り道した。鬼滅の刃のグッズが売っていた。斜向いには、おさるのシンバルくんがいた。購買意欲を刺激させる配置かも知れない。 ヨドバシカメラをでたら、迷子になった。千代田区の地図をみつけ、どうにか肉のハナマサについた。 プロ使用のポテトチップスのコンソメ味と、業務用のアイスクリームを買った。アイスクリームはくろみつきなこ味だ。

家に帰ってから、カレーを食べながらハイキュー!!みた。 ハイキュー!!の月島くんの性格は、ちびまる子ちゃんの長沢くんに似ていると思った。 月島くんは、迷っていた。上には上がいてどこまで頑張ればいいのか?たかが部活なのに。。月島くんは答えをみつけるのにもがいてた。 みんなにアドバイスをもらって答えをみつけたみたいだ。最初はつまらなかったができる事が増えて楽しかった。楽しい瞬間があるか、快感があるか。それだけで、厳しい練習に耐えられるらしい。 なるほど!わかる気がする。私もテニスをやってる時、常に楽しいわけでなかった。地獄のような振り回しは楽しいわけではない。ただ、上達したかった。1ポイントとる快感がたまらなかったから、きつい練習も耐えられたのだろう。

今日の勉強

15時~

どうすれば、-lと他のオプションを連携させることができるのか?

連携させるの難しいな。 やはり動かすことに集中させよう。

よし!動かすことできてすごい感動した!!!!!!!!!!⭐️ コードは343行あるからシンプルにしたい!

できなかったこと

オプション同士の連携が上手くいかなかった。 部品はあるのに、使いこなし方がわからない。

17時~

三項演算子でだいぶシンプルにできた。条件分岐された、optionを格納するといいみたいだ。

def initialize(opt)
  @opt = opt
  @files = @opt["a"] ? Dir.glob("*", ::File::FNM_DOTMATCH).sort : Dir.glob("*").sort
  @files = @files.reverse if @opt["r"]
end

Rubyでlsコマンドを作成の課題で、-alrを実装させることができた。提出することができて嬉しい。

lsコマンド作りと上野公園とダイソー

10時から15時まで

朝が来た。どうもお皿を拭くフキンが欲しいと思い上野のダイソーに向かおうと思った。先にシャワーを浴びてから行こうと思ったが、やめた。帰ってきてからシャワー浴びようと誓った。上野に向かう途中Justin Bieberの曲を聴いた。聞いている途中で、ブログを書く理由について考えた。自己紹介と友達作りのきっかけになればいいなぁと結論づけた。寄り道して上野公園に向かった。大きな公園はとても好きだ。自然が多いと、とても癒される。諸説によれば、自然の容量が多いとリラックス効果も高いし、腸内環境をよくしてくれる効果もあるらしい。 「自然」ヤバい。結局、リラックス法としては最強かも | パレオな男

今度こそ腸内環境を治したいあなたに送る「腸内フローラ改善のための8ステップ」 | パレオな男

上野公園の蓮を見て少し癒された。途中で鉄棒があり懸垂をした。回数は6回だ。あまりできなくて少し残念だ。公園を後にして上野のアメ横を通った。楽しそうに喋りながらビールを頬張る人たちがいた。私は楽しそうにJustin Bieberの曲を聴きながら Rubyでlsコマンドの作成について考えた。ちなみにlsコマンドはlist segmentsの略らしい。 ダイソーでは食器を拭くフキンがたくさんの種類あって、胸が踊った。レジでは人が並んでた。私も並んだ。レジの付近では陳列されたお菓子が並んでた。買いたい衝動を抑えようと深呼吸した。目をつぶって鼻から吸ってゆっくり吐いたのだ。そして目をあけた。お菓子は軽減税率で8%!という文字が私に向かって飛び込んできた。私の手は黒糖かりんとうに手を伸ばし、カゴにそっと置いた。 帰りはあいみょんを聞きながら行きと違う道を歩いた。少しばかりショートカットで帰れることを覚えた。家に着く頃にはあいみょんのマトリョーシカという曲のサビが終わった。 家に着いた後シャワーを浴びてヨガとHIITをした。帰ったらシャワーを浴びる誓いを守ることができて安堵した。

昨日のカレーの残りを食べた。

会話できる英文法大特訓した。和訳のみ ブログ書く理由のひとつに自分が頑張ってるアピールもいいかも softskilsという本に書いてあった。

15時から21時まで

はてなブログをproにした。 お菓子はさっき買った黒糖かりんとうを食べた。

lsコマンドをどうやって分解をすればいいか考えてたらパンクしそうになった。きれいに書く楽しみは後にとっておくことにする。まずは動かそう!

スパゲッティコードになってしまった。(処理が下から上にいっている。動けるけど)

ちょっと手書きで整理する。

よし!-lだいぶ整えることができた!正規表現で消した文字をrjustでやってもダメダメだった。

#変更前
stat.mtime.strftime("%m %d %H:%M").gsub(/^0/, "")
#変更後
stat.mtime.strftime("%m %d %H:%M").gsub(/^0/, " ")

感想

lsコマンド結構すすんだ!

Rubyの`transpose`とメイドさんと肉のハナマサ

0時から3時まで

どうやら私はtransposeから嫌われているようだ。 全然できない。 そんなことを考えながら、日報を読んだ! どうやら、[061] lsコマンド #5 | FJORD BOOT CAMP(フィヨルドブートキャンプ)

each_sliceだと余りにnilが入らないため、transposeを使うのに都合が悪かった。(上の例でいうと、["tea", nil, nil]になってほしかった) 調べたところActiveSupportのin_group_ofを使うといいと分かった。

なるほど~それを使おうと思ったら、

ls コマンドを作る | FJORD BOOT CAMP(フィヨルドブートキャンプ)

gemを使わずにRubyの標準ライブラリのみで実装してみてください。どうしてもgemに頼らざるを得なかった場合は提出時にその旨コメントしてください。

なんと!今はダメでした。けど、考え方はわかったぞ! 色々と手を動かした。どうやら、上手く行きそうだ! これでtranepose使えそうだ。

b = (1..10).map{|i| i.to_s.ljust(30)}
a = []
b.each_slice(3) do |x|
  a << x
end
if a[-1].size == 1
  a[-1].push(nil, nil)
else x[-1].size == 2
  a[-1].push(nil)
end
puts a.transpose.join(" ")

11時から15時まで

夜ふかししてたら、遅く起きた。午前中の勉強は諦めた。 秋葉原に買い物に行く。人が多い、メイドさんも多い。なるほど!今日は土曜日だ!人とメイドさんの多さで気づいた。 途中まで、涼しかったが日が照ってきて熱くなり、マスクが蒸れてきた。 100ショップに買い物行く途中に、メイドさんにたくさん声をかけられた。何度も「ごめんなさい」と言って、100ショップに向かった。忍者の格好したメイドさんに、声をかけられ、「ごめんなさい」と断ったら、「かたじけない」と言われた。ちょっと印象に残った。 100ショップ行った後、肉のハナマサに行った。 カレーのフレーク1kgと材料と気になってプロが使う納豆を買った。 「トクバイというアプリで肉のハナマサの最新情報をゲット」というポスターがあって、インストールした。

昼ご飯は、さつまいものカレーを作って食べた。

15時から19時まで

rubyで絶対pathについて調べた! Dir.glob()を使うときは、パスを絶対パスに変換してから – 山本隆の開発日誌

様々なディレクトリのパスを取得する/パスを加工する | まくまくRubyノート

ターミナルでやったが順番が違う。

まだ順番が違うみたいだな。。下記は失敗コード。

class LsCommand
  def call
    file_join
  end

  def transpose_test
    a = []
    a << test
    a.transpose
  end

  def file_join
    trans_pose.join("")
  end

  def trans_pose
    slice.transpose
  end

  def slice
    a = []
    just.each_slice(3) do |x|
      a << x
    end
    case
    when a[-1].size == 3
      # 何もしない
    when a[-1].size == 2
      a[-1].push(nil)
    when a[-1].size == 1
      a[-1].push(nil, nil)
    end
    a
  end

  def just
    a = []
    not_option.map do |x|
      a << x.ljust(24)
    end
    a
  end

  def not_option
    Dir.glob("*").sort
  end
end
puts LsCommand.new.call

本場のlsコマンド3列の時の文字数が24文字と気づいたのは良しとするか。

夕ご飯はインスタントで博多ラーメン食べた。お湯入れすぎで微妙な味だった。ラーメン食べながらハイキュー!!というアニメを観た。

23時から25時まで

transposeの理解が足りてないことに気づいた!行が14行あり、14の要素ずつほしいには下記の通りすればいいと気づけて良かった!

Array#transpose (Ruby 2.7.0 リファレンスマニュアル)

a = []
just.each_slice(14) do |x|
  a << x
end

やったー!each_slicewhileで、ActiveSupportin_group_of ぽい処理をすることができた。

a = %W(aa, bb, cc, dd)
p a.class
p a.size
b = []
a.each_slice(3) do |x|
  b << x
end
while b.size < 3
  b[-1].push(nil)
  break if b[-1].size == 3
end
p b
(m・_・bp) 1:09 ~/Desktop/vsnote2.0/kadai/lsコマンド % ruby memo.rb
Array
4
[["aa,", "bb,", "cc,"], ["dd", nil, nil]]

感想

結構すすんで良かった!明日はarlオプションを連携させたい。