坪井正太郎の文章置き場

Twitterに書くには余白が足りないやつ

名前の話

小さい頃、多分小学生とか中学生のときは自分の名前がきらい。とまではいかずともすきじゃなかった。 「坪井 正太郎」って、まあ「坪井」は許すとして、「正太郎」って古くないか? 世間的にはシワシワネームって言うのがあるらしくて、まー微妙なところだけど、片足突っ込んでる気がする。 でもまあ、高校生くらいになると流石に慣れるし、大学まで来るともうカッコイイ名前とかいらんなぁって思えてくる。 ほぼほぼ名前を間違えられること無いし。 (と、言いつつ、研究室のHPの読みが二年間「せいたろう」になってた笑) なにより、「正しい」太郎ってヤバくないか? 名は体を表すというけども、世の中大体のことは俺が正しいぜ。 なんだこれは。

12月 21, 2023 · 1 分 · tbistr

SWエンジニアとしての0丁目0番地の話

ソフトウェアエンジニアとして一番重要なのは、著作権に対する意識だと思う。 いや多分これ読んでる人の殆どは、「そんなの言われなくてもわかってるよ」って思ってるはず。 だけど、Twitterを見てると普通に企業で働いているエンジニアでも意識低いなーって人が結構いる。 簡単な例だと、アイコンにアニメの切り抜き、他人のイラスト使ってる人、コラ画像リプ、大喜利、引用に当たらないコピペ、スクショ。 まあ、ネット上での著作物の扱いはこのレベルが普通になってしまっていて、そもそも著作権侵害が非親告罪であることから即ち悪と断ずるつもりはあんまりない。 (ただし画像リプとか大喜利はクソ寒いしダサいので悪。) でも、SWエンジニアとして生きてくつもりの人間は特にこれらの違反に気をつけてほしい。 理由は簡単で、SWエンジニアのお仕事の殆どは著作権法のお陰様だから。 特にOSSが成り立ってるのは著作権を保有しつつ他人に公開できるからで、著作権が存在しなかったらライセンスを守らせるのは難しい。 それに、こんな基本的な法律に対して意識低い人間が、商業ソフト開発に関わったときに他のリーガルリスクを意識できるわけ無い。 個人情報の扱いとか、機密保持とか、(本来企業がシステムで責任持つべきだけど)余裕で踏み抜きそう。 そういうわけで、俺はネット上での活動で他人の著作物を不適切に使わないように気をつけてるし、みんなにも気をつけてほしい。 他にも個人開発のサービスが「出会い系サイト規制法」とか、「特定商取引法」とか技術と関係ない側面で問題になるリスクもあったり、とりあえず頭の片隅に常にリーガルリスクを置いておくようにしてね。

12月 20, 2023 · 1 分 · tbistr

好きで危険なスピーチ「壁と卵」

2009年に村上春樹がエルサレム賞の授賞式に参加した時、イスラエルとガザで大規模な衝突があったばかりで、2023年現在と同じくイスラエルにも国際的な批判が集まっていた (当時9歳なのでリアルタイムで把握していた訳では無いけどね)。 そういう環境で授賞式に現地参加することについて、日本国内で行くべきではないという意見があったらしい。 そういう論に対して、参加した意図と自らの小説家としてのスタンスを示したスピーチが「壁と卵」だ。 全文はここから読める。 短いので読んでみてほしい。 壁に投げつけられる卵をメタファーとして、「爆撃機・戦車と非武装市民」、「システムと個人」を壁と卵の関係に当てはめている。 この関係の中で、どれだけ卵が間違っていたとしても常に卵の側に立ち、そこにある個人の尊厳に光を当てるというのが、村上春樹の小説家としてのスタンスであることを表明している。 もしここに硬い大きな壁があり、そこにぶつかって割れる卵があったとしたら、私は常に卵の側に立ちます。 最後にメッセージとして、システムに利用されるのではなく、人間がシステムを利用するのであり、壁に人間の魂の温かさをもって立ち向かうことを説いている。 私がここで皆さんに伝えたいことはひとつです。国籍や人種や宗教を超えて、我々はみんな一人一人の人間です。システムという強固な壁を前にした、ひとつひとつの卵です。我々にはとても勝ち目はないように見えます。壁はあまりにも高く硬く、そして冷ややかです。もし我々に勝ち目のようなものがあるとしたら、それは我々が自らのそしてお互いの魂のかけがえのなさを信じ、その温かみを寄せ合わせることから生まれてくるものでしかありません。 考えてみてください。我々の一人一人には手に取ることのできる、生きた魂があります。システムにはそれはありません。システムに我々を利用させてはなりません。システムが我々を作ったのではありません。我々がシステムを作ったのです。 このスピーチに出会ったのは多分中学生か高校生の頃で、ぶっ刺さって何度も読み返した。 システムVS個人、壁VS卵という対比が非常に単純かつ印象深い。 壁が正しく、卵が間違っていてもそれでも常に卵の側に立つというかっこよさ。 リベラルな世界観をある種のマッチョさで成立させてる。 だけど、最近はこのスピーチって結構危険だと思っている。 というのも、メタファーとしての壁と卵が村上春樹の言葉で語られることで、すべての構造が壁と卵の話になってしまう感覚があるから。 現実で起きてることはもっと複雑で、もちろんその複雑さを無視しているわけではないことはちゃんと読めばわかる。 システムは本来我々を護るべきものとしているし、すなわち壁を単純に悪としているわけではない。 だけど、メタファーとか物語って強力で、絶対引っ張られちゃう。 世界の中で複雑なものを複雑なまま語ることは難しいし、だからこういう分かりやすいメタファーがあるとすごく真理に見える。 (実際には小説家としてのスタンスの話なんだけどね。) このスピーチに限らず、言語を通した時点で現実の複雑さのごくごく一部を切り取ってしまう。 村上春樹ほどの力強さがなくても、メディアとしての言語の性質だと思う。 どんだけ気をつけてエクスキューズをつけても、多分人間の言語認知の限界にぶち当たる。 メタファーを使うときは現実からどんな部分を抜き出して、どこを共通化しているかというのを共有してから語る必要がある気がする。 そんな感じで、最近は凄く感動する文章に出会っても、自分の中で現実の思考とは別の部分に保存するようにしている。 当然、適切にモデリングしたり、説明に利用したりはするけど、常に言語化出来ない巨大な現実の部分を忘れたくない。 おまけ 俺個人としてはわりとシステムを信奉しがちで、システムの中の個人という考え方が好きだったりする。 (そのことと紹介したスピーチを美しいと思うのは、別の感覚。) 個人はシステムの上に立っているし、システムっていうのも個人の集合体であるという考え方。 (壁の中に人間とか、なんか進撃の巨人みたい。) なので、刑事ものとか、巨大な構造の中での人間ドラマとか、そういう物語が好き。

12月 18, 2023 · 1 分 · tbistr

Mac OSとKarabinerに分からせられる (T_T)

Karabiner-Elementsというアプリを使うと、Mac OSでもAuto Hot Keyっぽいことができるらしい。 Auto Hot Keyってのは、キー入力をカスタムしたりマクロを組めるWindows用のアプリ。 俺はこれを使ってゴリゴリにキーバインドをカスタマイズしてて、というかWindowsを使う一番の理由がこれだったりする。 (キーバインドについては今度Zennで記事に書くわ) で、Karabiner-ElementsっていうのはMac向けにキーバインドをカスタマイズできるアプリ。 存在は知ってたんだけど、まあキーの入れ替えくらいでしょ~。と思ってた… 今日研究室でMac使ってる後輩とキーバインドの話してて、Karabiner-Elementsの画面を一緒に見てたらなんか複雑な事できるじゃん!ってなった。 色々調べたりしてたら、俺がWindowsでやってることは大体できそうな感じ。 もー…🐄 これまでせっかくMac避けてたのに、Apple Siliconの性能はいいし、相変わらず筐体の作りはいいし。 ほじいよぉ~… 最後に、俺の好きな動画に気持ちを代弁してもらいますわ。

12月 17, 2023 · 1 分 · tbistr

「Go言語 100Tips ありがちなミスを把握し、実装を最適化する」を読んだ

「Go言語 100Tips ありがちなミスを把握し、実装を最適化する」を読みました。 良い本だったので、紹介しようと思います。 どんな本? Goのコードを書く上でありがちなミスや、より良い書き方について解説している本です。 対象読者はGoをある程度使ったことがある人で、基本的な文法だけでなくインタフェース機能や並行処理などの高度な機能を使ったことがある人が想定されていると感じました。 簡単に章立てと内容を紹介します。 章タイトル 内容 Go言語-学ぶのは容易、習得は難しい Go言語の概要と思想について コードとプロジェクト構成 インタフェースによる抽象化やパッケージレベルでの品質向上 データ型 スライス、マップを中心に背景のデータ構造から効率的な使い方を知る 制御構造 ループでのありがちなミス等を紹介 文字列 文字列のデータ構造と扱い方 関数とメソッド レシーバ、引数、返り値のベストプラクティス エラー管理 panic、ラップなどエラー処理の基本 並行処理:基本編 並行処理とは何か、Goでの扱われ方とありがちなミスについて 並行処理:実践編 チャネルやMutexを利用した高度な同期手法について 標準ライブラリ time, json, sql, httpなどの標準ライブラリの使い方、ありがちなミスを紹介 テスト Goのテストに便利なパッケージ、効率の良い実行方法について 最適化 GPUのキャッシュを背景に効率の良いコードの書き方、プロファイルの手法について 良かった点 全体的な特徴として感じたのは、解説の分量が特定の分野に寄っていないので、ユースケースを満遍なくカバーしていること。 また、各解説の中ではスライスやマップのデータ構造を共通軸に持っているものが多く、その辺の基本的な理解を汎用的なケースに応用できるようになっていると感じました。 並行処理についての記述もかなり充実していて良かったです。 この本で一番ページが割かれている部分でもあり、章として2つに分かれています。 基本編ではそもそも並行処理とは何か、GoのランタイムとCPUコアの関係といった基礎知識から説明しているので、実際に並行処理を書いた経験が少ない人も読みやすいと思います。 微妙だった点 翻訳本に共通する問題かと思うんですが、多少読みにくさはあります。 別に冗長ということでもないんですが、目が滑る感覚があって多少読むのに時間がかかりました。 まとめ とりあえず、Goをガンガン使っている人は読んでおいて損はないと思います。 この本で扱われているTipsにはベストプラクティス(こうした方がいい)と、アンチパターン(これしちゃダメ)があります。 このうちアンチパターンの方は知っていないと避けられないものもあるので、特に重要だと思います。 なので、ざーっと目を通しておいてアンチパターンに遭遇したとき「なんかこれヤバそうだな」と思える程度にアンテナを張っておくのもオススメの読み方です。 個人的には、ループ内でのスライス、deferの扱いが特に参考になりました。 逆に、最適化の章はページ数が割かれている割に使う機会が少なそうだと感じました。 (章の最初に「読みやすいコードは最適化されて複雑なコードより良い」と明言されているので、実際著者としてもそういう認識と意図があるんだと思います。) かなりおすすめでーす。

11月 11, 2023 · 1 分 · tbistr

テック記事を自分のブログで公開するのをやめた

このブログでちょこちょこテック記事を書いてたんですが、zennに移植しました。 もともと記事をGithubで管理したかったのと、特定のサービスに依存したくないという理由で自分のブログで記事を公開していました。 この前Zennのパブリケーション機能を知って、バイト先でも登録してもらいました。 試しに記事を書いてみたところ使いやすいし、どうやらGithubのリポジトリと連携できるようなので、移植してみました。 そういうわけで、今後はこのブログではテック記事は書かないと思います。 今までの記事、新しい記事はZennの方で公開しています。 https://zenn.dev/tbistr

10月 26, 2023 · 1 分 · tbistr

2023年上半期に聞いてよかった曲

2023年上半期良かった曲 2023年も半分過ぎましたけど、体感起きてる時間の3分の2くらいはSpotifyで音楽聞いてるので、良かった曲を40曲紹介します。 プレイリスト公開しているので、こちらから聞いてみてね。 Spotify契約していない貧乏人のためちょっとだけ聴けるリンクも貼っておきます。 本編

6月 5, 2023 · 1 分 · tbistr

自己紹介

基本情報 坪井正太郎といいます。 名古屋大学情報学部でCS、特に組込みシステムについて学んでいます。 Go言語をよく書いていますが、Kotlinが好きです。Rustにも興味があり、組み込みRustとかを頑張っています。 趣味はバイクで、HONDAの400Xに乗ってます。旅はそんなに好きじゃないので、毎日名古屋市内を流してます。 そんなかんじ。追記するかも。

11月 23, 2021 · 1 分 · tbistr