なっぱ箱

ゲームとか読書の感想とか時々技術系の話とか

じぶん Release Notes (ver 0.31.10)

@a-knowさんの「じぶん Release Notes (ver 0.36.7) - えいのうにっき」が月次の振り返りにとても良かったので、ちょっと使わせていただきました


なっぱ(ver 0.31.10)がリリースされました。更新内容は下記のとおりです。

技術関連

イベント

  • 自動車免許の第一段階を修了しました
  • 葬儀に参列しました
    • ホテルに上着をわすれ、まさかの義兄に借りるという実績を解除しました🏆

買物

ゲーム

プレイ中

読書

読了

読書中

アウトプット

ふりかえり

Keep

  • 初crateをリリースすることができた
    • crate公開の手順を知ることができた
  • AWSを学びなおし始めることができた
  • 免許の第一段階を早めに修了する事ができた
  • ロックマン11をサクっとクリアすることができた
  • 満員電車がつらくて停滞していた読書を再開することができた
  • LS Miniを購入してスマートハウス化を進めることができた

Problem

  • 普段全く使わないため冠婚葬祭の準備等ができていなかった
  • 礼服をホテルに忘れるという大ポカをやらかしてしまった
    • しかもバスに乗り遅れそうになり早朝全力ダッシュでバスを追いかけるという始末
  • 技術書展に行くことができなかった。ぐぬぬ
  • 進めたとはいえスマートハウス化はまだ課題が多い

Try

noteの「ランキング設計はどうあるべきか?」を読んだ

Todoisの読物タグに突っ込んだまま読むのを忘れていたnoteの「ランキング設計はどうあるべきか?」を見つけたのでちょっと読んでみたので後から見返すように概要をメモ書き。元記事は下記の3つ。

note.mu

note.mu

note.mu

PVランキングの本質

  • 本質的に収奪的な構造である
    • 収奪的 = 勝者がすべてを独占してしまう事
    • ランキングが上がる → 露出が増える → PVが増える → ランキングが上がる
  • 階層(クリエイターの地位)を固定する
    • ランキング常連になる → フォロワーが増える → PVが増える → ランキング常連を維持する
  • 収奪的なシステムがもたらすもの
    • 記事ごとの露出格差の拡大
    • 同様にフォロー格差の拡大と階層固定
  • 格差が拡大することによって新規ユーザーにとって極端に不利な状況発生する

公平で分散的なランキング構造

  • そもそもとして競争原理として格差は当然だが、その格差を極端化したり固定化するシステム設計はよくないという話
  • 実装する場合はこれらの2つを解決する必要がある
    • ランキングは注目を独占してはならない
    • ランキングのトッププレイヤーは新陳代謝しなければならない

正しいランキング設計のためにどうするか

  • 「ランキング」以外の名称を用いる
  • 時間による重力的な減衰モデルを用いる
    • 投稿されてからの経過時間に係数をかけ合わせてマイナスのスコアにする
  • 読了率を加味する
    • こうすることでタイトルのインパクトだけで注目を集めたものは評価が低くなる
    • この手法は階層固定性そのものは解決しないことに注意
  • 順位のシャッフル
    • 単純に上位XX位などでシャッフル表示
    • 上位XX位間の格差は是正できるが、「ランカーであること」そのものの是正はできない
  • 上位XXXX位からランダムにXX件を抽出する
    • ランキング範囲を拡大しその中からランダムに抽出する(500位内から100件など)
    • ランキングの収奪性、階層の固定化どちらも軽減できるが、軽減しすぎてしまう場合もある
      • 格差を完全にフラットにすると良いコンテンツである意味がない
  • ランダム抽出時に、スコアに応じた重さを与える
    • スコアが高いほどランダム時の出現率を高くする
    • パラメーターの変更で柔軟にコントロールできるのが強み
  • 小選挙区制を導入する
    • カテゴリ単位などでランキング作成して合算
  • 比例代表制を導入する
    • 小選挙区ごとのユーザー人口を加味してランキングの選出をする
    • メジャージャンルであるほど多く、マイナーであれば少なく
  • 2つ以上のスコアをブレンドする
  • ランキングに複数のユーザークラスタブレンドする
    • 新規ユーザーとベテランユーザーなどを混ぜ合わせてランキングを作成
    • 階層の固定化是正にきく
  • 人のキュレーションをブレンドする
    • 手動調整。バランス調節ができるが依怙贔屓もできるため慎重に
  • PVなどスコアに、コンテクストに応じた重み付けを行う
    • TwitterなどのSNSからの流入は加点を1/10とすればバズった影響を極小化できる
  • ペイジランクを導入する
    • Googleラリー・ペイジ提言の「良い記事を描いてる人がライクしている記事は、良い記事」といったルール
    • 精度が高くて使い勝手もいいが、ルールをハッキングされやすいのが難点
  • 友達の読了率、スキ率からランキングを生成する
    • 自分をフォローしている人、友達の評価からランキングを生成する
    • 精度が上がりそうだが同じような価値観で固まってしまう
  • 読者のリアクション率を加味する
    • 「リアクション数/読了率」といった式を使うとスコアを高めることができる
    • ただ良質で少数のユーザーを抱えていると有利だったりするので他のアルゴリズムと合算が必要

だだーっと記事の中身を羅列しただけだが、今後もしランキングの作成を行うことがあった場合は改めて参考にしようと思う。 この記事自体はnoteのようなコンテンツ投稿サービスでの話なので、他種サービスになると他の手段の検討の必要は出てくるとは思うけども。

おっさんたちがかつて熱中したラグナロクオンラインはまだあったのだ

ラグナロクオンライン(以下RO)。

インターネット黎明期にネトゲにいそしんでいた人なら1度は手を出したことがあるんじゃないかと疑うくらいクッソ有名なMMO。 このBGM聞いて「あぁーーー!!!!懐かしいーーー!!!」ってなった人とは絶対いい酒が飲めると思う。

www.youtube.com

そんなROを久方ぶりにやってみた。 本当は細かく色々昔の思い出書いたり今回やってみた感想を細かく書いていきたいけど、きりがなくなるのでただの殴り書きだけしておこうと思う。

なんで今更RO?

「キャラのレベルを一気に130まで上げてくれるブースターチケットを配布してるらしい」ってのに釣られました。はい。

どうやらワールド倉庫なるものが実装されて(むしろ今までなかったの・・・?)、そのキャンペーンで配っているとかなんとか。 それに新規アカウントなら14日無料だしね。気まぐれ気まぐれ。

ちなみにブースターチケットについてはここ参照。 ragnarokonline.gungho.jp

今のROの感じ

  • ノービスはレベル上げしなくていい(チュートリアル進めると1次職になれる)
  • お使いクエストとか討伐クエストがたんまりあって狩場とか考えずにレベル上げ出来る
  • それらのクエストこなせば装備もちゃんと適したのもらえる
  • なんかインスタンスダンジョンがめっちゃある。さすが長いだけあってコンテンツ多い
  • でもやっぱりROの雰囲気はそのままな気がする。

昔は「ボス = MVPボス = ソロ討伐なんて夢のまた夢」みたいな感じだったけど、低ランクのインスタンスダンジョン行けばボスっぽいのとか普通にいて楽しい。思い出補正の分余計に。

あとはめっちゃ過疎ってるのかと思ってたけど、どうも一番にぎわっているBreidablik(ブリザブレイク?)だと2000人くらいいてめっちゃビビった。プロンテラが昔やってた時みたいな露天状況になってるとは思わなんだ。

ブースターチケット感想

これってやっぱり「すでにプレイしている人」が行きたくても資産移動できなくて行けなかった別ワールドに移行するためのもの、ってのは感じた。

正直復帰勢がLV130の3次職になっても装備とかスキルの使い方も全く分からなくてどうしようもなくなる。金がないから店売り装備すら下手に買えないし。

金策ならローグ系やろ!」ってことでシャドウチェイサーにしてみたけど、

  • 装備が全くない
  • ほかの町に転送する金もない
  • それどころか倉庫を開く金すらない

という金欠状況になった結果、裸でプロンテラ周辺のポリンを叩いてはした金を稼ぐというやってることはかつてのRO初期と変わらないというノスタルジック感をひしひしと感じる復帰プレイになった。

ブースターチケット効果で人が多いのか、サバキャンされまくってログインゲーになったり、プロンテラの町中が重すぎて移動できないとか、なんか大昔にタイムリープしたかのような感覚はめっちゃ楽しかった。

なお、シャドウチェイサーはポリンがドロップしたナイフが初武器となりました。しょぼい。 さすがにそのままだとどこにも行けないから、最終的には金策の準備をするために別途商人を作って斧背負ってサベージ狩りしてました。たのちい。

そんで?

おっさんの思い出補正がでBGMが最高 of 最高だし、雰囲気とかグラフィックもやっぱり好き。

ネット黎明期からなんだかんだで生き延びたROはいろいろ変わってはいたけど、おっさんの心に残ってる思い出補正をくすぐるには十分なほどROはROしてるんだなって感じた。

とりあえずしばらく(少なくとも無料期間は)遊んでみようと思う。 昔は倒せなかった敵を倒したり、インスタンスダンジョンに行ってみたり、昔欲しかったけど取れなかったカードをだらだらフィールド狩りして狙ってみたりとか。

なんか成果があったらあとでまとめておこうと思う。

新しく言語を学んだ時の課題として「ファミコンエミュレーターでHello, World!」を推したい話

TL;DR;

  • ファミコンエユレーターでHelloWorldやってみた
  • 新しく言語を学ぶ or 久しぶりにやる言語のウォームアップに勧めたい
  • ファミコンのHelloWorldは割と実装が必要なことがあってやりごたえがある
  • ただ資料面を充実させるのが課題?

はじめに

以前@bokuweb氏の記事を参考にRustでファミコンのスプライトを書き出すツールを書いてみたんだけれども、そこで終わりにするのがもったいないんでサンプルROMのHelloWorldが動くくらいの最低限なエミュレーターをちょこちょこ書いてた。 これが割とボリューミーで時間はかかったけど、最近ようやっと出来上がった感じ。

HelloWorldが動く最低限のファミコンエミュレーターリポジトリはこれ

GitHub - yamash723/nes-hello-world-rust: hello world for the nes by Rust

去年から勉強していたRustのトレーニングとしてなんとなーくやってみたんだけども、終わってみれば「これ勉強の題材にちょうどいいのでは?」と思ったのでこの記事書いてます。

公式チュートリアルのその後

新しく何か言語を初めて見る時は、最初に公式のドキュメントに目を通す → そのままチュートリアルってのが誰しも最初にやることだと思うんだけれども、わりとここで手が止まっちゃうってのも多いのではないのかなと。

ちょうどQiitaのランキングにこのような記事が上がっていました。

初学者用チュートリアルの選択肢を探ってみた

何か新しい言語とかフレームワークを学ぶ時ってやっと構文や組み込み関数覚えたところで目的先行じゃない場合広い海原にほっぽりだされるわけですよ。次何すればいいんだろう?と。

うーんわかりみが深い・・・。 記事で紹介されている初学者用チュートリアルは鉄板メニューでこんな感じ。

うんうんこんな感じだよねー、というラインナップ。 公式チュートリアル卒業後に軽く嗜むには妥当な感じ。

ただ、このあたりを終わらせたあとって何作ったらいいか悩む停滞期に入ってしまうことが多いんじゃないかなーと(何度かそういった経験が・・・)

数時間でササッと終わってしまうほど軽くなく、かといって機能てんこ盛りのガッツリ系とまでは行かない。そんなちょうどいい選択肢としてファミコンエミュレーターのHelloWorldを提案してみたい。

新言語の習得時以外にも「昔やってた言語が気がついたら結構別物になっていた」みたいなときのリハビリとしてやってみるのもいいんじゃないかなと思う。

課題

ハードウェア仕様はWikiがあったりして充実しているし、GitHub上にファミコンエミュレータのソースはたくさんあるので参考資料は困らないけれども、最初の最初は結構噛み砕いた図解交えたチュートリアル的なものがないと挫折するパターンもあるんじゃないのかなぁ、とはちょっと思っている。

この辺はどうにか解説本みたいなのを作って技術書展デビューとかしてみたい(未定)

読了: SOFT SKILLS ソフトウェア開発者の人生マニュアル

SOFT SKILLS ソフトウェア開発者の人生マニュアル

SOFT SKILLS ソフトウェア開発者の人生マニュアル

技術者向けおすすめ本のなかでちょろちょろ名前を見かけていた本。通勤時間に読むのにちょうどいいかと思ってなんとなく買ってみたけどなかなか良書だった。

どんな本なのか

一言でいえばエンジニア向けライフハック本。

「良いコードを書くための本」ではなく、「良いソフトウェアエンジニア」になるための本である

という本の目的のとおり、実務的な「良いコードの書き方」や「より良い設計の仕方」は一切ない。 あるのはひたすら「エンジニアとしてより良い生き方をする」ためにどうすべきか、といったライフハックの解説。

  • 書いてない事
  • 書いてあること
    • キャリアの選択肢
    • 学ぶ力をどう鍛えるか
    • 給与アップの交渉方法
    • 資産運用
    • 筋トレの仕方

これらのライフハックがそれぞれ章立てして独立されているので、興味がないものや知っているものがあれば飛ばしてしまえるのがいい所。読むときの区切りがつきやすくて気が楽。

ちなみに本のタイトルである「Soft Skill」とはコーディング能力といったものではなく、コミュニケーション能力だったり問題解決力といったものを指すらしい。対義語は「Hard Skill」で弁護士資格とかIT技術とか。

読むのを勧める人

エンジニアとしてある程度働いてきけど将来設計がぼんやりしてる人にはいい刺激になると思う。 なんとなく停滞感を感じる人であれば本の内容が直接刺さらなくても考えを変えるきっかけにはなるのではないかな、と。

個人的に面白かったところ

全体的に面白くてためになったのだけれど、その中からいくつか抜粋

履歴書作成は専門家に任せてしまえ


履歴書は自分で書くってイメージしかなかったので、言われてみれば確かにぶん投げてもいいよね。本当にやるかは別として。

自分自身の管理システムを作る


自己管理を「自分をキャラクターとして、毎日の行動を管理するゲーム」として考えるとよい、というテクニック。 普通に考えるより、自分の行動原理を考えつつ効果的な自己管理ができそうな気がする。

学ぶための10ステップ


新しいことを効果的に学ぶ方法。具体的でとても良い。 最初に本を読むことから始めるのは愚行とのこと。まずは触ってみて、そのあと本を読み込むほうが効率が良い(最初に本を読むのはやりがち・・・)

  1. 全体像をつかむ
    • まずは全体像をつかまねばプランは立てられない
    • ブログなどの情報をざっと眺めて全体像を把握する
  2. スコープを決める
    • 「簡単なコンソールアプリを作れるようになる」といった学ぶスコープを決める
    • 自分の充てられるリソースと乖離しないようにするべき
  3. 成功の基準を決める
    • 「基礎を習得する」といったのは曖昧過ぎる。愚行
    • 「基礎機能をすべて使いったコンソールアプリを作れるようになる」といった具体的なものにするべき
  4. 参考資料(リソース)を見つける
    • ブログ、書籍、カンファレンスなど資料をひたすら集める
  5. 学習プランを作る
    • 定めた基準をクリアするための道筋を立てる
  6. リソースをフィルターにかける
    • 集めた資料から学習プランに必要なもののみに絞り込む
  7. 使い始められるようにする方法を学ぶ
  8. 遊びまわる
    • 覚えたことで実際になにかをしてみる。
  9. 役に立つことができるまで学ぶ
    • 遊びまわった時に出てきた疑問を参考資料を使って解決する
  10. 教える
    • 学んだことをブログにまとめたり、発表をするなり、何かしらのアウトプットをする
    • このステップを省いてはいけない

ポモドーロテクニック


短期間の集中と細かい休憩を挟むことによって生産性を上げる手法。 なおポモドーロとはイタリア語でトマト。このテクニックの発案者がトマト型のキッチンタイマーを使っていたのが由来だとか。

「25分集中して5分休憩」の短期集中と小休止を1ポモドーロとし、1日でどれくらいのポモドーロを完了できるかが生産性の指標になる。1日8時間労働として最大16ポモドーロ。実際にやってみるといろいろな邪魔が入って10ポモドーロも行けばいいほうとのこと。

すぐ始められそうでよさげなテクニック。ほかにも生産性向上についての話は色々と載っている。

まとめ

言語、分野にかかわらず読んで楽しい本じゃないだろうか。気になる章だけつまみ食いできるので気が楽だし、お試しで買ってみてもいいと思う。 なお、筋トレについても語ってる(というか筋トレの仕方まで解説してる技術本て初めて見た)のでマッスルエンジニアリングに興味がある人もぜひ。

次はこの前セールで買った「エリック・エヴァンスのドメイン駆動設計」を読んでるけど、読み終わるのはしばらく先になりそう。

エリック・エヴァンスのドメイン駆動設計

エリック・エヴァンスのドメイン駆動設計

読書を強制させることによるモチベーションへのデバフ

最近、なんだか本を読むのが楽しい。

少し前までは技術書であっても読み始めるまでに精神的な壁がなんとなーくあって本棚に積んじゃうことが多かったのだけれど、ここ最近は毎日何かしら本を読んでいる。 なんというかめっちゃ楽しい。蜘蛛の巣が張っていた脳みそに情報がもりもりインプットされていくのを感じる。

こうなった原因の1つは転職によって自転車通勤から電車通勤になったことによる暇な時間の増加なんだけども、気持ち的な変化もわりと見逃せないレベルだよなー、と思ったのでちょっとまとめておこうと思う。

強制読書による地獄

以前の職場では読書に関してこんな2つの制度があった。

  • 図書購入補助制度
    • 純粋な福利厚生
    • 業務に関連する物(技術書)とかであれば月5000円までの補助がでる
    • 会社ではなく個人の所有物になる(非常にありがたい)
  • 課題図書制度
    • 全社員への義務(業務時間外)
    • 会社指定リストの中から上長が選んだ本を毎月1冊読み、レポートを提出(全社展開)
    • 期限までに提出しなかったら昇給停止
    • 提出の遅れも賞与/昇給評価に影響

2つめがヤバい。何がヤバいって全部ヤバい。
指定リストの内容もさることながら、罰則がめちゃくちゃモチベーションを下げる。

お判りいただけるだろうか?この数年たっても苦しめられてる感。 そして実際に評価に影響でた時はこんな感じの会話が。

上司「んー、業務内容は評価高いんだけどね、課題図書提出遅れたから評価1段階落としね」

俺「(マジで評価下げやがっ・・・た・・・)」

こうかはばつぐんだ!モチベーションががくっと下がった・・・!! モチベーションへのデバフとしては非常に効果的!読ませる本も自己啓発本だったり社畜の鑑みたいな内容の本だと倍率ドン!

なお、いろいろな制度が乱立してすぐに廃れていくこの会社においてこの制度、なんと4年くらい続いてしまったのだ。これほど悲しいことはない。 最初は「どうせすぐになぁなぁになって終わるやろ」と思っていたがまさかの長寿制度化。その結果根付いた読書への忌避感は心の中から読書熱を消し去るには十分すぎた。

地獄からの解放

転職 → 電車通勤で時間あるな → 本読みてぇな!!!

てな具合で転職後3ヵ月くらいで自然に読書熱が帰ってきた。 特に「本を読むようにならなきゃだめだ・・・」とかそういった自己意識を頑張って変えたわけでもなく、なんとなーく自然にそんな感じになっていったのである。

やっぱり「本を読むことを強制されている」状態からの解放が大きかったんだろう。

「強制でも読書させられてたおかげで読書が習慣づいてるんじゃないの??むしろ感謝したら??」

とか誰かが言いだしたらガンジーパンチレベルなんだけれど、それな事実はないとここで断言しておく。と言うのも・・・・

なんと後半2年くらいは課題図書を読んでいなかったのである・・・・!!

あまりのくだらなさにある日「もうレポート全部でっちあげでいいや」と決めたのだ。そして課題図書を読まなくなった状態でも他の本はなかなか読む気にならなかったので、そのころにはもう「読書 = 苦痛」だと脳が覚えてしまったのかもしれない。

実際に本を読んでいたころの本の内容は一切覚えてないし、結局身についたのは目次とあとがきとAmazonのレビューを見てそれっぽくレポートをまとめ上げるダメな学生みたいな能力だけ。こんな誰も幸せにできない悲しい力なんて・・・・

まとめ

社員の知識レベルの底上げ、平均化を図るといったある程度納得できる理由はあるし、インプットすることの重要さもわかる。思い返してみれば「割と面白そうかもしれない」というものもリストには入っていた。お金を出して社員の教育をするという姿勢は一定の評価をしてもいいのだろう。(業務時間外であることとマイナス評価はどう考えてもNG)

けれども罰則で縛るのは良くなかったのだ。きっとあのころの自分は電気ショックでお仕置きされて萎縮する猿状態だったに違いない。猿に本当に必要だったのはきっとバナナという報酬。褒めてやらねばなんとやらと山本五十六の名言もあるし、もっとポジティブな制度だったら成功していたのかもしれない。せめてエンジニアは技術書とか「おもしろそう!読みたい!」と思えるようなラインナップだったなら・・・・いや提言して却下されたけどね。

もしかしたら今の読書熱も猿時代のただの反動かもしれないので、火を絶やさないようにガンガン本を読んでいこうと思う。 なにかおすすめの技術書なり文庫なりあったら誰か教えて。

今日はこんな所で。

前職版「ブラック企業チェックリスト」

delete-all.hatenablog.com

なかなか破壊力のある記事を発見。

おもしろそうなので試しに前職バージョンで作ってみる。


  • 「暦上で連休の場合はつなげて有給を使用してはいけない」という有給取得の謎ルールが存在する
    • 例: 金土日の連休あるから月曜も有給にしよう -> NG
  • 頻繁に組織改革がおこなわれる
  • トップが「社員一人一人が経営者」と言い出す
  • 社員旅行の費用は会社が半分出してくれるがもう半分は自己負担
  • 「社員旅行は自由参加」という名目だが、不参加にしようとすると圧力をかけてくる
    • 例: 「みんな行くんだから参加しないと」
  • 交通費自己負担の強制参加運動会が存在する(休日に開催)
    • これは後年自由参加になった
  • 毎日ラジオ体操をさせられる
  • 始業30分以上前に出勤するように強要される
    • 「せめて30分前までには出社しろ。俺は1時間前くらいにはきている」
    • 後年そう言ってくる人は少なくなった
  • 海外長期出張した際、保険の効かない交通手段での通勤を強要される
    • 問題起きても自己責任、みたいな念書へのサインを迫られる
  • 「台風だろうが人身事故だろうが業務に支障が出ないように出勤しなさい。どのような理由であれ遅刻/欠勤です」
  • さらに遅刻3回で欠勤扱い
  • 基本給は徐々に上がっていくが賞与がどんどんと減っていく
    • 最終的に6年たってもほぼ年収が変わっていないミラクルが起こる
  • 毎月会社に指定された本(自己啓発本など)の読書感想文提出を義務づけられる
    • 読書は業務時間外
  • 提出しない場合は昇給停止
  • 未経験の中途をどんどん入れてどんどん現場に入れてどんどん辞める
  • 退職後に恨みつらみを垂れ流すSNSアカウントを作る人が存在する
  • 朝礼時に体調不良で意識が飛んで倒れる人が出ても周りは苦笑
    • なお意識取り戻した後そのまま仕事を続行

いやこれ42個も出てこないわ