k1LoW/errors...
- 漏れなくスタックトレースをGoで取りたい!
- Goのanalysisとtypesに入門する
Goで静的解析してリンターを実装したい。具体的には、あるT1インターフェース型の変数がスコープにあるときは、T1よりゆるい任意の型の使用を禁止する、みたいな制約を入れたい。その辺に転がっている記事ではASTを覗いてみたり、SSAを覗いてみたりするようだけど、ASTとその型をまともに扱っていつつ、いい感じに静的解析ツールとして仕上げる記事を見つけられなかった...
- Neovimにlazyを入れてプラグイン管理することにした
これまで特にプラグインを使っていなかった(それくらいで済む用途にしか使っていなかった)のだけど、カラースキームを指定したくなったのでプラグインマネージャを入れた。
- AHK入門
Windowsマシンでキーボード操作が不便なので導入する。悪態をつきながらも使っている人を知っているので内容を理解していないが期待している。
- 認可に入門 wip
https://www.osohq.com/academyこれを読んで認可に入門します。頑張るぞ〜!
- 半開閉区間
コンピュータで区間処理するときは半開閉区間で持つことが多い気がしている。もはや信仰のレベルで身についているので自分一人で決めて終わりなときはそれで良いのだが、説明が必要なときに困る。そのときのために良さげな参照を集めておく。
- RubyKaigi2024参加メモ
RubyKaigi2024に参加したので、思ったことをメモしておきます。
- 2024年4月での振り返り
4月が終わるので(?)最近のことを振り返る。
- hugoで多言語対応始めた
https://github.com/naoyafurudono/naoyafurudono.github.io/commit/b4966a3e96c2a8131da6d623cef85df5c97439baこのコミットみたいな感じで設定したりファイル名を変えたりすると、いい感じにパスを掘ってくれる...
- ElmアーキテクチャをReactで実現する話
リアクティブプログラミングの勉強をしていた頃にElm言語を知って好きになった(全然コード書いてないけど)。特徴はElmアーキテクチャにあると思っている。Webアプリケーションの大体のフロントエンドアプリケーションはこう言うアーキテクチャで表現できるはず、みたいなことを言っていて、そのアーキテクチャが簡単なので気に入ったのだろう...
- Nextjsのプロジェクトにstorybookを導入してみた
https://github.com/naoyafurudono/timer/pull/1
- 推し言語機能 Racket編
この記事はGMOペパボエンジニア Advent Calendar 2023 🎅会場の19日の記事です!
- 2023-09振り返り
今月はインカレの運営準備と仕事を頑張った。またカレーとボルダリングを始めた。
- GASでスライド生成
Google Slidesで作成したテンプレートファイルに文字列を置換する形でスライドを生成するスクリプトをChat GPTに書いてもらったのでメモ。
- ベストバイ
酔っていて興が乗ったので「しばらくの間で買って良かったもの」N選をやります!!
- ブログを分割したい
このブログは日記も開発っぽいことも両方書いてある。これらを別のサイトに分けようと考えている。
- 契約と型検査
プログラミングの型検査・契約・テストについて書きます。お酒を飲みながら書きました。注意は払ったつもりですが、変なところがあるかもしれません。
- タスク分解と見積もり
見積もりとかについて真面目に考えてみる。
- dotfilesのセットアップスクリプトを書いた
dotfilesをGitHubで管理しているのだが、今までは設定ファイルの管理だけで、インストールは手動で行なっていた。設定ファイルを使いまわせるだけでだいぶ便利なんだけど、コンテナ環境の中で作業したくなると、手動インストールに耐えられなくなる。そこで重い腰を上げてセットアップを自動化した...
- arm64のメモ
Cコンパイラを実装するためにarm64のことを調べている。この記事はそのメモ。
- 2023-05振り返り
月末なので気まぐれに今月を振り返る。
- alcoholタグの運用
ブログの"alcohol"タグをいつからか使い始めた。当初はお酒に関する記事につけるタグのつもりで使い始めたのだが、この度アルコールが入った状態で書いた記事にもつけることにした。
- 学生生活の振り返り(技術)
昨日学籍を失って、こんど入社式に出る。学校に入ったり研究室に所属したり、就職したりするときには自分が抱える課題と向き合い、自分の幸せについて考えて進路を決めてきた。これから先はそういう機会が来たことに気が付きにくくなるだろう。
- GitHub Actionsの実行結果をDiscordに通知
このブログはGitHub Actionsでデプロイしているのだが、ここしばらくデプロイに失敗したことに気が付かずに放置してしまっていた。
- Hugoのマークダウン処理をカスタム
HTML文書のheading要素の周りにはidがついていてほしいし、それへのリンクは手軽にコピーできて欲しい。その点Googleのドキュメントはとても好き。人に文書コンテンツを渡すときにこちらの意図がURLで表現できるし、そのリンクを踏んだ側も見るべき箇所にスムーズにたどり着ける。このブログを書くのに使っているHugoでも同じことをした...
- 使い勝手の良いデスクトップ向けウィンドウマネージャが欲しい
使い勝手のよいウィンドウマネージャがWindowsとかMacに搭載されることはないだろう。使うアプリケーションやブラウザ、入力デバイスやその使い方によって使い勝手が大きく変わるだろうから。OSが決め打ちで提供できるものでは無いんじゃないかと思う。なので自分でまじめに使い勝手の良いものを考える必要がある...
- エフェクトハンドラの良さと実用性について
エフェクトハンドラで継続や代数的エフェクトを扱う必要性は一ミリもなくて、実用的にそれらが欲しくなることはないか、あるいは限られていてそこまで一般的な機能を提供する必要はないんじゃないかと感じている。
- Google Cloudの認証を必要とするアプリケーション開発について
Google Cloudの認証・認可はきめ細かくちゃんとしている感じがして、扱うのが難しいと感じていた。少し調べたらApplication Default Credentials with client...
- Linux (gnome) でよくやる設定
GNOMEというかLinuxというかでよくやる設定を列挙する。キーボード系が多いと思う。
- 軽いドキュメントを印刷するためのツールが欲しい
さくっと書いた文書を印刷したいことがある。ビジネスライクな手紙とか、その日のTODOリストなんかがそうだ。LaTeXやMadokoを使うのは大げさな感じがして、諦めて手書きするか、Google...
- PCの構成メモ
PCを自作して使っているのだけど、どんなパーツを使ったか忘れて後でなにか買い足すときに互換性があるかわからなくてこまる。今回調査してメモしておく。
- HugoでタグをつけるためのTips
車輪の再発明ではあるだろうけどメモしておく。archetypes/にhugo newで生成する.mdファイルのテンプレを置くことができる。そこにありうるすべてのタグを書いておけば、記事を書くときに関係ないタグを消すことで、関連するタグを忘れずにつけることができる。
- 好きなPL本
プログラミング言語を勉強するとイディオムとかその言語界隈でのベストプラクティスが学べて良い、みたいなことが巷でよく言われる。確かにそれはそのとおりだとぼくも感じるのだが、雑にチュートリアルをこなしたりするだけでは言語をよく学べないだろうと思うし、良い情報源を見つけることはそんなに簡単ではないと感じている...
- Pythonのジェネレータをyieldで書く例
Pythonのジェネレータ(というよりyield)の挙動を示す例を書いた。二分木を作るgenと、ノードを探索してその内容を表す文字列を返すジェネレータを返すconvを定義した。convがこういう風に定義できることを例で確認したかった。
- 2023年にやりたいこと
来年の抱負じゃないけど、一息ついたタイミングでやりたいことを整理しておくとどこかのタイミングで役に立つかもしれない。
- git grep で検索して置換
git grepは便利なのだが、置換の機能がない。ぐぐるとsedと組み合わせて置換する方法がたくさんでてくる。スクリプトファイルに書き込んだのでメモしておく。
- 読書メモ: Go言語による並行処理
ちゃんと読もうと思ったときのための自分向けのメモ。
- Hugoでページネーションを無効化
このコミットでトップページのページネーションを無効化した。やったことは以下の通り。
- Church Encoded List in JS
Charch encodingで書いたリストの動くものがほしかったので書き下した。isnilを実現するためにコンスをisnil、car、cdrからなるペアとして表現した。
- Mozc のデフォルトエンジンを設定する方法 2022 Oct
設定ファイルを書き換えるとmozcのデフォルトを日本語入力にできる。Ubuntu22.10でしか試していないことに注意。
- aptのドキュメント整理
雰囲気でaptを使っていて、リポジトリ周りの扱いに困ることがある。この手のツールは一生使うだろうから勉強して損はないだろう。この記事には読んだドキュメントと一言コメントを残しておく。
- エフェクトハンドラと依存性注入の関係について調べる (文献調査)
僕はエフェクトハンドラについてそれなりに理解していると思う。一方で依存性注入についてはふわっとしか知らない。
- Linuxコマンドがわからない学部生について
学部生や教育を非難したり愚痴を言ったりするつもりはない。
- 格安の引越し業者が良かった
今日引越しをした。1年半くらい住んだ家から学校の近くへ引越した。動機は学校がオフラインになったから。告知から実行までが短くて困った。2週間後から週4で対面参加せよと言われて強引だなあという気持ち。なんにせよ、この状況では学校の近くに住むのが有利なので引っ越すことにしたのだ。新居はそれなりにいい感じで、部屋も十分広いし町もよいところに感じた。不満は坂があることと、水回りの設備に伸びしろがあること...
- Wishlist
欲しい / つくりたいソフトウェアのリスト。随時更新していく。
- Syncthingがよさげ
オープンソースのソフトウェアでSyncthingというものを知った。LAN内のデバイスとはLAN内で、インターネットの先にいるデバイスとはインターネット越しにファイルを同期できるソフトウェアだ。予めクライアントをインストールして、ディレクトリごとに共有設定をしておくと、設定に応じてよしなにファイルを同期してくれる...
- 落し蓋
ひじきの煮物をつくったのだけど、あまり上手にできなかった。その原因をさぐりたい。
- 「桜井政博のゲーム作るには」がおもしろい
桜井政博のゲーム作るには というYouTubeチャンネルが面白い。ゲームの仕組みに関する知識を説明してくれる。動画のクオリティがすごいし、何より内容が面白い。
- Daily Note: 腕時計の電池交換
コロナが流行ってから外出する機会が減りそれにともない腕時計をつけることも減った。今度腕時計が必要な用事があるのだけど、電池が切れていたので交換してもらってきた。1320円かかって、15分ほどで対応してもらえた。電池を買うと500-600円くらいかかるだろうし、工具代はもっとするだろう。作業としては簡単な気がするが、この値段でやってもらえるのはありがたい話だ。この時計の電池交換を何回することになるかはわからないが、それ以外に使いみちのない工具をさがしたり、管理する手間を考えれば安いものである。良い価格設定をしてくれている感じがして、あの時計屋さんを好きになってしまったかもしれない...
- Ubuntu22でスクリーンショットの保存先を変える方法
Ubuntu22でデフォルトのスクリーンショットアプリはおしゃれな見た目をしていてかっこいいのだが、保存先を変える設定が見当たらなくて困っていた。デフォルトでは ~/Picture/スクリーンショット/ に保存されるのだが、~/Desktop/ に保存されてほしいのだ。
- Todo Appを作っている話
この記事は書きかけです。
- Python のfilter関数が良い
ドキュメント を読むのが早い。
- Reactのしくみを学ぶ
この記事は僕の勉強メモです。資料へのポインタが主なコンテンツになるかと思います。更新は随時入るでしょうし、煩わしいので追記した旨も基本的には記しません。
- 救急でのITシステムについて
全然詳しくないのだけれど、救急で受け入れ先の病院が見つからない問題は改善する見込みはあるのだろうか。きっと受け入れのプロトコルやデータの管理方法や、病院のキャパビリティに課題があるのだろう。プロトコルやデータ管理はITシステムをうまく構成して普及できればなんとかなるはずだ。そういうことを実現しようとする事業は既に存在するのだろうか。少なくとも今はまだ成功していないのだろう。どんなところが実現に対しての障壁になっているのだろうか...
- 円周率とユークリッド空間
タイトルがこの記事の主なコンテンツなのだが、円周率はユークリッド空間に対して定まる量なのだろう、という推測と同じことを主張しているサイトの紹介をする。
- Local File Transfer
近距離でのファイル交換はあまり洗練されていない印象がある。Apple製品間ではAirdropが使えるし、Windowsにも似たような機能があったはずだ。でも汎用的に(たとえばOSを気にせずに)使える機能は見かけない。そういうときにはGoogle...
- REPLと単体テスト
Pythonのことを考えていて、TDDの文脈での単体テストの意義にふと気がついた。つまり、失敗するテストを先に書いて、それを通るように実装をする、という方法論の意義に気がついた、ということだ。
- UNIXでのパーミッション周りでの振る舞いを調べた
systemcallを初めて書いた。パーミッションの挙動を調べるのがモチベーション。以下を実行できてほしかったのだが、sudoにそんなファイルは無いと怒られてしまう。
- Systemd
systemdでxremapを追加して、システム起動時に勝手にxremapが走るようにした。
- Spotify at Commit
Spotifyの再生が一瞬途切れることがある。そしてそれがシェルコマンドを叩いたタイミングと重なる。どんなカラクリなんだろうか。ただの気のせい?さっきはコミットしたときに一瞬途切れた。
- Shell Commands
パーミッションのことが気になって、シェルコマンドのソースコード(C言語)を読んでいるのだけど、読んでいて楽しい。rm から読み始めたのだが errorno やコマンド引数の扱い方、トラバース (ftsを使う) の書き方で学びが得られた。Goのエラーハンドリングの強さが分かる。
- 競技プログラミング
数ヶ月前からときどきAtCoder (my account) のコンテストに参加している。就活とか関数型ではない言語でのプログラミングを意識して始めた。今回のABCで灰色を脱して茶色になったので記念に記録しておく。
- Phantom Type
Phantom type (幽霊型) をチラッと学んだのでメモ。きっかけは Gentrification gone too far? affordable 2nd-class values for fun and (co-)effect を読んでいるときに出てきたこと。
- コードブロックの表示
コードブロックの表示が気に入らない。設定をいじって白地にしたい。現状では黒地。というのは、ブログの背景が白だし、僕が普段白地になれているから。白地を養護する主張 に影響を受けた。実際目が楽になったような気がする。
- Golang の変数キャプチャ
Golangの変数キャプチャを勉強する。
- JavaScript The Good Partsを読んだ
読んだ。きっかけはTypeScriptの関数型言語好き向けの紹介ページで事前知識として要求されていたから。読んでよかったと思う。しっかりJSの知れたのではないかと(その判定はまだできないが)。とはいえまだまだ知るべきGood...
- 趣味
心に残った作品を列挙しておく。順序に意図は無い。ちなみにこの記事はお酒によったときに書いたり追記したりしている。
- Golangでのlog
Golangの標準ライブラリにlogがある。いろいろ関数が提供されているが、機能はざっくりいうと「引数で与えたメッセージにタイムスタンプをつけて標準エラー出力に流す」みたいな感じ。ログにレベルをつけようと思うとこれでは足りない。レベルというのは、DEBUGとかERRORみたいなやつ。書くログ関数にレベルを設定した上で、グローバル変数とかで現在のレベルを設定する。プログラムを実行すると、現在のレベルで有効なログ関数だけが発火する...
- 投票所のシステム
選挙に行ってきた。そこで投票用紙を一枚差し出す機械を見て驚いた。あの機械が何をやっているのかは定かではないが、おそらく正確に1枚だけ投票用紙を有権者に渡すことが責務の一つなのだろう。そんな機械があるのはびっくり(皮肉を言いたいわけではない)。正確に一枚の投票用紙を渡すことは法律を遵守するために必要なことだし、機械を使わずに人の手で配る場合、複数枚渡すミスは確実に起きるだろう。なので、そこを徹底することは尤もだと思う...
- Go Context
Golangで始めてcontextを使った。リポジトリは非公開なのであしからず。
- UbuntuでIpv6を無効化する
学内ネットにVPN接続してIEEEの論文を取得しようとしたが、学内からのアクセスだと認識されなかった。IPv6を無効化するとうまくいった。
- Ubuntu22.04でZoomの画面共有がうまくいかなかった件
追記: 先日画面共有しようとしたところ、うまく相手に表示されなかった。Zoomから退出して、Ubuntuにログインし直し、ウィンドウシステムをWayalndからXに切り替えたところうまくいった。やはりXが安定なのか。
- NeoVimでクリップボードを使う
init.vimにset clipboard+=unnamedplusと追記する。
- Begin Rust
Rustを勉強している。やはりライフタイムとか借用のあたりで苦労している。所有権やライフタイムはわかるのだが、借用の仕組みがイマイチわからない。特に可変な借用が同時に複数あってはならない、という規則で、同時にとは一体?という気持ちになる。同時の概念を理解させてくれる文書に出会えていない。これが原因で詰まった話をする。一応問題の回避はできたが、腑に落ちきっていない...
- Favicon
ファビコンをつけてみた。素材はJDENTICONで生成した。それをもとにfavicon用のファイルをFavicon.ico & App Icon Generatorで生成。