nikkie-ftnextの日記

イベントレポートや読書メモを発信

nikkieと「ほげ言語」のパラドックス 〜"Pythonで考えていた"からインターフェースの理解が難しかった説〜

はじめに にゃんにゃんにゃ〜ん!nikkieです。 先日のPHPカンファレンスで「ほげ言語」のパラドックスを知りました。 自分の経験が「ほげ言語」のパラドックスと呼べるものだったんじゃないかと気づき、その思考ログを記事に残します。 目次 はじめに 目次 …

ツライ時に聞きたくなる「たとえ夢をなくしたとしても未来がなくなるわけじゃない」

今日は現実の厳しさに打ちのめされており、いつもとテイストが違います 目次 目次 ツライ そんな時に思い出す『白い砂のアクアトープ』11話 現実を生き抜け P.S. ツライ Act-4 Day-2の現地チケットが、取れませんでした。 泣いた pic.twitter.com/Q5y5A37hpe…

続・Ryeのworkspaceで複数のパッケージを同時に開発している時に、workspaceのルートでmypyを流す(strictモードで流すための対応案)

はじめに START THE DREAM nikkieです。 先日のRyeのworkspaceとmypy(pytest)の記事のアップデートをお届けします。 mypyをstrictモードで流すために対処せねばならぬ点がありました。 目次 はじめに 目次 前回までの、Ryeのworkspaceのルートで流すシリー…

Ryeのworkspaceで複数のパッケージを同時に開発している時に、workspaceのルートでpytestを流す(ModuleNotFoundErrorを--import-mode importlibで解消)

はじめに 郁原ゆうさん1、お誕生日おめでとうございます。nikkieです。 Ryeを使った開発をきっかけに、pytestのドキュメントに当たりました。 なぜpytestがModuleNotFoundErrorを送出するのか、少し理解が深まったように感じています(sys.pathが絡んでるん…

Ryeのworkspaceで複数のパッケージを同時に開発している時に、workspaceのルートでmypyを流す(error: Duplicate module named "..."を--explicit-package-basesで解消)

はじめに ごみけついきたい、nikkieです。 Ryeを使った開発をきっかけに、mypyのドキュメントにあたりました。 mypyにディレクトリのパスを渡した時にどう動いているか、少し理解が深まった感覚です1。 目次 はじめに 目次 Ryeのworkspace workspaceの例 リ…

Ryeで環境構築して開発中の自作Pythonライブラリを含んだDockerイメージをビルドする

はじめに ミリシタ新イベ、転天革命じゃん... nikkieです。 今回はRyeに慣れるために素振りしたクソライブラリをクソDockerイメージにしていきます! 目次 はじめに 目次 前提:Ryeに慣れるために素振りしたクソライブラリ 結論 Dockerイメージビルドのため…

sphinx-revealjs製のスライドをGitHub Pagesで公開するためのリポジトリの初期設定

はじめに ばーい!1 nikkieです。 発表資料を作るのにsphinx-revealjsを愛用しています。 年1ペースで発表資料リポジトリを作っているのですが、先日PHPカンファレンス関西2用のスライドを公開しました。 その中で実施した初期設定を未来の私に伝えるために…

YAPC::Hiroshima 2024のそーだいさんのトーク「コミュニティと共に生きる - キャリアの螺旋」がよすぎて、余韻に浸る日々です #yapcjapan

はじめに さすそー1、nikkieです。 先日のYAPC::Hiroshimaから、そーだいさんのトークを取り上げます。 現地でも聞き入ってましたし、スライド見返したりリンク先見返したりと、余韻が続いてるんですよ。 目次 はじめに 目次 コミュニティと共に生きる - キ…

YouはどんなきっかけでYAPCに? Python使いと #yapcjapan

はじめに ショコラブル♪ nikkieです。 先日YAPC::Hiroshima 2024に参加してきました。楽しかった! このエントリでは、Python使いの私が、Perlを軸とするカンファレンスYAPCに参加し始めたきっかけを記します。 Python使いはどんなきっかけでPerlのカンファ…

登壇報告 | #phpkansai #c にて「テストコードが書けるようになって『変更したけど壊してないかな』という不安を解消しませんか?」と発表しました

はじめに はーいほーーーーー!! nikkieです PHPカンファレンス関西2024、素晴らしいカンファレンスをありがとうございました! このエントリは、タイトルが全てです。 目次 はじめに 目次 テストコードが書けるようになって「変更したけど壊してないかな」…

タグ付きユニオン(Tagged Unions)をさがして

はじめに 君を退屈から救いに来たんだ♪ nikkieです。 YAPC::Hiroshima 2024で聞いた伊藤直也さんのトークから気づきを1本したためます。 タグ付きユニオン、完全に理解したと思う! 目次 はじめに 目次 (再演) 関数型プログラミングと型システムのメンタルモ…

#phpkansai のPHPerシールのQRコードの仕掛け

はじめに はーいほーーーーー!! nikkieです PHPカンファレンス関西2024に参加(登壇)してきました! めちゃめちゃ楽しかったです! 今回はPHPカンファレンスでお渡ししたPHPerシールの仕掛けを明かしちゃいます。 目次 はじめに 目次 PHPerシール QRコー…

YAPC::Hiroshima 2024 参加ブログ [速報] 頭もお腹も満たされた1日、今年もめっちゃ楽しかった! #yapcjapan

はじめに ブログを書くまでがYAPC、nikkieです。 YAPC::Hiroshima 2024に参加してきました! 参加をdoneにするにはブログが必要です。 いまブログがないのでテスト駆動開発でいうと1Redの状態なのですが、ここは一つ参加ブログを仮実装してまずはGreenにした…

そうか、シンボリックリンクを使えばコマンドのバージョンを切り替えられるのか!(phpunitを例に)

はじめに 広島のnikkieです。 めちゃ基本的なことだと思うのですが、使い方をようやく得心したことについて書いていきます。 目次 はじめに 目次 PHPUnitをPHARでインストール シンボリックリンクを使えば、PHPUnitのバージョンを簡単に切り替えられる! 終…

sphinx-quickstartコマンドを対話的に使わない(必要な引数を含めたマシマシ呪文詠唱!)

はじめに 一方通行<アクセラレータ>! nikkieです。 ドキュメンテーションツールSphinxには、ひな形となるディレクトリ構造を作ってくれるsphinx-quickstartコマンドがあり、とても便利です。 私はこれを対話的に使わないという使い方をしています。 目次 …

Pythonでsortedのkey引数にlambdaを渡すときは、代わりにoperatorモジュールのitemgetterやattrgetterを使ってみませんか?

はじめに 「頑張れ!」ってきっと 愛してるって言葉♪ nikkieです。 今回はPython標準ライブラリの中から推しライブラリの1つを取り上げます。 その名もoperator! この中からitemgetterとattrgetterをご紹介! 目次 はじめに 目次 operatorのitemgetter・att…

#phpcon2022 のトーク「実践!ユニットテスト入門」がとってもよかったです👏 テストを書き始められる5つの知識✨

はじめに 「頑張れ!」ってきっと 愛してるって言葉♪ nikkieです 2/11のPHPカンファレンス2024登壇1準備より1ネタ。 PHPカンファレンス2022にとてもよいユニットテスト入門トークがありました。 目次 はじめに 目次 「実践!ユニットテスト入門」 ここがよか…

PHPUnitのドキュメントを機にxUnit Test Patternsのサイトを確認し、Test Double・Stub・Mockを整理 〜広義のモックと狭義のモック〜

はじめに 「頑張れ!」ってきっと 愛してるって言葉♪ nikkieです 2/11のPHPカンファレンス2024登壇1準備より1ネタ。 PHPUnitのドキュメントのTest Doubleを読んだところ、モックについて気づきがありました。 目次 はじめに 目次 PHPUnitのドキュメント「6. …

OpenAIのPrompt engineeringのドキュメントから、LLMの出力をGPTに評価させるケースのプロンプト例を理解する

LLM

はじめに 「頑張れ!」ってきっと 愛してるって言葉♪ nikkieです OpenAIのドキュメントの中にはプロンプトエンジニアリングを扱ったガイドがあります。 https://platform.openai.com/docs/guides/prompt-engineering その中で「分量多いな」と避けていた部分…

nikkie v2024.01 リリースのお知らせ

はじめに きゃー!こころちゃんが地上波に! nikkieです。 月のふりかえりエントリです。 2023年は1日1エントリが常時自転車操業で、ふりかえりは後回しにしてしまいました。 その結果「2023年ってどんな年だったっけ?」というのが思い出しにくく、無理のな…

ミリシタ記:イベントではプラチナランカーを目指すようになりました

最近のミリシタについて綴ります。 目次 目次 私のスタンス:ガシャは諦め、ジュエルを割って走って2500位を目指す 走破ログ 年末上々★はぴやば ギャルPARTY↑↑ catch my feeling 逆ミステリー! 終わりに 私のスタンス:ガシャは諦め、ジュエルを割って走っ…

JSON Linesのあるキーの値を、jqコマンドで1つの配列にまとめる

目次 目次 やりたいことは jqを1回使う JSON Linesを1つの配列にまとめ、各要素からキーの値を取り出して配列生成 jqを2回使う あるキーの値を取り出してから、1つの配列にまとめる あるキーの値から配列を生成し、和を取った1つの配列にする 終わりに やり…

pipxで管理するpip-toolsを使って、プロジェクトの仮想環境に依存ライブラリをインストールする(pip-syncの--python-executable引数が必要)

はじめに ‍♂️1 nikkieです 普段Pythonで開発するときはpipのお世話になっていますが、少し前からpipxなるものの存在を耳にしていました。 どんなツールか知ろうと、今回手を動かしています 目次 はじめに 目次 pipxとは pipxのインストール(macOS) pipxでB…

Q: Pythonではパッケージ管理ツールpipを含まない仮想環境にパッケージをインストールできる。◯か☓か

答えは◯(マル) この記事では、pipを含まない仮想環境にパッケージをpip installします。 「pipを含まない仮想環境」についてはこちらをどうぞ pipコマンドがないですが、pip installします。 大丈夫ですか? ついてこれてます? 書いている私も「正気か?」…

Composerでautoloadを設定したつもりが、PHPUnitを流すと「Error: Class "..." not found」となって苦しみました(写経し損ねたnamespace)

はじめに Namespaces are one honking great idea1、nikkieです。 2/11のPHPカンファレンス2024登壇2準備より1ネタ。 autoloadの設定でハマりました。 ※この記事はハマったこととこうやったら解決できたというログを書き残すことを目的としています。 この方…

3/24(日)の #ooc_2024 はとーっても盛りだくさん!私も変更しやすいコードを書くコツについて話します

はじめに はーいほーーーーー!! nikkieです。 3月はObject-Oriented Conference 2024に登壇します! このカンファレンスと自分のトークを紹介していきます。 目次 はじめに 目次 Object-Oriented Conference 2024 申し込み(本編 & 前夜祭) 【どなたでも…

OpenAIのembedding新モデルのAPIで、英語や日本語テキストからembeddingsやその類似度を計算する

はじめに スケルツォ見てスッキリ。nikkieです。 OpenAIから2024年1月のアップデートが来ましたね。 その中の目玉と思われるembedding新モデルのAPIで少しだけ手を動かしました 目次 はじめに 目次 OpenAI embedding新モデルのAPI APIでembeddingを得て、テ…

からあげさんが『新刊「面倒なことはChatGPTにやらせよう」 の内容だいぶ公開』で紹介したプロンプトを素振りする(みんなのPython勉強会#100 #stapy)

LLM

はじめに 昨晩は100回目のみんなのPython勉強会にご参加いただきありがとうございました。 nikkieです。 いやー、からあげさんと辻さんのトークにLT3本と濃密でしたねー。 そんな中からこのエントリではからあげさんのトークを取り上げます。 紹介されたプロ…

Pythonの内包表記のifの位置

こういう見方ができるな〜と気づいたのでしたためます。 目次 目次 Pythonの内包表記 チュートリアルより、リスト内包表記の例 用語集より 言語リファレンス 式より 内包表記のifの位置に注目する forより後のif forより前のif まとめ:Pythonの内包表記のif…

Pythonで例外を文字列中に出力するときは、str()ではなくてrepr()に渡すのがオススメです

目次 目次 百聞は一見に如かず(タイトル回収パート) 例外をstr()とrepr()に渡して返り値の文字列を比較しよう 違いが顕著な例:何も渡さずに例外を初期化する print()についてもreprを介しましょう tips:f-stringは!rでrepr 執筆の背景:str()で出力した…