ひとしれずひっそり

主にソフトに関することをメモしていきます。過程をそのまま書いていたりするので間違いが含まれます。鵜呑みしない様に。

Duolingo 130日

Duolingoの連続記録が130日を迎えた。
最初の何週かは連続フリーズで2、3日繋いだので実際は130日より少ないんだけど365日を目指したいところ。

リーグが10個あって、30名の中で獲得したXPの上位何名かが、上のランクに上がっていける。
130日にしてようやく最上位のダイヤモンドリーグに昇格した。

英語を学習しているというより、どうやってリーグを上がっていくかというのが目的になっている感じで継続できている。

ダイヤモンドリーグに上がるには5000XP近くは必要になる。
その時のメンバーの力量によって変わるので5000XPは目安である。
朝、昼、晩合わせて1時間半から2時間くらいやってる感じがする。

この先上位10名がトーナメントに進めるらしいが、これ以上時間をかけることはできないのでそこに上がっていくのは無理そう。
というかこの時間維持するのも大変なので、ダイヤモンドリーグに居続けるのも難しいと思っている。
ダイヤモンドと黒曜石リーグを行き来する感じになるかと思う。

課金すればもっと楽にできるんだけど。

肝心の英語であるが全然進歩は感じられない。
1年、2年後にどうかで判断しよう。

最近中国語も始めた。
最初は数字の読み方だったりするのでレッスンが簡単に終わりハートの回復に役立つ。
ダイヤモンドリーグに昇格できたのも中国語で稼げたからで、中国語も難しくなってきたので次回にダイヤモンドリーグ昇格する際は難しいかもしれない。

英語は1レッスン10分近くになる事もあって大変で、おまけにあと一問のところでハートが尽きてXPを獲得できなかったりするとがっかりだ。
中国語は発音がさっぱりなので発音のテストでは運任せな感じのところがある。

書いてる間に131日に更新した。


追記

初のダイヤモンドリーグは最下位30位の洗礼を受けて終了した。
流石にここまで登ってくるのは強者揃いで手を抜かない輩ばかりだった。
リーグに居残るのに5000XP近く必要そうだった。

undefined method ActiveSupport.deprecator がでた

Sinatraプロジェクトで更新しようとしたら以下のエラーがでた。

~/.rbenv/versions/3.1.3/lib/ruby/gems/3.1.0/gems/activesupport-7.1.1/lib/active_support/core_ext/array/conversions.rb:108:in `<class:Array>': undefined method `deprecator' for ActiveSupport:Module (NoMethodError)

  deprecate to_default_s: :to_s, deprecator: ActiveSupport.deprecator
                                                          ^^^^^^^^^^^
Did you mean?  deprecate_constant

ActiveSupportを一旦削除して再度入れ直して直った。
悪さしているバージョンのみ削除すればいいと思う(多分7.1.x)がbundleでインストールしなおせばいいかということで全削除した。

% gem uninstall activesupport

Select gem to uninstall:
 1. activesupport-6.1.4.1
 2. activesupport-6.1.7.2
 3. activesupport-6.1.7.3
 4. activesupport-6.1.7.6
 5. activesupport-7.0.4.2
 6. activesupport-7.0.4.3
 7. activesupport-7.0.5
 8. activesupport-7.0.6
 9. activesupport-7.0.7.2
 10. activesupport-7.0.8
 11. activesupport-7.1.1
 12. All versions

> 12

.
.

Continue with Uninstall? [yN]  y
Continue with Uninstall? [yN]  y
Continue with Uninstall? [yN]  y
Continue with Uninstall? [yN]  y
Successfully uninstalled activesupport-7.1.1

% bundle init

こちらを参照した

github.com

M5Stamp S3 (4)

久しぶりにPlatformIOでM5Stamp S3を使おうとしたら、M5Stack StampS3が追加されてるのを確認できた。

しかし、そのまま作成したらエラーがでた。
(スクショは撮ってない。)

開くとこの様なエラーが出る。

UnknownBoard: Unknown board ID 'm5stack-stamps3'

ググってみたらこちらがヒットし、単にPlatformIOをアップデートしてないからの様だ。
リンク先にアップデートの仕方が書いてある。

community.m5stack.com

ARDUINO_USB_MODEとARDUINO_USB_CDC_ON_BOOTを定義するとシリアルも使えた。

gist.github.com

前みたいにesp32-s3-devkitc-1を指定しなくても良くなっている。

Space Invaders(5) - 説明画面

SCOREなどの文字表示の後は説明画面を処理してる様だ。

Space Invaders Code

$0AEAから見てみる。

コメントを追っていくと

  • 1秒待つ
  • PLAYを一文字ずつ表示
    • splashAnimateが0なら上下逆さまになっているYを使う
    • splashAnimateが1なら普通のYを使う
  • SPACE INVADERSを一文字ずつ表示
  • 1秒待つ
  • SCORE ADVANCE TABLEを表示
  • 2秒待つ
  • 上下逆さまになっているYの場合はYをひっくり返すアニメーションを表示

アニメーションはややこしそうなのでまた今度

DXOpalでなんか表示したい (3)

作ることはないとか書いてたんだけどやっぱりやりたくなってしまった。

Space Invaders(1) - ひとしれずひっそり

Space Invaders(3) - DrawStatus / ClearScreen - ひとしれずひっそり

Space Invaders(4) - DrawScoreHead - ひとしれずひっそり

のDrawStatus相当まで実装。
Rubyそのままで作り込んでいけるのでDXOpalはすごい。

DXOpalのテスト · GitHub