no more.

情報認識学研究室 工藤先生の最終講義に行ってきました

大学時代の恩師であるところの工藤峰一教授が退官なさるということで、最終講義と祝賀会に行ってきました。 4月からは新しい方が着任なさるという話ですが、研究室の名前も変わるかも知れませんし、PRMLくんももう見られなくなるかもしれないですね

2024-03-12 · nasa9084

PNGの仕様を眺める

このブログは現在、Hugo という静的サイトジェネレータを使用してページを生成しているのですが、このHugoには多くの便利機能があり、そのうちの一つがImage processing です。 テンプレートの中で、ほんの数行のコードを書くだけで、画像のサイズを調整したり、切り抜いたり、あるいはぼかしたりすることもできます。これまでのところ、このブログでは画像のサイズは結構適当で、場合によっては表示の幅が変わってしまって見栄えが良くないということが(たまに)ありました。 そこで今回、HugoのImage processing機能のうち、Resizeを使用して、実際にサイトが表示されるときの画像を良い感じにしようと思ったのですが、サイト全体の画像描画部分にhookをかけたところ、エラーが出てビルドができなくなってしまいました。エラーメッセージの大半はファイルパスで、今回は本筋ではない上に長いので端折るとして、重要そうなところを抜き出すと次の様な感じ: 1 2 execute of template failed at <$image.Resize>: error calling Resize: : resize : png: invalid format: invalid checksum 要するに、Resizeしようとしたときに、checksumが合わないので対象のpng画像ファイルがおかしい、ということらしいんですよね。しかしこれまでこのブログを更新してきて、(パスとかが間違っていない場合に)画像が表示されなくて困ったこともないし、そもそもpngファイルにchecksumがあるなんてことも知らないし・・・ golang/go#43382 での会話を見たところによるとどうやら、pngファイルには「チャンク」と呼ばれるモノが存在して、これが無視できることも多い(特に実際に表示する時には不要なモノが多い)けれど、Goのimage/pngは今のところはそれらを無視せず、エラーを吐くことになっている、ということらしい。 エラーの対象となったファイルを、issueの説明に書かれているようにpngcheckにかけてみると次のようにCRCエラーがあることが分かりました: 1 2 3 4 5 6 7 $ pngcheck -v arch-1.png File: arch-1.png (272304 bytes) chunk IHDR at offset 0x0000c, length 13 1082 x 778 image, 32-bit RGB+alpha, non-interlaced chunk zTXt at offset 0x00025, length 188903, keyword: mxGraphModel CRC error in chunk zTXt (computed c3f0b5f1, expected 1ce878d9) ERRORS DETECTED in arch-1....

2024-02-16 · nasa9084

Introduce Tree Sitter to Emacs

近年、テキストエディタ/IDEの機能はますます複雑となり、プログラミング言語の数は増え、その組み合わせは膨大なものとなっています。元来テキストエディタはそれぞれがそれぞれの実装でそれらの組み合わせを実現してきましたが、自動補完、定義ジャンプ、ドキュメントの表示など、概ねその基本的な機能は同じであるにもかかわらず、すべてのエディタ開発者はそれぞれが車輪の再発明を行う必要があったのです。その問題を解決するために設計開発されたのがLanguage Server Protocol(LSP)であり、ここ数年で多くのテキストエディタが採用したことにより名前くらいは知っているという人も多いのではないでしょうか。 Tree-sitter はある意味でLSPあるいはLanguage Serverと呼ばれるものに似ています。Tree-sitterは、プログラミング言語の文法から構文解析器を自動生成するパーサージェネレーターツールであり、またそれを使用した構文解析ライブラリです。 Tree-sitterは任意の言語を解析できる汎用的なツールで、動作が速く、依存が少ないツールです。2018年にGitHubからリリースされ、emacs 29.1ではbuilt-inの機能として使えるようになりました。 Emacs x Tree-sitterの仕組みと導入 emacsでTree-sitterを使うには、2つの条件があります: 使用したい言語のパーサーが実装されている Tree-sitterに対応したmajor modeが実装されている 使用したい言語のパーサーが実装されている 当然のことながら、Tree-sitter用に文法が定義されている必要があります。使用したい言語のパーサーが既に誰かによって実装されているかは、available-parsers のリストを参照すると良いでしょう。概ね、メジャーどころの言語は実装されておりほとんどの場合困ることはないと思います。各言語の文法定義(grammar)はJavaScriptで定義し、tree-sitter CLIを使用してC言語のソースコードに変換し、最終的にはそれをコンパイルして使用します。 emacsの場合、~/.emacs.d/tree-sitter/ディレクトリにコンパイルされたダイナミックリンクライブラリを置くことで読み込むことができます。予めコンパイルされたものを置く、でも良いのですが、treesit-install-language-grammarを使用すると文法をダウンロードしてきて配置してくれるため簡単です。treesit-install-language-grammarを使用するには、まずtreesit-language-source-alistに言語とgitリポジトリのペアを定義します。その後treesit-install-language-grammarに言語を渡すことでgit cloneからコンパイル、配置まで行ってくれます。 例えば、YAML用の文法を導入するには次の様に定義します: 1 2 (setq treesit-language-source-alist '((yaml "https://github.com/ikatyang/tree-sitter-yaml"))) そして、(treesit-install-language-grammar yaml)(もちろんM-xでやっても良いと思います)とするとYAML用の文法がインストールされます。私はこの手のものはemacsの起動時に自動で導入されてほしいので、次の様にしました: 1 2 3 4 5 6 7 8 9 (setq treesit-language-source-alist '((yaml "https://github.com/ikatyang/tree-sitter-yaml"))) (dolist (element treesit-language-source-alist) (let* ((lang (car element))) (if (treesit-language-available-p lang) (message "tree-sistter: %s is already installed" lang) (message "tree-sitter: %s is not installed" lang) (treesit-install-language-grammar lang)))) Tree-sitterに対応したmajor modeが実装されている emacsでTree-sitterを使用したい場合、残念ながら、LSPを使用するときのように、単純にパッケージを追加すればすべての言語でよしなに動く・・・という風にはなりません。emacsでは今までのところ、major modeがシンタックスハイライトを提供するためには主に正規表現などが使用されてきました。正規表現を利用したシンタックスハイライトと、Tree-sitterを使用したシンタックスハイライトは大きく違うため、ほとんどのmajor modeではそのままTree-sitterを採用する形にはならず、Tree-sitter専用のmajor modeが提供される形になっています。emacs29ではメジャーどころの言語に対するTree-sitter対応モードが提供されています 。...

2024-02-14 · nasa9084

YAPC::Hiroshima 2024

2024年最初のテックカンファレンスとして、YAPC::Hiroshima 2024 に参加してきました。 YAPCはPerlのイベントで、“Yet Another Perl Conference"の略です。twitterハッシュタグは前回に引き続き#yapcjapan でした。 広島に来たのは2017年にOSC2017 Hiroshima 以来2度目です。前夜祭、アフターイベントがあるうえ三連休に絡んでいるということで、木曜日の午後に広島入りして、月曜の夜に帰るという4泊5日という計画としました。なお、弊チームではPerlを使用していないため業務ではなく趣味なのですべて自費です。 前夜祭 前夜祭は本編と同じ会場で、2本のトーク(?)と番宣リレーという企画がありました。以下ハイライトです: 妻から連絡が来たが「登壇中です」のみを返す実績を解除しました。 — そーだい@初代ALF (@soudai1025) February 9, 2024 登壇しながら明日のLTの資料作ってる #yapcjapan — そーだい@初代ALF (@soudai1025) February 9, 2024 そーだいさんクラスになると登壇しながら資料を書ける、学びですね(?) 本編 本編は3トラックで開催されました。次のセッションを聞きました: コミュニティと共に生きる - キャリアの螺旋と人生を変えた瞬間 (再演) 関数型プログラミングと型システムのメンタルモデル Blogを作り、育み、慈しむ - Blog Hacks 2024 非同期な開発体制を支えるドキュメント文化 PerlでつくるフルスクラッチWebAuthn/パスキー認証 平成のエンジニアから令和のエンジニアへの遺言〜技術情報を伝達する手段の変遷〜 ライトニングトーク キーノート どのセッションももちろん最高だったんですけど、やはり最高of最高はとほほさんによるキーノートでした。 正直これまでカンファレンスで話を聞いたどのレジェンドよりも「実在の人物だったんだ・・・」感がありました。いやまぁそりゃ、実在の人物でしょうけれども。 個人スポンサーノベルティはこてでした。SmartHRさんもこてを配っていたのでもらいました。右手と左手で、ひっくり返すのに便利かとおもったので。この時はまさかあんなことになるとは思ってもいなかった・・・! 懇親会 今回はなんと懇親会あり。YAPCとしては実に5年ぶりの懇親会だそうです。永遠に時間が足りないですね。困った。 二次会 各社による半公式二次会があるのも知ってたんですが、なんとなくまぁ申し込みをしないでおいたんですよね。野良二次会やりたくて。なので野良二次会をやりまして、同じ会社の人と実質初めましてですね、Slackではお世話になってます的な話をするなどしました。 YAYAPC::Hiroshima アフターイベントとしてYAYAPC::Hiroshima にも参加しました。なんだかんだ三日間。すごい。 テーマは"What you live"ということで、オフラインだからこそ話せること、ということで、まぁTwitterを見てもらうとわかるのですが、インターネットで共有はできないものの、みんなわかる・・・!という感じで、うめき声みたいなツイートが発生していました。 ぼーっとしている間にLT枠が埋まってしまっていたので、応募すればよかったかな〜などと思っていたのですが、当日、タイムテーブルミスったからLT枠がある、ということで飛び入りで怪しい話をさせていただき、なんと賞まで頂戴いたしまして、結果的に個人スポンサーノベルティのこてが2本と相成りました。いやー、これにはびっくり。大変ありがたいことです。 終わった後は12人ほどで飲みに繰り出しまして(17時頃)、途中人が多少入れ替わりつつ飲み続け、23:30頃に解散しました。 これは死んでる @songmu san #yayapc #yapcjapan pic.twitter.com/vFajihV2vC — nasa9084@某某某某(0x1e) (@nasa9084) February 11, 2024 そして解散した後は深夜だというのに一人でお好み焼きを食べるなどしました。お好み焼き美味しい。...

2024-02-12 · nasa9084

Tall Titlebar Issue on macOS Sonoma

私は普段、railwaycat/emacsmacport を使ってインストールしたemacs-mac を使用しているのですが、何故かmacOSをSonomaにアップグレードしたらタイトルバーが太くなりました。 macOS SonomaにしたらEmacsのタイトルバーが太くなった…! によると、次の設定を入れるとなおるようです: 1 2 (tool-bar-mode 1) (tool-bar-mode 0) うーん、起動も遅くなったっぽいし、workaround感がすごい。わかんないですけどなんかフレームの初期化に失敗しているとかそういう感じなんでしょうか。 emacs-macの方で修正を入れてくれている様子 なので、リリースされるまではこのworkaroundでしのいでおくくらいしかできなさそうです。

2024-02-06 · nasa9084

THEO解約レポート

2024年、新NISAが始まりましたので、手数料が高いTHEOを解約して新NISAに移すことにしました。LINE証券 と同様、記録を残しておきます。 2018年9月3日: THEO登録、10,000円/月で積み立て設定 2018年10月15日: 初回入金 2020年2月20日: 20,000円/月に積み立て設定変更 2022年3月28日: 10,000円/月に積み立て設定変更 2023年12月29日: 最後の積み立てが終了 総積立額は880,000円、トータルリターンは330,325円 (+37.54%)でした。 以上です。

2024-02-05 · nasa9084

LINE証券解約レポート

あけましておめでとうございます。本年もよろしくお願いいたします。世間では新NISAが話題ですが皆さんいかがお過ごしでしょうか。 扨、LINE証券がサービス終了ということで、LINE証券で積み立てていた投資信託をメインの証券口座に移管して、新NISAに突っ込むべく売却したのでレポートとして記録に残しておきます。 銘柄はeMAXIS Slim米国株式(S&P500)、タイムラインは次の通り: 2022年5月: 積み立て開始、積立額は17,000円/月 2022年12月: 積立額を27,000円/月に増額 2023年11月: 最後の積み立てが終了 保有数は215,920口、積立総額は443,000円、本日(2024年1月31日)時点で概算評価額は561,607円、評価損益は+118,583円、評価損益率は+26.76%でした。 以上です。

2024-01-31 · nasa9084

ワイヤレス送信機用延長シールドを作る

現在、ギターを練習するとき、有線でケーブルをつなぐとイスで踏んでしまったり、あちこちに引っかかってしまったりして不便なので、LINE6 Relay G10TII というワイヤレス送信機を使っています。 今使用しているギターはYAMAHA PACIFICA 112V なんですが、このギター、サイドにジャックがあるんですよね。そうすると、ワイヤレスの送信機、特にG10TIIやBOSS WL-20 の様な四角いタイプの送信機を挿すとかなり飛び出る格好になってしまい、オフィスチェアに座って練習をしていると(単にオフィスチェアとギター練習の相性が悪い、という点はさておき)ぶつけて折ってしまいそうで不安になります。 一応L字のアダプタは付属していたような気もしますけれど、丸みのあるギターの側面にL字アダプタを挿しても、結局違う方向にはみ出るのはあまり変わらないな、ということでL字プラグに短いケーブルがついている、いわば「延長ケーブル」を作りました。 なお、何故ライブ前に作らなかったのか、という問いには答えられません。 材料 任意のL字プラグ 今回はオヤイデの超小型な奴 。使ってみたかったので。 任意のフォンジャック 今回はTOMOCA JS-504 。見た目が良かったので。 千石電商 とかでもっと安いのも買えるけど、送料がかかるので通販だと実質TOMOCA JS-504一択。秋葉原によく行く人は千石電商秋葉原本店 の2階か、ラジオ会館のトモカ電気プロショップ に行くとソレっぽいモノが売っています。 任意の単芯シールドケーブル 今回はCANARE GS-6 。ど定番だし、たまたま安く売ってたので。 PACIFICA 112Vの場合は25cm位用意すればちょうどよさそう 何か絶縁する奴 無くても良い。フッ素テープ とか熱収縮チューブとか。ホームセンターとかで買ってきても良いし、ご家庭に在庫している適当な熱収縮チューブを使っても良い。 任意の半田 材料というか工具というか? 工具 任意の半田ごて 半田吸い取り線 無くても良いけど、ミスした場合を考えると持っていた方が良い。 任意のニッパーまたはカッターまたはまたはワイヤーストリッパー テスター 無くても良いけど導通チェックはした方が安心 (オヤイデのSuperSlimシリーズを使う場合)任意のプラスチック/ゴムハンマー (熱収縮チューブを使う場合)任意のヒートガン ドライヤーなどでも代用できるけど、あった方が便利 ツールクリップ 土台に腕とクリップがついていて、はんだ付けする対象を固定できるやつ これもなくても良いけど、ケーブルのはんだ付けは細かいし、ケーブルは意外とのたうち回ってはんだ付けが難しいのであった方が良い。 作成手順 目算で外側の被覆を剥く シールド線をほぐす L字プラグをつける (以下オヤイデSuperSlimの場合) シールド線をざっくり二つに分けて芯線に巻く 芯線を剥く カバー?ハウジング?をはずしたオヤイデSueprSlimに差し込みTIP(+)にはんだ付けする クランプ側面の穴からはんだを流し込む 導通チェックをする 熱収縮チューブを差し込んで加熱して収縮させる カバーをつける 樹脂キャップを乗せてプラスチックハンマー/ゴムハンマーで叩いてはめ込む フォンジャックをつける (以下TOMOCA JS-504の場合) フォンジャックのカバーを差し込む (これを忘れてはんだ付けするとやり直しになるので注意。私はやり直しました) シールド線を適当にまとめる 芯線を剥いて二つに分ける シールド線、芯線の順にはんだ付けをする (フッ素テープやビニールテープなど絶縁するモノの用意があれば絶縁しておくと安心) カバーをつける 完成!...

2023-12-28 · nasa9084

Tech Rock Festival 2023

2023年12月23日に新宿SUNFACEで開催されたITエンジニアによるITエンジニアのためのロックイベントTech Rock Festival 2023に参加してきました。 経緯 事の発端は某GAFA社長であるところの@jyoshise sanによる次のツイートでした: エンジニア界隈で楽器やってる人、秋ぐらいにライブやりませんかー!? — jyoshise (@jyoshise) June 22, 2023 どうやら、エンジニア界隈、結構音楽やっている奴いるぞ、ということで立ち上がったプロジェクトですが、翌日にはGitHub Repositoryが立てられ: Repo立てましたー!https://t.co/4OqYjugBBr https://t.co/ncT3tKxWDG — jyoshise (@jyoshise) June 23, 2023 7月の頭には申し込み締切、13日にはバンド振り分けが終わり、会場も決まり、練習を進めて、先週の土曜日ついに開催となりました。 演者がエンジニアという都合上、大きめのテックカンファレンスとかぶらないようにしなければいけないということで調整の結果、12月末は目立ったテックカンファレンスもないだろうということで12月23日の開催となりました。 概ね演者だけで会場は一杯だったのですが、一般オーディエンスも募集していました 。 バンドと演目 私たちのバンドは3-way handshakeという名前で、当初バンドに振られた連番が3であったことから、3に関連する技術っぽい言葉でバンド名っぽくもある、というところでこの名前になりました。 面子は以下の通り: Vo: tsukaman Gt: じゅんじゅん Gt: nasa9084 Ba: karupanerura Key: harak Dr: 皮しばき そして曲目は次の通りでした: 深夜高速 / フラワーカンパニーズ ばらの花 / くるり 歩いて帰ろう / 斉藤和義 群青日和 / 東京事変 機材 ギターはYAMAHA PACIFICA 112V です。 正直に言うと、当初600シリーズを買おうと思ったけど某アニメの影響で全然買えなくて、妥協で買ったギターではありますが、良いギターだと思います。 弦はElixir Optiweb 09-42です。 エフェクターはZOOM G1 FOUR ですべてを済ませました。練習ではTHR10II Wireless に無線で繋いでいるので、有線でやるのはやだな〜と思って、LINE6 Relay G10SR を購入してエフェクターボードでも無線で接続できるようにしました。...

2023-12-25 · nasa9084

2023年買って良かったモノ

もう2023年も終わりますね。2022年の記事 は主に車とアクアリウムでした。今年は主に喫茶系とギターですね。 喫茶系 Fellow ODE Gen2 正直クソ高いけど、使いやすいしはやく安定した挽き目で弾いてくれるのでとても良いです。家庭用には珍しくノッカーがついているのも良いところ。 ニトリ ドリップカップ 小さくて取り回し抜群。1杯分を入れるには全然困らない。 HARIO 茶茶ドリッパー・ブーケ サーバーセット 茶の類いのモノを淹れるのにめっちゃ便利。サーバーはアイスではとても便利だけど、ホットは熱くて持てなくなるので注意。 サーモス 真空断熱ティーポット 温かい飲物が美味しい季節になったので買ってみた。保温性能はもちろんマグカップよりは圧倒的にいい(1時間そこそこは保温してくれる)けど、それよりもコーヒーサーバーとして使える小型の断熱ポット、というモノが便利。調べた感じではこれが唯一解。なおティーストレーナーは要らないと思います。 LOVERAMICS BEANS DOSING TRAYS James Hoffmannコラボの、コーヒー豆を計るためだけの器。絶対必要なモノではないけど、かわいいしテンションが上がるのでオススメ。 ギター関連 YAMAHA PACIFICA112V ぼざろ影響で600シリーズが在庫無くて112Vにしたけど、ちょっと弾くくらいならこれで全然十分。600シリーズ欲しくなってきてるけど。 G7th Performance 3 ART Capo Black ちょっとカポとしてはお高いけど、かなり使いやすいです。 ねこだまり工房/自家製クリア蜜蝋ワックス 陽だまりの香り 好みの香りだった。限定品らしくsoundhouseではもう販売終了しているけど、ネット通販ではまだ手に入るところがありそう。 MASTER 8 JAPAN INFINIX JAZZ TYPE HARD GRIP このシリーズは全部揃えてみたけど、HARD GRIPタイプがグリップ感が強くて良い。薄さはお好みで。INFINIX-Uでもよい。 PEDALTRAIN NANO 超小型エフェクターボード。G10SR 、Polytune3 、G1 FOUR でぴったり、という感じの構成。電源はVITAL AUDIO POWER CARRIER VA-05 MkII が良いサイズ。マルチはGT1000-coreを買うか検討中。 アルトベンリ ちょっとサイズが合わないのでティッシュを詰めて使っている。 HERCULES GS414B PLUS 安定感抜群。 日用品など コクヨ マスキングテープ テープカッター カルカット クリップタイプ 一般的な用途としてはおしゃれマスキングテープ用のカッターとして使んだと思うけれども、普通の黄色いマスキングテープにつけて使っている。手で切るとぐちゃっとなってしまうこともあるのでとても便利。 [RLJ] 引き出し ミニ サイズ (後付けタイプ) ミニ引き出し 正直コスパはどうなのか、という感じはある。作りはチープだし、有機溶剤っぽい匂いが永遠に取れない。が、まぁ便利は便利。私が買った時より値上がりしていてコスパは更に悪化してそう。 鬼ピタ 魔法のテープ めっちゃ強力。きれいに剥がせるといううたい文句に嘘はないけど、貼り付け面が弱ければ壊れてしまいそうな位には強力。ギターのエフェクターをエフェクターボードにつけるのにも使っている。 uxcell 丸平頭 ローレット つまみ M2x8mm ハンドクランプねじ 手で回せるねじ。無線化しているErgodashの背面プレートを開けたり閉めたりするのが簡単になった。 [PureSino] アームバンド カーディガンなどの袖を止めるのに便利。基本的に袖まくりしているので。1セット持っていたハズなんだけど、行方不明だったので買ったが、やはり便利。 ラムマウント(RAM MOUNTS) MagSafeマウント 便利ではあるけど、高いMagSafe充電器を追加で買う必要があるのはコスト的に結構厳しめかもしれない。 SwitchBot カーテン 第3世代 SwitchBot カーテンからの買い換え。一世代しかしらないけど、何故か第3世代らしい。従来品よりはやいし、静かに動かすこともできるし、取り付け、取り外しも簡単になっている(構造としては変わらないけど、作りが改善されている)し、位置調整がメチャクチャ簡単になっている。従来品(Amazonによると第2世代)より2,000円高いけど、こっちを買った方が良いです。 BREENHILL テーブルマット 100x40cm ほんとは120x40とかがほしいんだけど、無かったので妥協した。100x40でも珍しいです。マウスパッドとして良いかどうかは分からないけど、トラックパッドを使っていて、ただ何か敷物が欲しいくらいの人にはお勧めできる。裏面に滑り止めがついているけど、これは余り期待しない方が良い。 書籍 あかね噺 買った時はまだ4冊だったのに今は9巻まで出ている。ジャンプは続きが出るのがはやくて良いですね。 江戸前エルフ アニメ化もされた。アニメも良いです。 お前、タヌキにならねーか? タヌキになりたい。 Dr....

2023-12-16 · nasa9084