- i < j という制約下で i関係の数値 - j関係の数値 の最大を求めるタイプの問題
- 1-dimention なら one-pass で実現可能。 i関係の数値と i関係の数値 - j関係の数値を別に保存し、毎回i関係の数値 - j関係の数値を計算して最大値を更新してから i関係の数値の最小を更新していく。
今日の学習メモ
- こんだけ考え抜いてプロダクト(ゲーム)を作るのはさぞ楽しくてやりがいがあるだろうなあ
- 後から英語に直すと文字数の都合でデザインが崩れがちなので最初から英語でUI設計するのは興味深い
キーボード買いました<ロジクール MXKeys Mini>
筆者のキーボードの好みや求めている条件とかは前回の記事を参照してください。もし理想が同じようであれば MXKeys Mini はおすすめです。
MXKeys はもともと上記記事に記載のある自分のこだわりをほぼ満たしており、この時もかなり強力な候補だったのですがテンキーがついており横幅が広いのがネックで泣く泣く断念しました。それが久々に見てみたらなんといつの間にかミニが出てるじゃないですか…! 正直K780に大きな不満はなかったのでいますぐ買い替えなくてもとは思っていたのですが色々あってMXKeys Mini を買ったので感想を書きたいと思います。
そういえば、買う前に軽い気持ちで検索したら自分と全く同じ理由で K780 を買っててそこからミニに乗り換えた人が多くてちょっと面白かったです。キーボードの好みが同じそう。
感想としては素晴らしいに尽きます。一生これでいいです。以下特に好きなところです。
- K780はキーが丸いため、四隅を稀にうち損ねることがあるのですが、MXKeys Mini はスタンダードな形なのでそれがありません
- キーの表面がうっすら滑らかに凹んでいるのですが、指が吸い付く感じでとても気持ち良いです
- スタンダードに四角いキーだけど、ふちは border-radius ついててビジュアルが綺麗(個人的な好み)
- 印字の配置やスペース間が綺麗(個人的な好み)
- キー間の隙間に無駄がなくコンパクトだし軽い
- Fn キーの高さが K780 よりちゃんとあって打ちやすい
強いていえば気になるところは、これはどっちかというと K780 の配置のせいなんですが K780 はスペースの横幅が少し短く、それに指が慣れてしまっているためちょいちょい変換を押すつもりでスペースを押してしまうことです。これはそのうち慣れると思います。
ちなみに、ミニの発売を少し知る前に初めて RealForce を試す機会があったのですが、あまり合いませんでした。数日使って確かに打っててポスポス心地よいのですが、指の高さをあまり動かさない打ち方が身に染みているのでどうしても指が突っかかってしまい、意識すると今度は翌日指の関節が痛くなったりしてやっぱりうっすーいキーボードが好きだなと思いました。ただ気になってはいたので試せて良かったです。あと重いことを知らなかったのでびっくりしました。
UOL 最初の学期の Final です
前回の記事で書いた通り、授業は年明け頃にはほぼ終わっててあとはまったりFinalの課題をやっていました。
Intro to Programming I
- 一番初めに課題は終わったけど正直これで十分かはよくわからない、があまり作り込んでも学びがなさそうな感じがしたのでほどほどにしました。課題は手を動かすコーディング系で中間もファイナルもベースは同じものに機能を足し続けていく感じなので一番やりやすかった。
Web Development
- 中間のチームプロジェクトが大変で、なかなかメンバーが浮上してこないので年末までほぼ1人で進めていた。それはそれでこっちの都合のいいように進められちゃうのである意味楽だったけど、締め切り一ヶ月前くらいになって急に(成績がかかっているからだと思う)アクティブになってきたメンバーがいて、そこから既に終わっているもののひっくり返しとかが少し発生してしまった。自分からいついつまでにやるという割にそれが守られないのは正直少しフラストレーションを感じたけど、それでもやっぱり人と進めると1人でやるより最終成果物は圧倒的に良くなるのでなんだかんだ感謝しています。
- チームプロジェクトの振り返りエッセイは正直ここに時間をかけても、と思ったので成績つくけどあまり労力をかけていません。そういうのもあってトータルの成績はまずまずくらいになりそうだなと予測。
- ファイナルは自由に作れるのでトータルだと一番時間をかけました。中間とは独立しているので並行して少しずつやっていた感じ。評価の基準に明確なレスポンシブデザインであることが入っていて、評価基準を意識することで今までやってないようなデザインをやってみようとか、できるだけ各ページデザイン変えようとか、ライブラリを使わないとか縛りが生まれて勉強になった気がする。
Discrete Mathmatics
- 中間で罠だったのが、早く進めすぎて、早めに時終えていた中間試験が実は先学期のもので後々更新されてしまってやり直しになったことでした。勉強にはなったと思うけど、気づかなかったら違うものを提出していた可能性もあるので次から数学系の試験は早めにやりすぎないようにしようと思います。
- Finalはコロナのことがあるので自宅受験。テストセンター面倒なので今後ももうこれでやって欲しい… Final は日時が細かく決まっているので、これもやっぱり早めにコース済ませてしまうと忘れてしまって良くないですね。
- ちょっと面白いのが、提出後なんとなく久しぶりにアルゴリズムの復習でもするかと思ってCourseraのコース 見てたら初っ端からDMでやった内容が出てきて進研ゼミでやったやつだ!みたいになったことでした。正直 Kruskal とか Prim とかはまだわかるとして、 equivalence class とかどこで使うんだと思っていたのでなるほどな〜〜と腑に落ちました。勉強ってこういう点と点が繋がる瞬間が楽しさの素ですよね。
IT Support provided by Google
前回の記事で受講を終えているものですが、次タームの履修登録の時に合わせて単位持ち込み処理しました。 無事終わったので1授業分ゲットです。
履修登録もなんとか終わったので、4月からは2学期目です。
今日の学習メモ
使わないので何回読んでも都度忘れるから定期的に勉強し直さないといけないビット演算
- 2の補数の表現において、一番左のビットは符号ビットと呼ばれ、これが1の時は負の数になる
- そのため、32 bit で数の表現をする場合、最大の正の数は一番左のビットを0とする必要がある
0b01111111111111111111111111111111 === 2147483647
- 正の整数を負の整数に変換するときは正の整数から1 を引いて、その後全ビットをひっくり返す
- NOT: 全ビットをひっくり返す
- AND: 一部だけを取り出したい時(マスク)に使う。欲しい桁のところだけ1にして残りは0にすればいらない桁のところは全部0で出てくるから。
- OR: 上書きとしてフラグの適用などに使う。フラグの部分以外0にしとけばフラグのところ以外は元の数値のままだから。
- XOR: あまり使わない。両方の数が合わない時だけ1になる。