- 機械学習システムデザインを読んだ。世界基準の機械学習システム開発の要点を理解するにはこれ一冊読めば大丈夫
- 株式会社メルカリを退職しました - 迷わず行けよ、行けばわかるさ -
- 検索エンジンOSS勉強会 第3回を開催した
- Python x SQLite3 x sqlite-vec で近似近傍探索をやろうと思ったが...
- 「トヨタ式鬼十訓」を読んだ
- 「健康になる技術 大全」を読んだ
- 第8回 Data-Centric AI勉強会 ~Human-in-the-Loop機械学習 特別回~ で登壇した
- 検索エンジンOSS勉強会 第2回を開催した
- 検索エンジンOSS勉強会 第1回を開催した
- Apache Lucene の PR #12962 Speedup concurrent multi-segment HNSW graph search 2 を理解したい 検索エンジンOSS勉強会
- Community Over Code North America 2023 にて Lucene 関係で気になった発表まとめ
- Service Account が実行している BigQuery Job を確認しようとして、Job IDが REDACTED と表示されている場合は権限不足
- 運用コストを低く抑えつつ全文検索機能を実現したい: SQLite3 で全文検索を実現する fts5 、ベクトル検索を実現する sqlite-vss
- 検索エンジンOSS勉強会: Lucene や OpenSearch など検索エンジンOSSへの貢献を念頭にしたオンライン勉強会を立ち上げてみた
- brew install で It seems the App source is not there というエラーへの対処法
- 2024年の目標
- 半年間の育休を終えて
- 2023年を振り返る
- 強さへの旅 プリズナートレーニング 128日目
- GitHub PagesのDNSをCloudflareに移行時にERR_TOO_MANY_REDIRECTS が出た際の対処方法
- 2023年に買って愛用しているもの
- 「Human-in-the-Loop機械学習」の出版を通じた技術書翻訳体験記 #hitlbook
- 能動学習とアノテーションをテーマにした書籍 「Human-in-the-Loop機械学習」を翻訳しました #hitlbook
- 情報検索・検索技術 Advent Calendar 2023 を開催します
- 自分の時間を取り戻せ。時間術大全 人生が本当に変わる87の時間ワザ を読んだ(4年ぶり、2周目)
- Obsidian でプラグインをビルドする
- KDD2023 で気になった採択論文、チュートリアル、ワークショップ
- ビリヤニ事始め
- プリズナートレーニングのワークアウトに集中するための Web アプリを作った
- 強さへの旅: プリズナートレーニング18日目
- Search Engineering Newsletterの更新を休止します
- さよなら Todoist、よろしく todo.txt
- ありがとう、さようなら、僕らの愛したTwitter
- Toggl に舞い戻り、Obsidian の Toggl plugin がやっぱり最高だぞというお話
- サイトへのおたよりを参考にした secon さんから おたより ついた
- jisho.org が提供している漢字検索のためのfacet UI が便利かつ斬新で検索エンジニアとして学びがあった
- 2023年6月時点で愛用しているObsidian のプラグイン
- ここまで変わる!家の買い方 街の選び方 - これからの日本の対局を見据えた現実的な考えを後押ししてくれる良書
- Twitter 形式でメモが残せる Obsidian Memos で「考えるな、書け」を体現できるくらい筆が進むようになった
- 映画「きさらぎ駅」が想定を超えて面白かった
- いつのまにか、Obsidian のPDFビューアーのCJK文字が文字化けする問題が解消されていた
- Google Formの入力欄を自動的に入力済みにするために、Hugoのテーマを改造して、パーマリンク変数をクエリストリングとして事前入力内容にすることで実現した
- 禅の気持ちで心穏やかにブログ記事を書くためにコメント機能を廃止して、試験的におたより機能を開始してみる
- go-ga-toppages, ga-top-pages-py: 静的サイトジェネレーターで作成したサイトの人気ページをGoogle Analytics(GA4)で集計して、マークダウン形式で書き出すPythonとGoのスクリプト
- Elasticsearch 8.8 のリリース内容が盛りだくさんで興味深い
- 肉を美味しく焼くため三千里: 岩鋳のプロ・アルテ グリルパンを買ったが、大成功
- 検索と推薦サービス開発に関わる人達を対象にした、懇親会に全振りしたイベントを開催した
- Google が2021年5月に提唱した夢の検索技術MUMがChatGPTのおかげで急速に実現して夢が現実になっている
- 試験的に自分のブログのRSSで全文配信するのをやめてみる
- 技術書の翻訳作業の最終段階で、 Latex 形式に変換する際に英語だけコメントアウトして、日本語はそのまま残す Python スクリプト
- Twitter の検索システム、Earilybirdの論文を読む
- Blog のテーマを PaperMod から hugo-bearblog に変更
- Obsidian 上で画像の大きさを調整する方法
- (恐らくみんなが求めている)懇親会に全振りした、非公開イベントを計画している
- ワイヤーロックを使えば、出先でもベビーカーを安心して手放せるので、みんなに知ってほしい
- 子供が道中で無限に遊びたがるのに対応するために、持ち運べる椅子を買ったら大勝利
- LLM(大規模言語モデル) 妄想雑記
- Twitter の検索システムを学ぶ - 概要編
- RSSリーダーってのを使ってまして、え、知らない? そういう便利なツールがあるんですよ
- 現在 Lucene の KNN ベクトルの最大次元数は1024次元 だが、それを2048次元に変更できないかという議論
- 同僚との雑談で情熱プログラマーはやはり良いぞと盛り上がる
- Web 検索とデータマイニングのトップカンファレンス WSDM2023 で気になった研究
- 究極手抜きのフワフワだし巻きたまご
- オンライン雑談により、新たな繋がりを作る機会を意識的に取り戻したお話
- 初心者だけど Apache Lucene に貢献したい場合におすすめのチケットラベル
- Slack bot の Eeny がスクラムイベントのファシリテーターを選出するのにめっちゃ便利
- 2023年の目標
- ニュースレター近況
- 時間計測アプリを toggl から Session へと乗り換えてみた
- redis-cli の結果を標準出力として受け取って jq でわかりやすく表示したい
- 2022年分の確定申告
- 「私たちは子どもに何ができるのか」を読んだ
- 2022年に買って愛用しているもの
- Elasticsearch の Go client で有名な olivere/elastic がES8 以降はサポートしないので、利用者は公式クライアントに移行しよう
- Search Engineering Newsletter を substack へ移行します
- Beam summit 2022 雑感
- 情報検索・検索技術 Advent Calendar 2022 を開催します
- env Studio No such file or directory というVisual Studio Code 起因のエラーへの対処方法
- Elasticsearch 8.4 から利用可能な従来の検索機能と近似近傍探索を組み合わせたハイブリッド検索を試す
- Elasticsearchの近似近傍探索を使って、ドラえもんのひみつ道具検索エンジンを作ってみた
- CloudComposer の Variables (環境変数)を gcloud cli で取得する
- Python で zip関数を使う際に、2つの配列が同じ大きさを想定する場合は 3.10 から導入された strict=True を使おう
- Airflow 1系で設定されている環境変数を JSON ファイルとしてGUIを使って書き出す方法
- Meta が公開したデータ処理の効率化・高速化を狙うエンジン Velox が面白そう
- Java の memory map を理解する
- Apache Beam 2.40 で導入された scikit-lean, Pytorch の効率的な推論が可能になる RunInference API を試してみる
- KDD2022 で気になった研究
- poetry show でパッケージ名に (!) が付与されている意味
- 「リーダーの作法」マネジメントに限らず、エンジニアとして仕事の作法について書かれた良書
- Makefile でコマンドの前に @ を付けると、コマンド自身は表示されず結果のみ表示される
- 愛用しているツールを更新: Joplin→Obsidian & TickTick → Todoist
- Label Studio を kubernetes にデプロイする
- Re:プログラム雑談 188回:ゲスト回:MessagePassingの話とか
- 社内でデータ分析結果を可視化・共有する際に Google Colab が便利
- 2022年、はじめてのまともな確定申告
- gRPCurl で `Failed to process proto source files.: could not parse given files:` エラーが出たときの対処方法
- 子供の就寝時に使っているホワイトノイズマシンをGoogle Home から Dreamegg に変更
- slug の作成パターンを変えて、同日に複数の記事を執筆できるようにした
- Google Colab で Spacy による NER の結果を表示するには、jupyter 引数を True にする必要がある
- 自然言語処理トップ国際会議の System Demonstrations について
- Human-in-the-Loop を題材にした機械学習の勉強会を開催した
- 機械学習モデルの改善手法の一つ、 Human-in-the-Loop について
- Googleによる機械学習の実応用をテーマにしたCoursera の講義は、機械学習プロジェクトに携わるなら一度は見ておいても損はない
- タスク管理ツールを Todoist から TickTick へ試しに乗り換えてみた
- Google が公開している、より良いデータ分析のためのガイドブック「Good Data Analysis」で、データ分析の要所が簡潔にまとめられていて感動した
- デスクトップのGoogle 検索の検索フォームUIがかなり変化していた
- Amazon の製品検索で使われるロバストなキャッシュ手法の論文「ROSE: Robust Caches for Amazon Product Search」
- Web 検索とデータマイニングのトップカンファレンス WSDM2022 で気になった研究
- 3人以上のスケジュール調整をする際には、ベータ版だけど Calendly の Meeting polls がとても便利
- オンライン開催前提だからこそ可能な省エネ勉強会運営に振ってみて、勉強会運営を再開した
- 技術的負債は必要にかられて解消するからこそ大きな価値を生み出すのでは? というお話
- Slack チャンネルに GitHub の特定リポジトリのrelease を通知する
- OSS の Google BigQuery UDF `bqutil.fn` を使えば UDF の独自実装を置き換えられるかもしれない
- GitHub discussion を使ったコメントシステム giscus を導入
- Search Engineering Newsletter vol.00
- OSSのアノテーションツール Label Studio を使って、快適にアノテーションする
- 2021年に買って愛用しているもの
- Python で DeepL API Free を利用してテキストファイルを翻訳する
- 2022年の目標
- 2021年を振り返る
- Jupyter Notebook で画像をダウンロードすることなく、URLから参照してPandas DataFrame内部に表示させる
- Amazon検索ランキングの奥深さ at MLconf SF 2016
- Offers Magazine というメディアに、エンジニアによる業務実績の論文化について寄稿した
- 投げ銭サービスのBuy me a cofee をBlog に導入してみた
- 2013年4月に友人とリリースした高専からの大学編入体験談投稿サービスが8年の時を経て成仏した
- kubernetes デプロイ時に `MatchExpressions:[]v1.LabelSelectorRequirement(nil)}: field is immutable` エラーが出た際に対処方法
- Amazonがeコマース検索を Lucene により、どうスケールさせているか at Berlin Buzzwords 2019
- Standard SQLのCOALESCEで、時間経過によってカラム名が変化したデータを柔軟に抽出する
- Dataflow template を使って Google Cloud Pub/Sub の中身を簡単に確認する
- Airflow でDAGを任意のタイミングで一度だけ実行する方法
- クエリ分類(Query Classification) について社内の勉強会で話してきた
- Hugo で記事の更新日をgitと連携して自動的に取得して表示させる
- CloudComposer のDAGをCircleCIで更新する
- CircleCI アプリ内の設定ファイルエディターを利用して、CI上の環境変数などローカルCLIでは確認できない挙動を素早く確認して修正する
- GCPのCloud Composer のDAGを素早く・簡単にデバッグする
- Pandoc を使って抽出できなかったWord内部の画像をGoogle Driveを使って抽出する
- Pandoc で特定のディレクトリ直下にある複数のWordをMarkdown形式に一括変換する
- gcloud commands で Pub/Sub に jsonファイルをメッセージとして公開 (Pusblish) する
- gRPC client evans で portforward 先のリモートサーバーにリクエストを行う
- システムの応答速度は本質的な価値提供であることを示す A/B テストの実例
- 子供が1歳児を迎えるまでに、育児で役に立ったもの
- mvn archetype:generate でJavaのプロジェクト雛形を作成する際のオプションの解説
- eコマースの検索と推薦についてのサーベイ論文である 'Challenges and research opportunities in eCommerce search and recommendations' を社内勉強会で発表した
- How to get the uploaded file path and processing its file in Streamlit
- Streamlit でアップロードしたファイルのパスを取得して、特定の処理をする
- 2021年05月時点で自分が実践している MLOps の情報収集方法
- Poetry からsetup.py を自動生成する
- KyTeaをPythonで扱えるMykyteaを使うために必要なこと
- [抄訳] 検索エンジンの達成度と検索チームの成熟度モデル
- Pythonで変数を挿入してSQLクエリを柔軟に構築する
- 機械学習エンジニアから検索エンジニアに転生
- pipenv のversion 2020.11.15 でローカルパッケージが正常にインストールされないときの対処法
- 2021年の目標
- GKE 上にて Pythonで logger.info() を行うとCloud logging では stderr に保存され、すべてエラーになる問題への対処法
- GKE でローリングアップデート後、ローカルからポートフォワードでリクエストを投げるとcurl: (52) Empty reply from server と返ってくるときの対処方法
- Standard SQLで 列と列の組み合わせの数を集計したい
- pip 実行時に sys.stderr.write(f"ERROR: {exc} ") とエラーが出てpipを実行できないときの対処方法
- TFXの歴史を振り返りつつ機械学習エンジニアリングを提案する論文「Towards ML Engineering: A Brief History Of TensorFlow Extended (TFX)」
- PythonでApache beam 入門
- 機械学習・ソフトウェアエンジニアリングをテーマにしたPodcast just4fun.fm を始めてみた
- 自分なりの機械学習エンジニアスキル構成論
- GitHub codeowners でGithubグループを指定しても反映されない時の対処方法
- pandas を使って特定のディレクトリのCSVファイルをすべて連結して一つのCSVファイルを作成
- MLOps の国際会議 OpML'20 に、機械学習を活用した商品監視の改善に関する論文が採択されたので登壇してきた
- Python の内包表記とジェネレータ式のメモリ使用量比較
- AOJの「ITP I」40問をPythonで解いた
- How to write the UnitTest with stdin at Pytest
- Machine Learning Casual Talks # 12 を開催しました
- 自走プログラマーを読み終えた
- ソフトウェア開発における Upstream と Downstream の意味
- Pythonの関数のデフォルト引数はmutable(上書きされる)
- 機械学習システムの信頼性を数値化し、技術的負債を解消する論文「 The ML Test Score: A Rubric for ML Production Readiness and Technical Debt Reduction」
- 機械学習システムの信頼性を数値化する論文「 What’s your ML test score? A rubric for ML production systems」
- CourseraでHow Google does Machine Learning の講義を修了した
- Courseraで Getting Started with Google Kubernetes Engine の講義を修了した
- 遅すぎる `pandas.read_gbq` を使わずに、Google BigQueryから高速にデータを読み込む
- Jupyter Notebook上にTensorboard を わずか2行で表示させる
- How to connect the Google Compute Engine via Visual Studio Code
- ビジネスでインパクトが出せるデータサイエンティストになるには
- How to concat image using skimage
- Hugo Tips
- Machine Learning Casual Talks #10 を開催しました
- Machine Learning Casual Talks #8 を開催しました
- Machine Learning Casual Talks #7 を開催しました
- Machine Learning Casual Talks #6 を開催しました
- Machine Learning Casual Talks #5 を開催しました
- イベント運営に便利なsli.do の使いこなしかた
- [抄訳] Data engineers vs. data scientists
- Google Colaboratory で Mecab-ipadic-Neologd を使用可能にする
- eBayのAR測定機能を試してみた
- Google, Facebookが提供する機械学習基盤まとめ
- メルカリのTeam AI Meetup #1 に参加してきた #mercari_ai
- 2018.01 KPT
- 2018年の抱負
- Where To Look: Focus Regions for Visual Question Answering (CVPR2016)を読んだ
- Data-driven Crowd Analysis in Videos (ICCV2011)を読んだ
- Slicing Convolutional Neural Network for Crowd Video Understanding (CVPR2016)を読んだ
- Jupyter Notebookの差分を明瞭に確認する事ができるpackage : nbdime
- Analyzing Free-standing Conversational Groups: A Multimodal Approach (ACMMM15) を読んだ
- PythonでGaussian Kernelのアニメーションを作成
- Call center stress recognition with person-specific models を読んだ
- FUSE: Full Spectral Clustering(KDD2016) を読んだ
- サイトのPWA化、ホスティングをGithub PagesからFirebaseへ移行
- HerokuのDBにpgadmin4で接続してローカルにデータをダウンロードする
- “Learning Deep Representations for Graph Clustering (AAAI2014)” を読んだ
- JupyterNotebookをリモートサーバー上で公開して、どこでも研究開発 & 講義でJupyterhubを利用する
- CoreMLがTensorFlow Liteをサポート
- Visualized Approximate Eigen Vector by Power Iteration on 3 dimensions.
- Edge-Weighted Personalized PageRank: Breaking A Decade-Old Performance Barrier を読んだ
- Machine Learning that Matters (ICML2012) を読んだ
- Jupyter上でSVGのイラストやアニメーションが作成できるプラグイン egel
- OpenCV 3.3から使えるDNNモジュールを使って物体検出
- Djangoで顔認識の結果をJSONで返す最小構成のAPIサーバーを作った
- TexPadのおかげでLatex人生が変わりました
- 機械学習・コンピュータビジョンを活かしたビジネスを手掛ける株式会社ABEJAでインターンしてきた
- ミクシィにインターンしてきた