HHKB Professional HYBRIDを買って半年ちょっと使っている話。

イメージ
昨年の9月に購入しましたHHKB。 一時期英語配列のキーボードを使っていましたが、今回は日本語配列をチョイス。 PFU キーボード HHKB Professional HYBRID 日本語配列/墨 良かったところ タイピング時の打鍵感、音が心地良い     これがかなりデカい。直近の生成AI周りの発展のおかげで直接タイピングしてコードを書くことは以前に比べるとかなり減ったけど、それでも全然使うのでここのストレスがないことは大きい。 ただ、これも人による部分が大きいと思う部分なので事前に触れる箇所があれば触った方が良い。 HHKBの公式サイトにタッチ&トライスポット というページがあるので実際の打鍵感や音を確認したい人はそこで検索してのをおすすめします。 僕の場合、当初は HHKB Studio を買おうと思って秋葉原の遊舎工房というお店で触らせてもらいましたが、正直打鍵感と音の感じが好みではなかったのでボツ。 横に置いてあったこっちのキーボードを触ってみたらかなりしっくりきた。他にも色んなキーボード(同モデルの静音タイプとか)が置いてあったけど、長いこと使うなら手に馴染むモデルが良いと思ってそのまま購入という流れ。 あと、個人的には気にならなかったけど、色んなところのレビューを見る感じ音に敏感な人と同居してるとか赤ちゃんがいる家庭とかだと少し苦情が出るかも、なくらいの音が出るのでそこは注意すべき。多分そういった人向けに静音モデルがあると思う。 Bluetooth接続できるデバイスの数が多め これもかなりポイント。仕事用のPCにもプライベート使っているPCも両方ともクラムシェルモード(PCを折りたたんだまま外部ディスプレイに接続して使用するモード)で使っているので、仕事を始めるタイミングや終えて切り替えるタイミングで物理ケーブルの切り替えに手間が掛かるのが嫌だった。 HHKBを使用する前に使用していたMagic Keyboardなんかは複数デバイスに対応していなかったため、いけてないなと思いつつ使っていた。 今はコマンドで接続先を切り替えるだけなのでそのストレスは大きく減った。お高いキーボードであれば標準的に乗っている機能なんだろうけど、なんでMagic Keyboardはこの機能がないんだろう・・・ 良くないところ 割と頻繁な頻度で単三電池...

C++のstd::lower_bound()とPythonでの話。



けんちょん本を読むと・・・

けんちょん本ってAmazonで検索すると出るんですね。知らなかった。

本題に戻りますが、この本には二分探索法の章があります。

C++の話

その中でC++のライブラリであるstd::lower_bound()を使う際に得られる情報について記述があります。

std::lower_bound()の使用自体はソート済みの配列akeyが存在するかという内容のライブラリです。
もう少し具体的に記述すると、a[i] >= keyという条件を満たす最小の添字iを返す(この時の計算量は配列Nに対してO(logN))、というものなのですが、これは単に配列の中に存在するか否か、だけのライブラリではないという事みたいです。

例えば、

  • 配列のなかにkeyが存在しない場合、与えたkey以上の値の範囲での最小値を取得

  • 配列のなかに値keyが複数あった時、その内の最小の添字を取得

といったような使い方があるようで、これについて学んだ時、Pythonで似たようなライブラリは無いのかパッと思い浮かばなかったので、調べてみました。

Pythonの話

Pythonではbisectが該当するようで、何度か使ったことはあったが詳しい仕様を思い出せなかったので、実際にドキュメントを読みながら使い方を見てみました。

import bisect

a = [3,8,11,18,27,31]

bisect.bisect_right(a,20) # 4

print(bisect.bisect_right(a,11)) # 3

print(bisect.bisect_left(a,11)) # 2

この配列に18を足してみましょう。するとbisectは以下のような振る舞いをします。

import bisect

a = [3,8,11,18,18,27,31]

bisect.bisect_right(a,18) # 5

bisect.bisect_left(a,18) # 3

lower_boundはbisect_leftに、upper_boundはbisect_rightと同様の振る舞いをするようです。

様々な使い方ができそうです。気になる方はぜひけんちょん本を買いましょう。損はありません。むしろ得します。

コメント

このブログの人気の投稿

【OSLog】How to log a Swift project

Principles of UX/UI Designでこんなことを学んでいるよ 第一週 User-centerd design①

Swiftで使うQueueのテンプレート