mizdra's poem

雑なこと (日記/技術ポエム/メモ/…) を書くブログです.

2020-04-28

ゆゆ式指向言語

カブ

92(買値)=>83=>80=>76=>73と順調に下がってきている. 先週波型という情報を加えてツールに入れたら跳ね小型5.16%, 減少型44.3%, 跳ね大型50.6%と出てきたのでまあまあ期待できそう.

hyperwiki.jp

余談だけどこのツール, 予想結果を共有する機能が付いていなくて皆がスクショで共有していて悲しい状態. 共有用のURL作成出来てほしい. そしてそのURLごとにog:imageでグラフを, og:descriptionで「跳ね小型XX%, 減少型XX%です」と出してほしい. ユーザページ作って私の株価これです, と紹介できるとより便利そう. ユーザが株価入力したらRSSが更新されて「今日の株価はこれです. 跳ね小型XX%, 減少型XX%です. グラフはこれです(OGP画像)」みたいな通知をSlackなりに流せて最高便利ですね*1. 僕は作る気無いので誰か作っておいて下さい.

Web API

仕事でWeb API実装してたのだけど, 実装を進め始めてからAPIからこのデータ返せないね, と気づくケースが何度かあったので再発防止したいねと考えていた. そういえば昔「API実装する前にまずはデザイナから貰ったXD内に写り込んでいる文字列にひたすら丸を付けて, それがAPIスキーマのどこと対応するか確認しましょう」という話どっかで見かけたなと思い出してそれをTRYにしたのだけど, どこで見かけたっけ. どこかのWeb記事で見かけた気がするんだけど忘れてしまった.

CD取り込み

そういえば最近CD借りてないなとふと思い出して20枚くらいガッと借りて取り込みしてる. 取り込みめちゃめちゃ面倒で, まずCDドライブで1枚スキャンするのに3〜10分掛かる. CDドライブには1枚しかCDが入らないので借りた枚数Nに対し, スキャンに掛かる時間がO(N)になる. なんで1枚しか入らないの.

スキャンが終わるとジャケット付けたりアルバム名修正したりとメタタグ整理をするのだけど, これもめちゃめちゃ面倒. メタタグはツールを使って有志が管理しているデータベースサーバから取ってくるようにしていて, 運が良ければ一瞬で期待通りのメタタグが付くのだけど, データベースサーバに対応するデータが無かったり, 登録されているデータが誤っていた場合は自分でデータベースを変更しにいかなければならない. アルバムアートが登録されていないくらいならまだマシで, 対応するアルバムのデータがない場合は「このアルバムにはトラックがn個あって, それぞれのタイトルはこれで, 再生時間はこれこれこうで...」とアルバムのデータを頑張って作る必要がある. 対応するアーティストのデータがない場合はそれも作る必要がある. だるい…

そして最後にGoogle Play Musicへとアップロードする. Google Play Music Managerを使ってメタタグを付け終わったファイルをアップロードすれば良い, のだけどたまにアップロードに失敗する曲があるのでエラーメッセージを見ながらチマチマ直す必要がある. あとアップロード出来てもGoogleにより全然違う曲だと判定されてVC入りの曲がinstrumentalになったり, full sizeの曲がTV sizeになったりするのでちゃんと全部再生してみて問題ないかを確認する必要がある.

scrapbox.io

今回は20枚取り込みして, 総作業時間4時間くらいだった. 4時間ずっとCD取り込みに束縛されるのしんどいので早く自動化されてほしい.

*1:とはいえひたすらRSSの更新通知が流れるチャンネル怖いと思う

2020-03-05

Flutter

最近Android/iOSのクロスプラットフォームなアプリ作りたくて技術選定をしている.ionic,react native,PWAなどを検討していたけど,どれもあまり気乗りしない / 役不足で困ってる.

そんな中,Flutter良いよ〜と人からオススメされたので触ってみた.とりあえず公式チュートリアルやってみたので,感想を書き留めておきます.

  • 環境構築が思いの外簡単
    • モバイルアプリ開発は環境構築が大変というイメージがあったのだけど*1,意外とサクサクできた
    • 基本的にはガイド通りにやっていけば良い
    • 困ったら flutter doctor 叩けば開発環境の不備と修正方法を教えてくれる.便利〜
  • Dartは雰囲気で書ける
    • Dart書いたこと無いけどFlutterのチュートリアルの範囲内では一度もDartのドキュメント見ずにコードを読み書き出来ている
      • 見た目完全にJavaだしJavaが読めればDartも読める
      • 「Dartを書いたことない」はFlutterの採用を避ける強い理由にはならないなと感じた
        • まあ人によってはJava風の構文に馴染みが無くて強い理由になったりするかもだけど
    • 冗長 / 古臭い 等様々な声があると思うけど,一方で多くの人にとって取っつきやすいのは強力な利点だと思う
  • コード修正 => デバイス側に反映 のサイクルが爆速で回せる
    • hot reloadイケててすごい
    • ガイドや各種エディタのプラグインでもhot reloadを全面に押し出していて,かなり力を入れていることが伝わってくる
    • Node.js界隈のHMRよりは安心感がある
      • 2年前くらいに初めてHMR触ったときはCPU使用率がすぐ100%になるなど使い物にならなくて,それ以降ずっとHMRは入れていない.最近どうなのかは知らないけど…
        • 少なくともFlutterはそういう場面まだ遭遇してない

開発ツールがかなり充実していて,綺麗なレールが敷かれている感があった.チュートリアル一通り終えても「この技術はちょっとな〜」となることはなく,むしろ続けてFlutter使ってみたいなと思える程度には満足度高かった.ひとまずFlutter採用する前提で進めて,作りたいアプリを本当にFlutterで作れるのかプロトタイプを作って調べてみます.

調子とまぶた

今日はなんだか気分が良いな〜なんでだろう〜と思いながら過ごしていたら,鏡を見ているときに気づいた.普段は左まぶたが右まぶたより1〜2mmくらい大きく開いているのだけど,今日は0.5mmくらいだった.調子とまぶたに相関ってあるのかな… 左右のバランスが整うことで調子が良くなったという可能性はありそう.何もわからないけど…

思考

ゆゆ式の「シュポーン」思い出した.

そういやゆゆ式って本やインターネットから誤字を見つけて喜ぶシーン一切ないなと気づいた.外部から提供されるネタには一切頼らずに,ゆずこ・唯・縁の3人で題材を見つけてきて,それをネタに昇華させているイメージがある.本日の気づきでした.

*1:まあWebフロントエンドのほうも大概だけど…

2019年を振り返って

年の瀬なので1年の振り返りをします.

※年内投稿チャレンジ失敗したので, 各自「今年」を2019年, 「来年」を2020年に読み替えてください.

技術

まず技術関連の話. 今年作った技術的成果物一覧です.

  • Now Browsing ツール (1〜9月) (WIP)
    • Twitter で Now Browsing するツール
    • 普段 Tweet: Now Browsing!Omnitweety を使って Now Browsing してるのだけど, いまいちイケてないな〜と思って自作してる
    • 日常的に触るツールになるので, 結構気合入れて作ってる
      • ちゃんと要件定義したり, プロトタイプで実際に機能するのか確認ながら技術選定したりと丁寧にやってる
      • 丁寧にやりすぎて開発着手から9ヶ月経った今も完成してないのだけど, まあそれも個人開発の醍醐味だよねということでのんびりやってます
    • 来年の夏までにはリリースしたいな〜
  • ターミナルエディタ (3〜4月)
    • 大学のネットワークプログラミング実験の課題でターミナルエディタを作った
    • 実はエディタ自体は去年の10月に完成していたのだけど, コードは公開してなかった
      • 折角面白いプロダクト作ったので皆に見てもらいたいな〜と思って, 3月くらいからちまちま公開作業してたのでした
    • その成果がこちらです: mizdra/minimum-ot-editor
    • 見どころ
      • 複数人で同時編集できる
        • Operational Transformation というアルゴリズムを採用することで, 変更箇所が衝突しても良い感じに変更されるようになってる
        • 同時編集の様子: YouTube
      • サードパーティライブラリを一切使わずターミナルエディタを実装
        • ターミナルにはANSI Escape Sequenceと呼ばれる一部の文字列をターミナルを制御する特別な文字列として扱う機能がある
        • これを使って, エディタ画面のリフレッシュやカーソルの移動を実現してる
      • 現代的な C 開発環境
        • Language Server Protocol (clangd) 関連の設定仕込んだり, フォーマッタ (clang-format) 導入したり
    • 本当は記事も書いて紹介したかったのだけど, 力尽きてしまった
      • 今度 WebAssembly + WASI + Emscripten で ブラウザでデモ動かせるようにしようと思ってるので, それが出来たら記事書こうかな
  • フリーマーケットのレジシステム (10〜11月)
    • サークルの学祭の出し物で「ジャンク市」という怪しい市を開催していて, その市で利用するレジシステムを作っていた
    • レジシステム自体は今までの学祭で何度か作ってるのだけど, システムが複雑すぎて誰も継承できず毎年作り直す羽目になってる
    • 流石にそれじゃイカンだろう, ということで今年は巨大な出来るだけシンプルな構成で作り直してみた
      • 技術スタックは Node.js / express / REST API / prisma2 / Next.js / TypeScript / passport.js という感じ
        • 巨大なWebフレームワークは使わず, シンプルな技術を組み合わせで構築してる
        • 後はバックエンド・フロントエンドの言語をTypeScriptで統一したことで, TypeScriptさえ読み書きできればメンテできるようになってる
        • Next.js はWebフロントエンドのビルド周り任せるために入れたのだけど, これはまあ微妙な選択だった気がする
          • SSR要素必要ないので Parcel + React でも良かったと思う
    • 技術的挑戦という話だと, バックエンド・インフラ・ハードへの挑戦が挙げられる
      • passport.jsで部のLDAPサーバと連携してLDAP認証したり
      • 今話題のSameSite=Strictをセッションcookieに付けて「外部サイトからアクセスするとログアウトされた状態になってる〜」とかやったり,
      • 部のサーバにlxd入れてSystemdでサーバプロセス管理したり
      • DNSレコードやnginxの設定弄って部内サーバ上のWebサーバを外部に公開してみたり
      • レシートプリンタ使って値札やレシートを印刷してみたり
      • こういう普段触らない部分触れるのは色々勉強になって良かったです
        • 普段Netlifyで完結するようなWebアプリしか作ってないので, バックエンド・インフラ・ハード触る機会全く無いんですよね
        • 実際触ってみないと分からないようなところが分かるようになったのは大きかった
  • 今日のゆゆ式 (12月)

去年と比較すると成果物は半減してるけど, まあ今年は色んな分野に手を伸ばせたのでトントンという感じですね. 来年は色んな分野に手を伸ばしつつ成果物の量を増やしたい.

GitHub

去年

f:id:mizdra:20181229234343p:plain

今年

f:id:mizdra:20200101021201p:plain

ついに1000の大台に... と一見めでたいように見えるのですが, 300 contributions くらいはお仕事の分で実際には去年とほぼ変わらないです. 開発の速は次第に上がってるけど, 開発に割ける時間が減ってきていて伸び悩んでます. 来年こそ個人開発だけで 1000 contributions 超えたい.

アニメ

animetickを見ながら良いと感じたアニメを列挙するコーナー. 良い << 最高 << 優勝 の順でランク付けしていきます.

  • 2018冬
    • 私に天使が舞い降りた!: 優勝
    • 約束のネバーランド: 優勝
    • かぐや様は告らせたい~天才たちの恋愛頭脳戦~: 最高
    • 転生したらスライムだった件: 最高
    • 賭ケグルイ××: 最高
    • 五等分の花嫁: 良い
  • 2018春
    • 進撃の巨人 Season3 Part.2: 最高
    • 鬼滅の刃: 最高
    • ぼくたちは勉強ができない: 最高
  • 2018夏
    • 女子高生の無駄づかい: 優勝
    • からかい上手の高木さん②: 優勝
    • 鬼滅の刃: 最高
    • まちカドまぞく: 最高
    • 彼方のアストラ: 最高
    • ダンジョンに出会いを求めるのは間違っているだろうかII: 良い
  • 2018秋
    • BEASTARS: 優勝
    • 慎重勇者~この勇者が俺TUEEEくせに慎重すぎる~: 最高

「女子高生の無駄づかい」がめちゃめちゃ良かったです.

アニソン

今年ハマったアニソンの中でイチオシの曲を紹介するコーナーです.

しんみり/さわやかな曲に弱いことが分かる.

漫画

今年のイチオシ漫画を紹介します.

『微熱空間』が今年のベスト・オブ・漫画です. 最近ラブコメ結構好きだということが分かりつつある. 来年はラブコメ方面でもうちょっと漫画漁ってみたいですね.

おわりに

2019年もやっていきましょう.

*1:自炊(2日) + プログラミング(1日) = 3日

22歳になりました

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

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

$ npx @mizdra/happy-birthday

Image from Gyazo

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

よろしくお願いします.

2019-07-28

掃除

部屋の掃除をした. 本当はもっと前に掃除するつもりだったのだけど, 以前自室に寝そべる空間を作るために敷いたマットが掃除機をかける邪魔になっていて, 結果として掃除が億劫になり今日まで放置されていたのだった. 僕にはマットは向いていないということが分かった. 今日一番の成果です.

同じ過ちを侵さないためにメモ書きしておきました.

scrapbox.io

クレジットカード

クレジットカードの与信限度額に達してしまい, 様々な定期購入が失敗し始めている. 元凶はこれです.

定期購入は勝手に解約され, Amazonで漫画も買えず, ほぼ毎日使うKyashは使い物にならない… 困った...

f:id:mizdra:20190729005149p:plain
余命宣告

流石に何とかしなきゃなと思い, クレジットカード会社に電話して期日前の入金用の口座番号を聞き出したりしていたのだけど, ATMまで行くのが面倒過ぎて諦めてしまった. まあこのまま放置しても月曜に自動的に口座から引き落とされるので, 今日と明日我慢すればそれで良かったりする. 解約された定期購入契約し直すの面倒だけど…

研究

無. 計画性のない人間なので, 1週間ごとにゼミで成果発表するのしんどすぎる (とはいえ短いスパンでフィードバックが貰えるのは助かっている). 毎日親に勉強しろと言われているような気分になる. 難しい. ゼミに対する心構えが間違ってる気がする.

2019-07-21

研究

明日ゼミがあるので研究をしていた. 先週海の日でゼミが休みだったこともあり, 2週間分の進捗を報告しなければならないのだけど, 朝の時点で進捗は無. 何とか巻き返そうと今日一日研究してたけど, たった1日で2週間分の進捗を出すのは無謀ということが分かっただけだった. 研究は計画的に.

MacBook Air 初期化

最近新しいMacBook Proを買ったので, 前使っていたMacBook Airを家族が使えるよう初期化していた. MacはWindows機と違って初期化時にリッチなブートメニューが出てきて便利ですね (なんとローカライズもされている). 画面みながらポチポチしているだけで何とかなって良かった.

選挙

午前中に候補者調べて午後投票に行ってきた. 今回は投票したくなるような人が候補者の中に居て助かった.

漫画

PrimeDayで20%オフで買ったDr.STONEを読んでいた. 今最新巻の11巻の半分くらいです. 1, 2巻は科学への好奇心唆るような書き方されてたけど, 3巻以降は子供向けのギャグ漫画っぽくなっていてちょっと残念だった. 週刊少年ジャンプの読者層とマッチしなかったのかな… 悲しい…

女子高生の無駄づかい

今期一オススメです.