Retired Colourman

何度も朝がやってくる

MacでM570の戻る/進むボタンをChromeとFirefoxで両立して使いたい

MacでM570(トラックボールマウス)の戻る/進むを使う場合はLogicoolのサイトからソフトをダウンロードする必要がある。

support.logi.com

んで、インストールして設定からLogicool Control Centerをクリックして設定してあげれば使える。

f:id:sh4869:20200601224453p:plain

なんだけど、このときにどうやら実質的に《⌘+→》《⌘+←》を押したのと同じことになるらしい。

そのため、Firefoxはページ戻る/進むのショートカットが同じだからいいのだけど、Chromeのショートカットは 《⌘+「》,《⌘+」》なので*1このボタンが効かない。

のでMac側で書き換える必要があるというお話。

f:id:sh4869:20200601224243p:plain
Mac側のキーボードショートカットに追加

他にいい方法があったら教えて下さい。


余談だけど最初「⌘+→」をミッションコントロールのスペース切り替えに使っていたので、進む/戻る押した途端スペースの切り替えが発生してめっちゃ驚いた。

*1:なんだこの最悪のショートカット

プログラミング言語のパッケージシステムとそれを中心にしたコミュニティについての研究がしたい

Scrapboxをprivateにしたのであった文章を一応持ってきた。書いたのが2017年とかなので微妙に今と違う部分があるが適当に読み替えてください。

概要

  • プログラミング言語におけるパッケージマネージャと,そのコミュニティについて
    • 適切に分類し
    • どのようなパッケージマネージャ,コミュニティが発達していくのかといったことを調べ
    • 最終的には実際にその研究の理論を実際に運用し測定する
  • といったことをしたい.

動機

  • 僕の好きな言語にDartというものがある.Googleによって開発された所謂AltJSだが,その他のAltJSとは違い,DartVMというVMをブラウザに搭載最終的にはJavaScriptを置き換えるという目標によって作られた.しかし,VMをブラウザに搭載するという目標を諦めReadableなJSにトランスパイルするdev_compilerを作り,所謂他のAltJSと同じように使っていくことを目標に切り替わっていった.現在でも開発が続けられている.
  • 有り体に言ってしまえばDartは流行らなかった.反対に,Node.jsのパッケージマネージャであるnpmはどんどん発展していったように思う.そこでどのようなパッケージマネージャが発達するのか,ということをぼんやりと考えるうちに「発達するパッケージマネージャにはどのような要素があるのか」「そのコミュニティに何か特徴はあるのか」ということを実際に調査していきたいと考えるようになった.

今まで考えたこと・調査したことなどのメモ

  • パッケージマネージャシステムは図書館のような知識情報システムであるといえるのではないかということ
  • Image
     *  Pはパッケージ
     *  Hubはシステム
    
  • 細かな部分を全てふっ飛ばしてざっくりと書くとパッケージマネージャはこのような図で表せると考える事ができる.
     *  パッケージがHubに集められてきて,それがユーザーによって使われていく.
     *  もちろんどのように使うのかなどの方法はそれぞれ異なってくる.
    
  • このシステムにおけるHubを図書館に,Pを本に置き換えると図書館のシステムを表していると考えることもできる.こちらももちろん細部は違うが.このようにパッケージマネージャは知識情報としてのパッケージをあつかうシステムであるとみなせるのではないかと考えている.
  • 上の図はプログラミング言語のパッケージマネージャにかぎらず,apt,Homebrew,chocolateyといったソフトウェアパッケージマネージャや,UnityのAsset Storeなどに適用できるのではないかと考えている.

  • 図書館などの情報システムとの差異

    • パッケージマネージャと図書館を情報システムとして比較していく.
    • パッケージマネージャ全体と図書館などの比較
      • 扱っているものが情報であるか物理であるか
        • 本は物理的に存在するが,パッケージマネージャが扱うパッケージは多くの場合データである.データはコピーが可能であり,またパッケージマネージャで扱われるデータはコピーされることが妥当であるためこれは大きな差異であると考える事ができる.電子書籍を扱う図書館の場合は除く.
        • この差異によって生まれる違いとしては次のようなものがあげられると考えられる.
          • 貸出か取得か
            • 図書館を運用する上では,誰が本を借りているか,いつまで借りているかなどの情報はシステムを運営する上で重要であると考えられる.一方でデータある場合コピーが可能なため,貸出ではなくそれぞれユーザが取得(多くの場合はダウンロード)し利用することができる.一方で,そのデータが有料で扱われている場合コピー可能なデータをどのように守るかなどの問題が発生する.
              • パッケージを登録するのがパッケージ作者であるかそうでないか
          • 図書館はそれぞれの本を図書館の本として登録するために司書が活動している(はず).一方でパッケージマネージャーでは多くの場合パブリッシュ時にユーザーが登録情報について記載する
            • たとえばpackage.jsonみたいなファイルにメタデータを書いてそれがvalidかどうかを判断する,みたいな仕組みが多い
              • つまりここがユーザーの手に渡ると中央にスタッフが必要なくなる
              • 一方で質が保てるかみたいな問題もある
              • データフィールドの設定
                • パッケージマネージャシステムの多くはパッケージの作成者(公開者)に対しそのパッケージに関する情報を公開時に求めることができる(例:パッケージ名,パッケージの説明,パッケージの作者情報(メールアドレス,名前,その他サービスのアカウント名),依存関係,変更記録など).これはシステムを作成する上でどのようにそのパッケージの情報を扱うかということを設計しやすいという利点がある

研究の流れ

- 基礎知識の補充
  • 現状情報科学に関するある程度の知識はあるため,必要なものを考える
    • 図書館情報学
    • 社会学
      • もともとどういう分野か理解できていない部分があるのでそこを埋めてからじゃないとなんともいえない
      • 社会学ではなさそう
    • 社会心理学らしい
    • パッケージマネージャー関連の調査
    • 評価方法の確立
    • 実装

相互理解の前提、本当の相互理解、消耗

いくらでも話されていることだと思うんだけど自分自身が結構前に実際に体験してから言語化していなかったのでメモ程度に。

相互理解、という言葉を僕が使うとき、それは相手の意見に納得する・賛成するという意味ではなく「存在する『事実』とその『解釈』によって『意見』が出てくる」ということを理解する、ということになる。おそらくインターネットで議論をやりなれている多くの人はこういう考えになっていると勝手に思っていて、言葉こそ違えどこういうゴールライン*1がある、という認識はある程度一緒であろう。

この場合、問題になるのは『意見』が『事実』と一体化してしまうことだ。その意見は一度『解釈』を通していて『解釈』を通している時点でそれは『事実』ではない、ということが(なんらかの形で)崩れてしまっている。僕らが他人の『意見』を理解する場合、相手がその『意見』を作るために当てている『解釈』をずらしてみたり変えてみたりすることでその差分等から理解していく、という方法が一般的だと思うので、相手が意見を事実としてしまうと、解釈をずらす試みができない。さらに言えばなぜその『解釈』を選択したのかということを理解するためには、他の『解釈』を採用しなかった理由を知る必要がある。*2*3ので、相互理解のメソッドが*4使えないので、相互理解ができない、となる。

ここまでの話はまあよくある話であってこんな中学生みたいなことを、と思うと思うんだけど、話の主題はどちらかというとここから。なぜ『意見』を『事実』としてしまうのか、ということについてで。これはまあいろんな理由があって、単に訓練されてないという話に全て落ち着く気もするんだけど。そもそも上の解釈事実に関する話も僕が『事実』として捉えているだけで本当は『意見』なのかもしれないとか。いやまあ実際『意見』なんですが、これを否定すると流石に日頃の議論が成り立たなくなってしまう、こういうふうに、『事実』としなければやっていられない『意見』というのが人それぞれ存在している。多分気が付かぬうちに生存本能的に『事実』としてしまっているものもあるだろう。そうなったときに、そのことを否定できるだろうか、ということを考えてしまって。当然誤った『解釈』によってできた『意見』で大きな被害が出ているといった場合、その『解釈』が誤っているということを『意見』を『事実』と認識するのをやめさせるかはともかくとして何かしらの手は打たないといけないが。*5

本当の相互理解というのは恐らくこういう自分が持っている相互理解のメソッドが使えないものも許容するものなのだろうな、と考えたら、非常に気が滅入ってしまった。別に興味ない話ならいいんだけど、自分が興味を持っていてかつそれなりにその意見を確信的に持っているとき、相互理解をしたいと感じている分野で相互理解のメソッドを扱えない対象と出会い、またその対象の持つ意見*6を許容しづらい場合、存在を受け入れるしか術がない。他者と自分の間で十分な議論が行われていない状態で、自分の意見から見て解釈が歪んでいると思われるものも、存在するということは受け入れないといけない、ということを改めて感じてなんだか疲れてしまったという話。


andymori 「シンガー」

全然関係ないけどandymoriのシンガーの「なんだか疲れてしまったね 参ってしまったね」という始まりめっちゃいい。なんだか疲れて参ってないことそんなにないからな。

*1:スタートラインでもある

*2:当然意見から解釈を読み取ることもできるが、これはあくまで推論的でしかない。解釈をずらして比べてみるのもなにか確証があるわけではないが

*3:ここで重要なのはなぜその解釈を選んだのかであって解釈そのものではない(僕の場合だが

*4:全然関係ないけど相互理解のメソッドってめっちゃ百合漫画のタイトルっぽいな……

*5:『』つけるのめんどいでここでやめます

*6:対象の中では事実の場合が多いが

2018年聞いて良かったCD

結構趣味で音楽を聞くのだけど、そういえばどういう音楽を聞いてるかみたいな話をあまりしてないなと思ったので書いてみる。2018年リリースのCDの中で良かったやつの感想とか。

the pillows / Fool on Cool generation

今年最高の一枚と言っても過言ではない。the pillows入門におすすめの一枚のアルバム。すべての再録のクオリティがまず高いし、新曲である『Star overhead』と『Spiky Seeds』はどちらも「the pillowsってこんなバンドだよな」みたいな感じがしていい。

再録された楽曲はどれもいいんだけど、個人的には『Freebee Honey』と『Thank you, my twilight』を推したい。特に『Freebee Honey』はなんで埋もれてたんだろ……ってなるぐらいよくて、しかも再録で重厚さが増して非常にいい感じになっている。くそかっこいいね。フリクリで流れたときは興奮で声出そうになった。まあ映画そのものは……。

唯一悲しいところとしては、ノンフィクションがインストだったことかな。声聞きたかった気もする。

the pillows / REBROADCAST

前のFool on Cool generation 一枚のすぐあとに発売された最高の一枚。もともと『Star overhead』と『Spiky Seeds』のクオリティがどちらも高かったのにこれが入ってないということはクオリティの高い一枚なのでは?みたいな期待はあったんだけど、その期待を遥かに上回る一枚でした。先に公開されていた『ニンゲンドモ』もこのアルバムのこの位置だととてもいい感じになっている。「the pillowsが急に社会派バンドに?」みたいな風に思った人はフル聞きましょう。。いい意味で懐かしい感じのサウンドも新しいthe pillowsも楽しめるいい一枚だと思う。ベースとドラムが厚い曲が多いのもよい。個人的なおすすめは『BOON BOON ROCK』です。だから傷ついたって平気だってそんなわけないだよな……。

Homecomings / WHALE LIVING

リズと青い鳥」で『Songbirds』をやっていたHomecomingsがアルバムの最後にSongbirdsを入れたと知ったのでどういう仕上がりになるんだろうかと思って聞いた。まず一枚のコンセプトが非常によくて、遠くに暮らす恋人同士をイメージした楽曲群とのこと。楽曲の始まりにいろんな音を入れてみるのはあるけど(チャットモンチーの『サラバ青春』みたいな)、そこにストーリーがあるとちゃんと意味が生まれてくるのはリズを見ていても知っていたけどやっぱり面白いなぁと思う。通しで聞いてほしい一枚です。みんなもこのアルバムで好きなカップリングを遠くに暮らさせような……。

サニーデイ・サービス / サニーデイ・サービス BEST 1995-2018

ベストを入れるのはちょっと変な感じもするけどアホみたいに良かったので。サニーデイ・サービスは本当に綺麗な詩が多くて、それを一度にたくさん楽しめるという感じです。一度気に入ったらずっと流しっぱなしになるアルバムだと思う。僕のおすすめは『若者たち』『あじさい』『雨の土曜日』『星を見たかい?』『セツナ』『桜 Super love』です。

Queen / Bohemian Rhapsody (The Original Soundtrack)

Bohemian Rhapsody 見に行った人は聞くと更に楽しめるし、このアルバムを聞いてからBohemian Rhapsody を見に行ってもいい。

ArtThearterGuild / HAUGA

今年一番のおすすめです。本当にいい。ArtTheaterGuildは今年メジャーデビューしたthe pillows山中さわおプロデュースのオルタナロックバンドなんですが、これがすごい。とりあえず『Stamen』を聞いてほしい。

すごくないですか????メジャーデビュー一曲目ですよ。本当にすごい。シンプルで耳に残るギターから始まって、ちゃんと楽曲の雰囲気に合わせた言葉の選び、繰り返しの丁寧さ、楽曲のループの綺麗さが本当にいい。「いてえな」から始まって「いてえな」で終わる歌詞が本当にいい。寂しさや悲しさだけじゃない言葉選びをしてるの本当に偉い。個人的には一曲リピートにして聞いてほしい。最後と最初のつながりの自然さが楽曲の持つ味を更に深いものにしていると思う。

表題曲もすごいけど、他の曲のクオリティもすごい。『TOYRING』はStamenが終わったあとの寂しさをどこか吹き飛ばすようなドラムで始まりながら、それでも一方的な感情じゃないの本当に信頼しかない。流れるようなサビへのメロディ、間奏のソロギターもいい。『MADDER GOLD』もすごくて、「窓から飛び降りた」というフレーズがもたらすどこか暗い感情を一曲分かけて解きほぐしていくような歌詞がね……いいよね……。『蝶の舌』は打って変わって音数が少ないのだけど、その分『MADDERGOLD』や『TOYRING』にはなかった儚さをうまく演出できていると思う。昔の曲とか聞いてるに蝶の舌みたいな楽曲の方が一定数あるバンドなんだと思うんだけど、だからこそこのアルバムに『蝶の舌』しかおとなしめのサウンドを入れなかったの本当に正しい。ただ『暗い詩』『静かな曲』で終わることがない。いやーーいい。天才か?最後の『HOME ALONE』はこのミニアルバムを締めくくるにうってつけのサウンドだと思う。サビのメロディも好き。

そもそもこのアルバム一枚20分っていうのが良くて、通しで20分だとなんとなく通して聞こうかなという気持ちになることが多いのもあって、一曲一曲の持つ感触としては別にアルバムとしての感触があるのが嬉しい。やっぱミニアルバムでデビューするロックバンド信頼できる……。

本当にいいバンドだと思うのでマジで聞いてほしい。本当に売れてほしい……。


今年はいろいろいいアルバムに出会ったと思うけど、もうちょっと新しい曲聞くためにいろんなバンド聞くようにしたいなァという気持ちもある。来年も引き続き新規開拓していきたい。

ニコニコ改善インターンに参加してきました

株式会社ドワンゴ様によって主催された 2018年の夏のインターンである「ニコニコ改善インターン」に参加して来ました。そのまとめを書いていこうと思います。

f:id:sh4869:20180911153249j:plain

概要

今回のインターンは「改善インターン」ということで、最初から実際の開発チームに参加し、その中で業務上の課題を与えられ解決していく就業型のインターンでした。一日目から普通にデスクを与えられて業務をやっていたので、比較的珍しい形のインターンであるような気がします*1

今回私はニコニコ動画の新サービスである「ニコキャス(実験放送)」のWebフロントエンドチームに配属されました。

私が課題として与えられたのは「プレイヤーの重さの改善」です。実験放送ではゲームやお絵描きなどの新機能が追加されているのですが、機能が追加されている分、どうしても重くなってしまう部分があります。そこで、コメント描画を軽くするためにゲームエンジン上でのコメントレンダラーの試作を行うというのが今回のお題でした。 Webフロントエンドチームと聞いていたのでReact等の技術の復習をしていたらゲームエンジンの勉強をすることになったのは流石に驚きましたが、楽しかったです *2

f:id:sh4869:20180911151228p:plain

開発規模としては、三週間ほどで約260コミットという感じでした。自動生成されるコミットを除くと大体150コミットぐらいじゃないかなと思います。ニコニコのコメントという膨大な仕様を理解して実際に実装に落とし込んでいくのが結構難しかったです*3。試作とはいえどもその試作をベースに本格的な導入が始まるので技術的負債にならないようにしたり、パフォーマンスを考える必要があるのも難しかったです。

プレイヤーの動作を軽くすることが目的なので、開発が一通り済んだあとはリファクタリングを行いながら性能測定を行っていました。あまりWebブラウザでの性能測定を行うといった経験がなかったので、どうやって定量的に性能を測定し動かしていくかということについて教えていただいたのも良かったです。どこが重くなっているのか、どこが重いと判断されるべきなのかといった問題を確認しつつ、どうやって動作を軽くするかという仮説を立てていく作業はいい体験でした。業務上でどのような価値があるのか、その上でどのようなパフォーマンスを目標にするべきなのかということを考えるいい機会になったと思います。

感想

  • 職場は話には聞いていたけど本当にみんな出社時間がバラバラで面白かった
    • 人によっては八時ぐらいに来てるし、人によっては十二時とか十三時にくるし、なるほどという気持ち
    • 出社体系が自由ということよりは、バラバラにしてもちゃんと仕事が成立していくように組むことが必要なんだろうなといった気持ちになった
    • デスクのカスタマイズ等が自由なのもよかった
  • 実際の開発の様子をずっと見ていられたのは面白かった
    • どうやって開発を行っているかというのと、どのように開発環境の改善を行っていくかみたいなプロセスが見れていったのはよかった
    • どうしても趣味プロジェクトだと妥協してしまうし、小さなプロジェクトだったら最初からLinterから設定できるので、実際に大きなプロジェクトでlinterのルールがアップデートされていく様子とか見れたのはよかった
      • つらそうだった……
      • 現状の技術的負債を減らしつつ新機能を追加していくのをどうやっていくのかということを見れたのはよかった
    • 開発環境は勝手に改善されていくものではないということが改めてわかったのもよかった
      • エンジニアがたくさんいればなんとなくエンジニアのための環境になっていくように思ってしまう部分はあった
  • よくある感想だけど、実際問題労働をどうやっていくのかというのがわかったのもよかった
    • 一日八時間労働するとなるほど時間がない

*1:他のインターンに参加したことがないのでわかりませんが

*2: 割とどういう技術もつまみ食いしてきてなんでもできるよ〜みたいなことを言ったのでこういう配属になったのだと思う(そうですよね?)

*3:二重リサイズって何……?

*4: https://twitter.com/sigekun/status/1037585828115955712