mizdra's poem

雑なこと (日記/技術ポエム/メモ/…) を書くブログです. 真に受けないでください.

2018-10-15

今日の電車

  • 行き: 勝ち
  • 帰り: 負け

同時編集対応エディタ

大学のネットワークプログラミングという実験で, ソケット通信を使った好きなプログラムを作る課題に取り組んでいる. 講義ではその例としてリアルタイムチャットや対戦型ゲームが挙げられていたけど, ありきたりすぎてつまらないので他の題材を探していた. そこで以前から「DocBaseの同時編集機能を実現しているアルゴリズム | KRAY Inc」という記事を読んで気になっていたOperational Transformationを用いた同時編集対応エディタを作ることにした. なによりHackMDやScrapbox, Google Documentのような同時編集機能を自分で実装するという体験は憧れますよね.

とはいっても授業日数には限りがあり, Operational Transformationの実装に時間が掛かって未完成のまま終了してしまっては悲しいので, 最悪Operational Transformationの実装が間に合わなくても共同編集可能なエディタとしては機能するような実装方針を立てて実装することにした.

  • 実装の方針
    1. 1つのクライアントが同時に接続可能なドキュメント共有エディタのプロトタイプを作る
      • 文字の挿入や削除は対応せず, 全文書き換えのみ対応
      • 挿入や削除といった操作ではなく, ドキュメントを丸ごと送信する方式
    2. 複数のクライアントからの接続に対応
    3. 文字の挿入, 削除に対応
      • 挿入コマンド, 削除コマンドをサーバに送信する方式
      • コマンドはサーバを経由して全共同編集者に反映される
    4. 十字キーによる移動, カーソルを使った編集に対応
    5. Operational Transformationに対応
      • 操作はその操作を行った者には即時反映され, それ以外の共同編集者にはサーバをして反映される
      • 全てのクライアントの整合性が担保されるよう, サーバで操作のコンフリクトを解決する
  • オプション
    • 共同編集者のカーソル位置の表示

1から順に作っていけばOperational Transformationによる同時編集対応エディタが完成する. 仮に5まで終わらなくても, 3まで出来ていれば共同編集可能なエディタとしては機能するはず. とりあえず2時間で2まで出来ていて後9時間あるので4くらいまでは余裕を持って実装できそうな気がする. やっていきます.

21歳になりました

21歳になりました. めでたいですね. 21歳もやっていきましょう.

ちなみにこちらはmizdraの誕生日をお祝いできる最高便利ワンライナーです.

$ npx mizdra/happy-birthday-mizdra

Image from Gyazo

そしてこちらは不思議と押したくなる最高便利リンクです.

よろしくお願いします.

2018-10-12

今日の電車

  • 行き: 負け
  • 帰り: 勝った気持ち

便利ハンコ

hogasさんによって部室に便利ハンコが持ち込まれたので, 押して遊んでいた. とりあえず劇っぽいものに劇を押しておいた.

個々でも十分良いけど「劇毒」みたいに組み合わせても良いですね. 是非お試し下さい.

3Dプリンタ

最近部で3Dプリンタを購入したので, mizdraハンコを作ってみた. 朱肉とハンコさえあれば自己を出力できる便利アイテムです.

2018-09-30

無常

MacBook Proも質量を持った物体なので, 空から降ってきたら壊れるし, 人に当たると人は死ぬ.

プログラミングRust輪読会

「プログラミングRust」, 購入したは良いがまだ1Pも読んでないのでガッと読みたいなあと思い, 輪読会開催したいという話になった. 丁度弊サークル内に「プログラミングRust」を購入した人が何人か居たので, そういう人に声を掛けて参加者を募ったら7人ほど集まった. 競プロでC/C++触ってる人が居たり, Lisp触ってる人が居たり, Webフロントエンドやバックエンドやってる人が居たりして, 色んな知見が集まって良さそうな感じがする.

僕自身は輪読会というものに参加したことも主催したことも無いので, 今は企業での実践例を参考にしながら慎重に輪読会のルール決めをしている段階. 脱落しにくい/復帰しやすい仕組みを作りつつ, 読んで理解して議論することに集中できる環境を作れるようにしたいですね.

大学

明日から後学期です. やっていきましょう.

2018-09-27

GigaViewerのオフライン対応

インターンで開発に関わったGigaViewerにオフラインで読む機能が追加された. 最高便利機能っぽい.

tonarinoyj.hatenablog.com

これ見ていたらPWAでオフラインでの体験の改善に真剣に取り組むやつやってみたくなってきた. 大変そうだけどめっちゃ楽しそう.

のんのんびより ばけーしょん

ばけーしょん終わる前に観に行った.

最初から最後まで最高だった. EDめっちゃ良かったですね.

あとこれは映画の内容とは直接関係がないけど, 雰囲気が台無しになるので夏の映画は雨の日に観るべきではない…

リトルウィッチアカデミア

良い.

www.nicovideo.jp

WI-1000X

今日は手元に届いてから初めて電車の中で使ってみたのだけど, ノイズキャンセリングをONにするとめっちゃ静かになってすごい. 当然ながら完全に音が消える訳ではないけど, エアコンや周りの人から出ている音が全く気にならないほどカットされている. 何というか雑音によるストレスが一切無いという感じ. 良い買い物をした気がする.

2018-09-26

聴覚情報処理障害

NHK NEWS WEBで記事になってた.

www3.nhk.or.jp

ヤマノススメ

最終回を観た. めっちゃ良かった… 4期待ってます.

来季のアニメ

とりあえず気になったアニメをAnimetickで記録しておいた. 最終的に4〜6枠くらいに収まりそうな気がする.

色づく世界の明日から, アニメーション制作がP.A.WORKSということで期待している. というかアニメーション制作もそうだし, 監督が凪のあすからと同じだし, やなぎなぎさんがED歌っていて凪のあすから感がすごい.

2018-09-24

WI-1000X

電車乗る時にあると便利そうだなーと思っていたら, 何故かカートに入っていて, 何故か購入ボタンが押されていた. 不思議な事もあるんですね.

www.sony.jp

買った後で気づいたのだけど, イヤホンの機能にアンビエントモードやノイズキャンセリングが付いているので, 応用してAPDにみられる症状を楽にできないかなーみたいなことを考えている. 届いたら色々試してみよう.

日本語

日本語書けた.

インターン体験記, スマホで撮影した写真をそのまま貼り付けてまくっていたら激重になってしまったので, 以下のガイドを読みながらひたすら画像圧縮していた. mozjpeg使って雑に圧縮したら容量が1/10以下になって便利だった.