diary 8/7
It's hot today.
日報 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
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_slice
とwhile
で、ActiveSupport
のin_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
オプションを連携させたい。
2020/7/31
やりたい事
- カレンダーとボウリングプログラミングの復習
- lsコマンドの表示のさせかたを試す
- スタンディングデスクの時間を増やす
休憩中にやりたい事
- [x] yoga
- [x] HIIT
- [x] 昼飯と仮眠
- [x] 日記とログをまとめた記録を残したり投稿する
- [x] duolingoとDropsというアプリで英語の勉強
- [] softskillsを読む
振り返り
8時から11時まで
カレンダーとボウリングの課題の復習 CSSの課題の復習 Rubyの本を復習
- なぜ、配列と文字列を合わせる事ができるのかなと思ったら、とんだ勘違いだ。やはり、
.class
で調べる事がいかに大切かを改めて認識した。復習大切だと思った! - 復習してないから何度も同じ質問をしている。そういう自分に気づいた。
days = (1..31).map {|i| i.to_s.rjust(2)} #文字列だと思っていた。 ([" "] + days).each_slice(7) do |week| week = week.join(" ") puts week end p [" "].class p days.class
(m・_・bp) 10:45 ~/Desktop/vsnote2.0/memo % ruby memo.rb 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 Array Array
つぶやき
自分が書いたコードなのに忘れてる😅
学んできた事を思い出す事で、記憶の定着図れる。また、苦労してできるようになった喜びも思い出す事ができるからテンション上がる。
こちらの記事読んだ。 効率的に新しいことを学ぶ方法 - Kentaro Kuribayashi's blog
細部から入ると学習が遅いし、行き詰まって嫌になる。これが一番のポイント。
なるほどね。確かに。気持ちわかるかも!テニスの練習の時、細かい部分(振り遅れた時のウィンドミルで対処とか)はある程度上達してからじゃないと意味なかったな〜と思い出した。必要性があった時にそういう技術を覚えたかも。
ヨガやった。
11時から12時30分まで
やばい、勘違いして覚えてる。
p %w(日 月 火 水 木 金 土).class #=> Array 調べるまえはsuring型だと思ってた。
ボウリングプログラミングは最近やったから、復習してすぐに思い出せた! テスト駆動開発は今やると混乱するから、後の楽しみにとっておく事にした!
復習で他の人が書いたコード読んでると新たな学びがあって楽しいかも!一度、自分でも書いたコードだから、全然理解できないという事でもないし!
つぶやき
今まで早く卒業したいから、新しい事ばかり覚えて、振り返る事を疎かにしていたので、復習してみたらモチベーションあがっている自分に気いた。
全然Ruby基礎的な事、理解してない。ショック。自分の事をフォローするなら、業務に入る前に今のうちに気づけて良かった感もある。
コメントがたくさんある人のコードを読むと結構学びがあると知った!
13時から15時まで
これはSymbol
なのか
p (:aa).class p (:aa) puts (:aa)
(m・_・bp) 13:13 ~/Desktop/vsnote2.0/memo % ruby memo.rb Symbol :aa aa
class Symbol (Ruby 2.7.0 リファレンスマニュアル)
実用面では、シンボルは文字の意味を明確にします。`名前'を指し示す時など、文字列そのものが必要なわけではない時に用います。
Symbol クラスのメソッドには、String クラスのメソッドと同名で似た働きをするものもあります。
文字列の代わりに用いることもできますが、必ずしも文字列と同じ振る舞いをするわけではありません。
なるほど~
変数の勉強 変数と定数 (Ruby 2.7.0 リファレンスマニュアル)
つぶやき
頭の中で処理をイメージしながら、コードを読むと理解の深みがでると気づいた!
16時から19時まで
String#index (Ruby 2.7.0 リファレンスマニュアル)
p "astrochemistry".index("r") # => 1 p "regexpindex".index(/e.*x/, 2) # => 3 p "character".index(?c) # => 0 p "foobarfoobar".index("bar", 6) # => 9 p "foobarfoobar".index("bar", -6) # => 9
これよく間違える
fare <= ticket.fare # <<と<=
演算子の勉強 Rubyで使われる記号の意味(正規表現の複雑な記号は除く) (Ruby 2.7.0 リファレンスマニュアル)