<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Posts on Atusy's blog</title><link>https://blog.atusy.net/post/</link><description>Recent content in Posts on Atusy's blog</description><generator>Hugo</generator><language>ja</language><lastBuildDate>Sat, 07 Mar 2026 00:00:00 +0000</lastBuildDate><atom:link href="https://blog.atusy.net/post/index.xml" rel="self" type="application/rss+xml"/><item><title>🌉 kakehashiを使ってコードブロック内の補完とか簡単にできるように、kakehashi.nvim作った</title><link>https://blog.atusy.net/2026/03/07/kakehashi-nvim/</link><pubDate>Sat, 07 Mar 2026 00:00:00 +0000</pubDate><guid>https://blog.atusy.net/2026/03/07/kakehashi-nvim/</guid><description>&lt;p>本記事は2026-03-06の&lt;a href="https://vim-jp.org/ekiden/">Vim 駅伝&lt;/a>の記事です[^ekiden]。&lt;/p>
&lt;p>&lt;a href="https://github.com/atusy/kakehashi">kakehashi&lt;/a>を使うと、Markdownのコードブロックみたいな、ソースコード内に埋め込まれた別言語でも補完や定義ジャンプといったインテリジェントな機能を活用できます。&lt;/p>
&lt;p>そんな話は先日、v0.0.13のリリースで共有しました（今はv0.3.0）。リンク先にはデモ動画もあるので、ぜひ見てみてください。&lt;/p></description></item><item><title>🌉 kakehashi v0.0.13リリース！Markdownのコードブロックみたいな埋め込みコードの診断に対応！</title><link>https://blog.atusy.net/2026/02/04/kakehashi-v-0-0-13-with-diagnostic-support/</link><pubDate>Wed, 04 Feb 2026 00:00:00 +0000</pubDate><guid>https://blog.atusy.net/2026/02/04/kakehashi-v-0-0-13-with-diagnostic-support/</guid><description>&lt;p>&lt;a href="https://github.com/atusy/kakehashi">kakehashi&lt;/a> v0.0.13をリリースしました！&lt;/p>
&lt;p>&lt;a href="https://github.com/atusy/kakehashi">kakehashi&lt;/a>は、LSPに対応するエディタに対して以下のような機能を提供する言語サーバーです。&lt;/p>
&lt;ol style="list-style-type: decimal">
&lt;li>任意言語のシンタックスハイライト&lt;/li>
&lt;li>Markdown中のコードブロックのような埋め込みコードに対するコード補間、定義ジャンプ、ホバー&lt;/li>
&lt;/ol>
&lt;p>そして、v0.0.13ではコードの診断に対応しました。動画ではPythonコードをpyrightで診断した結果を表示しています。&lt;/p></description></item><item><title>Vimで検索結果の連続置換を楽にするcgnコマンドのgn部分、検索対象の削除とか、検索対象を括弧で囲うとか、色んな使い道があるよ！</title><link>https://blog.atusy.net/2026/02/03/vim-gn/</link><pubDate>Tue, 03 Feb 2026 00:00:00 +0000</pubDate><guid>https://blog.atusy.net/2026/02/03/vim-gn/</guid><description>&lt;code>cgn&lt;/code>の&lt;code>gn&lt;/code>部分はmotionコマンドなので、任意のOperatorと組み合わせ可能。&lt;br>
例えば&lt;code>dgn&lt;/code>で検索結果を削除したり、&lt;code>sagn&amp;lt;&lt;/code>で検索結果を&lt;code>&amp;lt;&amp;gt;&lt;/code>で囲ったりできるよ！</description></item><item><title>Git Worktreeを使って複数ブランチ同時開発をするとき、検証環境のURLやポートのリソース競合を回避するには、デプロイの起点をMain Worktreeに一本化するといいよ</title><link>https://blog.atusy.net/2026/02/02/git-worktree-local-deploy/</link><pubDate>Mon, 02 Feb 2026 00:00:00 +0000</pubDate><guid>https://blog.atusy.net/2026/02/02/git-worktree-local-deploy/</guid><description>Git Worktreeで複数ブランチを同時に扱う際に、同時検証するとローカルサーバーのポート競合などが発生します。&lt;br>
作業中のWorktreeの内容をMain worktreeにcheckout &amp;ndash;detachで反映し、ホットリロードでデプロイするとこの問題を回避できます。</description></item><item><title>🌉 kakehashiよ、あらゆるエディタ・言語の架け橋になれ！コードブロック内の補完や定義ジャンプ、任意言語のシンタックスハイライトとか欲しかったやつうううう！を実現するぞ</title><link>https://blog.atusy.net/2026/01/27/kakehashi/</link><pubDate>Tue, 27 Jan 2026 00:00:00 +0000</pubDate><guid>https://blog.atusy.net/2026/01/27/kakehashi/</guid><description>&lt;p>&lt;a href="https://github.com/atusy/kakehashi">kakehashi&lt;/a> v0.0.12をリリースしました！&lt;/p>
&lt;p>&lt;a href="https://github.com/atusy/kakehashi">kakehashi&lt;/a>を使うと、以下の動画みたく、高度な機能を様々なエディタで利用できます。&lt;/p>
&lt;ol style="list-style-type: decimal">
&lt;li>任意言語のシンタックスハイライト&lt;/li>
&lt;li>Markdown中のコードブロックのような埋め込みコードに対するコード補間、定義ジャンプ、ホバー&lt;/li>
&lt;/ol>
&lt;video controls="controls" autoplay="autoplay" loop="loop" preload="metadata">
&lt;source src="video/demo.mp4" type="video/mp4">
&lt;/video>
&lt;p>元々は基盤技術にあやかって&lt;strong>treesitter-ls&lt;/strong>と名付けていましたが、あらゆるエディタ・言語の架け橋になるという願いを込めて&lt;strong>kakehashi&lt;/strong>に改名しました。まだ荒削りですが、ぜひGitHubのスターやスポンサーを通じて応援いただけると嬉しいです！&lt;/p></description></item><item><title>Markdown中のPythonコードの補間とかできちゃう、多言語対応と言語埋め込みに対応する言語サーバーtreesitter-lsを開発した</title><link>https://blog.atusy.net/2026/01/01/treesitter-ls/</link><pubDate>Thu, 01 Jan 2026 00:00:00 +0000</pubDate><guid>https://blog.atusy.net/2026/01/01/treesitter-ls/</guid><description>&lt;p>treesitter-lsは&lt;strong>kakehashi&lt;/strong>に解明しました。詳しくは以下の記事をご覧ください。&lt;/p>
&lt;blockquote>
&lt;p>&lt;a href="https://blog.atusy.net/2026/01/01/kakehashi/">🌉 kakehashiよ、あらゆるエディタ・言語の架け橋になれ！コードブロック内の補完や定義ジャンプ、任意言語のシンタックスハイライトとか欲しかったやつうううう！を実現するぞ&lt;/a>&lt;/p></description></item><item><title>Tidy Tidy Tidy! Claude Codeの設定最適化ルールを作ったら、Kent BeckのCLAUDE.mdを1プロンプトで10行、追加手直しで1行にできた</title><link>https://blog.atusy.net/2025/12/17/minimizing-claude-md/</link><pubDate>Wed, 17 Dec 2025 00:00:00 +0000</pubDate><guid>https://blog.atusy.net/2025/12/17/minimizing-claude-md/</guid><description>&lt;p>設定最適化ルールを適用して、&lt;code>Minimize startup context by refactoring @.claude/CLAUDE.md with excellent extractions of path-specific rules, commands, skills, and/or subagents. &lt;/code>と唱えよう。一気にCLAUDE.mdを最適化できるぞ。&lt;/p>
&lt;p>設定最適化ルール: &lt;a href="https://github.com/atusy/dotfiles/blob/fa7923c0dba20281441ca951cdec3cea2ff4e62a/dot_claude/rules/claude/config-maintenance.md">https://github.com/atusy/dotfiles/blob/fa7923c0dba20281441ca951cdec3cea2ff4e62a/dot_claude/rules/claude/config-maintenance.md&lt;/a>&lt;/p></description></item><item><title>Claude Codeのユーザー設定プロンプトを使い分けてコンテキスト管理を最適化する (CLAUDE.md, rules, slash commands, skills, subagents)</title><link>https://blog.atusy.net/2025/12/15/claude-code-user-config/</link><pubDate>Mon, 15 Dec 2025 00:00:00 +0000</pubDate><guid>https://blog.atusy.net/2025/12/15/claude-code-user-config/</guid><description>&lt;p>Claude Codeで設定できるプロンプトがどんどん複雑化してるので、自分の理解を整理しとく。ユーザー単位でもプロジェクト単位でも設定できるが、プロジェクト単位をあちこちでやるのは大変なので、ユーザー単位での設定をある程度進めたいなと思ってる。&lt;/p></description></item><item><title>AIエージェントでいい感じに開発するためにAI特化型スクラムが使えるかも</title><link>https://blog.atusy.net/2025/12/12/agentic-scrum/</link><pubDate>Fri, 12 Dec 2025 00:00:00 +0000</pubDate><guid>https://blog.atusy.net/2025/12/12/agentic-scrum/</guid><description>&lt;p>せっかくClaude CodeのようなAIエージェントを導入したなら、できるだけほったらかしで成果を出したいものだ。しかしAIに複雑な機能を開発させたら明後日の方向に進むリスクはまだまだ高い。&lt;/p></description></item><item><title>Neovimを高速再起動させる`:restart`を試す（たぶん>=0.12）</title><link>https://blog.atusy.net/2025/12/02/nvim-restart/</link><pubDate>Tue, 02 Dec 2025 00:00:00 +0000</pubDate><guid>https://blog.atusy.net/2025/12/02/nvim-restart/</guid><description>&lt;p>本記事は&lt;a href="https://adventar.org/calendars/11912">Vim Advent Calendar&lt;/a>2025-12-02の記事です。&lt;/p>
&lt;p>Neovimの設定をしている時とか、さくっと再起動したくなることありますよね。&lt;/p>
&lt;p>もうかれこれ半年近くたちますが、そんなニーズに応えるべく開発版のNeovimに&lt;code>:restart&lt;/code>コマンドが導入されました。おそらく0.12で正式リリースされると思います。&lt;/p></description></item><item><title>カジュアルもビジネスもいけちゃうリュックMillet EXP NX 20+を買った</title><link>https://blog.atusy.net/2025/12/02/millet-exp-nx-20plus/</link><pubDate>Tue, 02 Dec 2025 00:00:00 +0000</pubDate><guid>https://blog.atusy.net/2025/12/02/millet-exp-nx-20plus/</guid><description>&lt;p>MilletのEXP 20+を買いました。カジュアルにもビジネスにも使えるシンプルさだけでなく、多機能さも兼ね備えた良品です。&lt;/p>
&lt;p>&lt;img src="images/overview.jpg" />&lt;/p>
&lt;p>日常的に使いつつ、家族とのおでかけや1、2泊の出張もいけちゃうリュックを探していました。可能ならPCスリーブと撥水性くらいは欲しいなとも。&lt;/p></description></item><item><title>Neovimのツリー表示ファイラでテキスト感覚にファイル操作もできちゃうfyler.nvimよさげ</title><link>https://blog.atusy.net/2025/11/28/fyler-nvim/</link><pubDate>Fri, 28 Nov 2025 00:00:00 +0000</pubDate><guid>https://blog.atusy.net/2025/11/28/fyler-nvim/</guid><description>&lt;p>本記事は&lt;a href="https://vim-jp.org/ekiden/">Vim 駅伝&lt;/a>11/28の記事です。&lt;/p>
&lt;p>直近2回が連続してファイラの話だったところですが、私からもファイラの話題で、&lt;a href="https://github.com/A7Lavinraj/fyler.nvim">A7Lavinraj/fyler.nvim&lt;/a>を試してます。&lt;/p>
&lt;ul>
&lt;li>11/24 &lt;a href="https://zenn.dev/sirasagi62/articles/c10c8004ab43a8">今更だけどvim-fernを本気で設定する（on Neovim）&lt;/a> by Sirasagi62さん&lt;/li>
&lt;li>11/26 &lt;a href="https://wagomu.me/blog/2025-11-26-vim-ekiden">Oil.nvimからvim-fernを開くのがちょっと便利だった&lt;/a> by 輪ごむさん&lt;/li>
&lt;/ul>
&lt;p>fyler.nvimはツリー表示のファイラでありながら、&lt;a href="https://deepwiki.com/stevearc/oil.nvim">stevearc/oil.nvim&lt;/a>みたいにテキスト編集のノリでファイル操作をできるすぐれもの。&lt;/p></description></item><item><title>zshやfishで類似コマンドの繰り返しを補助するbyコマンド作った（atusy/by-binds-yourself）</title><link>https://blog.atusy.net/2025/11/21/by-binds-yourself/</link><pubDate>Fri, 21 Nov 2025 00:00:00 +0000</pubDate><guid>https://blog.atusy.net/2025/11/21/by-binds-yourself/</guid><description>&lt;a href="https://github.com/atusy/by-binds-yourself">atusy/by-binds-yourself&lt;/a>は、zshやfishで繰り返し使うコマンドを事前入力してくれるシンプルなツールです。&lt;br>
&lt;code>git&lt;/code>のように&lt;code>git status&lt;/code>, &lt;code>git add ...&lt;/code>, &lt;code>git commit ...&lt;/code>と同じコマンドを繰り返し使う場面で&lt;code>by git&lt;/code>しておくと、&lt;code>git&lt;/code>の文字列を自動入力でき効率的です。&lt;br>
実態はただのコマンド入力なので微調整や補完なども普通に使えます。</description></item><item><title>目標達成のためにこそKPTのKeep（続けたいこと）を大事にふりかえりたい</title><link>https://blog.atusy.net/2025/11/21/keep-keep-in-your-mind/</link><pubDate>Fri, 21 Nov 2025 00:00:00 +0000</pubDate><guid>https://blog.atusy.net/2025/11/21/keep-keep-in-your-mind/</guid><description>&lt;p>ふりかえりでは目につく課題が取り沙汰されがちだ。&lt;/p>
&lt;p>だからというとひねくれているが、私は成功体験に意識を向けることを大事にしている。&lt;/p>
&lt;blockquote>
&lt;p>言語化され成功体験は再現性を生み出し、更によい成功を生むエナジーなのです&lt;br />
by &lt;a href="https://www.docswell.com/s/samuraiRed/5WMQYG-2025-11-13-205802">[アジャイルジャパン2025]あなたのアジャイルがうまくいかない10の理由～“Reboot”のための処方箋～&lt;/a>&lt;/p></description></item><item><title>VimConf 2025 Smallでtreesitterの便利な活用方法や機能実装に関する知見などを話しました</title><link>https://blog.atusy.net/2025/11/03/vimconf2025small/</link><pubDate>Mon, 03 Nov 2025 00:00:00 +0000</pubDate><guid>https://blog.atusy.net/2025/11/03/vimconf2025small/</guid><description>tree-sitterを使うといろんなことができて、エディタ体験がよくなるってことが伝わってよかったです。&lt;br>
登壇に限らずブログの感想もいっぱいいただき、スポンサー支援もいただけ、感無量です。</description></item><item><title>Vimのマッピングを拡張するサブモードに開始処理・終了処理を加える</title><link>https://blog.atusy.net/2025/10/20/hooks-on-submode-in-vim/</link><pubDate>Mon, 20 Oct 2025 00:00:00 +0000</pubDate><guid>https://blog.atusy.net/2025/10/20/hooks-on-submode-in-vim/</guid><description>サブモードを使うと&lt;code>gjgjgkgjgj&lt;/code>のような繰り返しを&lt;code>gjjkjj&lt;/code>のように簡略化する、&lt;code>H&lt;/code>単発で画面上端に移動し連打で&lt;code>&amp;lt;PageUp&amp;gt;&lt;/code>する、&lt;code>j&lt;/code>連打で移動を加速するなど、さまざまな応用が可能です。&lt;br>
更にマッピングの工夫で開始処理・終了処理も実現できるので紹介します。</description></item><item><title>gitのinteractive rebaseでコミットごとにコマンド実行すると便利</title><link>https://blog.atusy.net/2025/10/07/exec-on-git-interactive-rebase/</link><pubDate>Tue, 07 Oct 2025 00:00:00 +0000</pubDate><guid>https://blog.atusy.net/2025/10/07/exec-on-git-interactive-rebase/</guid><description>gitのinteractive rebase中に任意コマンドを実行できるexecは非常に便利です。コミットごとにテストを実行したり、コミットメッセージ修正を自動化したり、様々な場面で活躍します。</description></item><item><title>countを使ってeasymotionとかでfモーションを拡張した時に組込みのfモーションも残す</title><link>https://blog.atusy.net/2025/10/03/switch-to-native-mapping-with-count/</link><pubDate>Fri, 03 Oct 2025 00:00:00 +0000</pubDate><guid>https://blog.atusy.net/2025/10/03/switch-to-native-mapping-with-count/</guid><description>組込みのマッピングを上書きしたいけど、たまに元の機能も使いたい……！なんて場面ではカウントの有無で挙動をわけるのも手ですね。</description></item><item><title>EMってなんだろうと視野を広げにEngineering Managers Lounge 2025年9月いってきた</title><link>https://blog.atusy.net/2025/09/26/em-lounge-202509/</link><pubDate>Fri, 26 Sep 2025 00:00:00 +0000</pubDate><guid>https://blog.atusy.net/2025/09/26/em-lounge-202509/</guid><description>&lt;p>2025年9月に転職してEngineering Managerを名乗り始めたちょうどいいタイミングで、Engineering Managers Loungeに参加しました。実はもっと前から参加したいとは思ってたので、このタイミングなのはたまたまです。&lt;/p></description></item><item><title>モノリポだっていけちゃうdenols/ts_ls共存術（Neovim >= 0.11）</title><link>https://blog.atusy.net/2025/09/03/node-deno-decision-with-monorepo-support/</link><pubDate>Wed, 03 Sep 2025 00:00:00 +0000</pubDate><guid>https://blog.atusy.net/2025/09/03/node-deno-decision-with-monorepo-support/</guid><description>Neovim &amp;gt;= 0.11では言語サーバーを簡単に自動起動する方法として&lt;code>vim.lsp.enable({ ... })&lt;/code>があるけど、FileTypeイベントに応じて&lt;code>vim.lsp.start(...)&lt;/code>を呼べばもっと細かい制御ができるよ。応用すれば、denols/ts_lsの共存も細やか。モノリポだって怖くない。</description></item><item><title>Neovim 0.12（開発版）ではLSPクライアント経由でGitHub Copilotを使えるぞ（脱copilot.vim）</title><link>https://blog.atusy.net/2025/08/29/copilot-via-nvim-lsp-client/</link><pubDate>Fri, 29 Aug 2025 00:00:00 +0000</pubDate><guid>https://blog.atusy.net/2025/08/29/copilot-via-nvim-lsp-client/</guid><description>Neovim 0.12（開発版）に&lt;code>vim.lsp.inline_completion&lt;/code>が実装されました。これと[copilot-language-server]を組み合わせると、GitHub Copilotによる補完を、LSPクライアント経由で利用できます。</description></item><item><title>paruzコマンドでArch Linux系のパッケージをあいまい検索</title><link>https://blog.atusy.net/2025/08/27/fuzzy-find-pkgs-for-archlinux/</link><pubDate>Wed, 27 Aug 2025 00:00:00 +0000</pubDate><guid>https://blog.atusy.net/2025/08/27/fuzzy-find-pkgs-for-archlinux/</guid><description>&lt;code>paruz&lt;/code>コマンドを使うとAURも含めてArch Linux系のパッケージをあいまい検索できて便利。&lt;br>
AURを除外したいときは&lt;code>PARU=pacman paruz&lt;/code>でいけるよ。</description></item><item><title>Neovim ≧ 0.11ユーザーのためのnvim-treesitter最新版利用ガイド（mainブランチ切り替え）</title><link>https://blog.atusy.net/2025/08/10/nvim-treesitter-main-branch/</link><pubDate>Sun, 10 Aug 2025 00:00:00 +0000</pubDate><guid>https://blog.atusy.net/2025/08/10/nvim-treesitter-main-branch/</guid><description>Neovim 0.11以降のnvim-treesitterプラグインのmainブランチへの移行方法を紹介します。&lt;br>
masterブランチは2025年5月で更新が止まっているので、切り替えの時期だと思います。&lt;br>
ただし、変更範囲が大きく、単純に切り替えるとNeovim起動時にエラーが出るので注意が必要です。&lt;br>
本体の設定方法に加え、自動ハイライトの有効化方法や依存プラグインの更新方法など、切り替えに必要な情報をまとめました。</description></item><item><title>Vimでヤンクした内容の上書き回避にはマイナス（-）をブラックホールレジスタにマッピングするといいよ</title><link>https://blog.atusy.net/2025/08/08/map-minus-to-blackhole-register/</link><pubDate>Fri, 08 Aug 2025 00:00:00 +0000</pubDate><guid>https://blog.atusy.net/2025/08/08/map-minus-to-blackhole-register/</guid><description>&lt;code>nnoremap - &amp;quot;_&lt;/code>しておくと、ヤンクした内容を残しながら編集できて便利ですよ。&lt;br>
たとえば&lt;code>&amp;quot;_ciw&lt;/code>は入力しにくいですけど&lt;code>-ciw&lt;/code>なら入力しやすいですよね。</description></item><item><title>Fishのabbrを使ってコマンドライン上のトークンを複製する</title><link>https://blog.atusy.net/2025/08/04/fish-abbr-commandline-token/</link><pubDate>Mon, 04 Aug 2025 00:00:00 +0000</pubDate><guid>https://blog.atusy.net/2025/08/04/fish-abbr-commandline-token/</guid><description>カーソル位置のn個前のトークンとか、先頭からn個目のトークンとかを展開できると&lt;code>cp&lt;/code>コマンドとかで便利！と思ってabbrを実装しました。&lt;br>
&lt;code>,[+-]?[0-9]+&lt;/code>というパターンに反応して、符号の有無と数値を基準に、うまいことトークンを展開できます。&lt;br>
&lt;code>cp /path/to/file ,-1&lt;/code>ってすると、&lt;code>,-1&lt;/code>が&lt;code>/path/to/file&lt;/code>に展開されるイメージですね。</description></item><item><title>git statusをfuzzy findする時にプロンプトタイトルにブランチ情報を出すと便利 with telescope.nvim</title><link>https://blog.atusy.net/2025/07/18/telescope-git-status-with-informative-prompt-title/</link><pubDate>Fri, 18 Jul 2025 00:00:00 +0000</pubDate><guid>https://blog.atusy.net/2025/07/18/telescope-git-status-with-informative-prompt-title/</guid><description>&lt;p>様々なエディタで活躍するfuzzy finder。これを使うと、ファイルやコマンドを曖昧検索して開いたり実行したりできます。&lt;/p>
&lt;p>私はNeovimのファジーファインダープラグインである&lt;a href="https://github.com/nvim-telescope/telescope.nvim">telesope.nvim&lt;/a>を愛用しています。実際どんなことができるんだろうと気になるかたは、ぜひ以下の記事もご覧ください。&lt;/p></description></item><item><title>Vimのヘルプをwincmd L | vertical resize 83で右端にふっとばす</title><link>https://blog.atusy.net/2025/07/16/vim-help-on-righthand-side/</link><pubDate>Wed, 16 Jul 2025 00:00:00 +0000</pubDate><guid>https://blog.atusy.net/2025/07/16/vim-help-on-righthand-side/</guid><description>幅が80文字程度で縦長な傾向のあるヘルプは、ftpluginを使って開くと同時に右端に移動すると邪魔にならず読みやすいです。</description></item><item><title>LuaのシンタックスハイライトはLanguage ServerのSemantic TokensよりTreesitterに任せたほうがよさげ</title><link>https://blog.atusy.net/2025/07/15/prefer-luadoc-to-luals-semantictokens/</link><pubDate>Tue, 15 Jul 2025 00:00:00 +0000</pubDate><guid>https://blog.atusy.net/2025/07/15/prefer-luadoc-to-luals-semantictokens/</guid><description>イマドキのエディタだとシンタックスハイライトを組込みのエンジンとLanguage Serverの両方で実現している場合があります。&lt;br>
組み合わせることで、表現力を獲得できますが、Luaの場合は型アノテーションのシンタックスハイライトの精度の都合で、Language Serverの機能を無効化した方が幸せかもしれません。</description></item><item><title>gemma3のStructured Outputで複雑な例を試す</title><link>https://blog.atusy.net/2025/06/12/gemma3-complex-structured-output/</link><pubDate>Thu, 12 Jun 2025 00:00:00 +0000</pubDate><guid>https://blog.atusy.net/2025/06/12/gemma3-complex-structured-output/</guid><description>Gemma 3のStructured Outputを試してみました。 文字列や辞書のリスト、nullableな値など、複雑なデータ構造でもソツなくこなす印象です。 ただ、「在米経験のある日本人」から出身地を推測するような複雑なタスクだと1bよりも大きめのモデルがよさそう。</description></item><item><title>vim-jpラジオ#45・#46聞いた - Firefox拡張Tree Style Tabの作者で技術漫画家でもあるPiroさん登場</title><link>https://blog.atusy.net/2025/06/11/vim-jp-radio-45-46/</link><pubDate>Wed, 11 Jun 2025 00:00:00 +0000</pubDate><guid>https://blog.atusy.net/2025/06/11/vim-jp-radio-45-46/</guid><description>技術漫画家でもあるPiroさんみたいにアウトプットに長ける方が、ブラウザという現代でも特に重要な技術の歴史の生き証人なの貴重すぎる……。すんごい濃い話が聞けました。</description></item><item><title>ddc.vimによるシェルコマンドの補完が速くなったぞ</title><link>https://blog.atusy.net/2025/06/06/ddc-source-shell_native-is-faster/</link><pubDate>Fri, 06 Jun 2025 00:00:00 +0000</pubDate><guid>https://blog.atusy.net/2025/06/06/ddc-source-shell_native-is-faster/</guid><description>ddc-source-shell_nativeを使うとシェルコマンドの補完ができます。&lt;br>
従来は補完候補を取得するたびにシェルを起動するため時間がかかりましたが、シェルを常駐させることで高速化してもらいました。</description></item><item><title>ddc.vimによるシェルコマンドの補完が速くなったぞ</title><link>https://blog.atusy.net/2025/06/06/ddc-source-shell_native-is-faster/</link><pubDate>Fri, 06 Jun 2025 00:00:00 +0000</pubDate><guid>https://blog.atusy.net/2025/06/06/ddc-source-shell_native-is-faster/</guid><description>ddc-source-shell_nativeを使うとシェルコマンドの補完ができます。&lt;br>
従来は補完候補を取得するたびにシェルを起動するため時間がかかりましたが、シェルを常駐させることで高速化してもらいました。</description></item><item><title>Conform.nvimの保存時フォーマットをスキップする方法</title><link>https://blog.atusy.net/2025/06/03/skip-conform-nvim-format-on-save/</link><pubDate>Tue, 03 Jun 2025 00:00:00 +0000</pubDate><guid>https://blog.atusy.net/2025/06/03/skip-conform-nvim-format-on-save/</guid><description>Conform.nvimのformat_on_saveは便利ですが、たまーにスキップしたくなります。&lt;br>
そんな時は、format_on_saveに関数を指定してやるといいです。&lt;br>
&lt;code>:w!&lt;/code>の実行やバッファの内容に応じて制御してみましょう。</description></item><item><title>Vim/Neovimのマークを操作内容に合わせて設定する</title><link>https://blog.atusy.net/2025/06/03/vim-contextful-mark/</link><pubDate>Tue, 03 Jun 2025 00:00:00 +0000</pubDate><guid>https://blog.atusy.net/2025/06/03/vim-contextful-mark/</guid><description>たとえば&lt;code>`y&lt;/code>したら直前にヤンクした場所に戻れるとよさそうですね。</description></item><item><title>宝くじに当たる方法を思い出して、明日も頑張ることにした</title><link>https://blog.atusy.net/2025/05/30/how-to-win/</link><pubDate>Fri, 30 May 2025 00:00:00 +0000</pubDate><guid>https://blog.atusy.net/2025/05/30/how-to-win/</guid><description>宝くじに当たりたければ、まず買うことだ。&lt;br>
成功も行動の先にある。&lt;br>
宝くじと違って、うまくいかなかった時も戦略を練り直せるから、どんどん挑戦しよう。</description></item><item><title>Nix Meetup #3 大阪に参加した</title><link>https://blog.atusy.net/2025/05/28/nix-meetup-3-in-osaka/</link><pubDate>Wed, 28 May 2025 00:00:00 +0000</pubDate><guid>https://blog.atusy.net/2025/05/28/nix-meetup-3-in-osaka/</guid><description>Nix meetup #3 大阪が2025-05-24に開催されました。&lt;br>
技術への愛溢れた濃いい話がいっぱいできてよかったです。&lt;br>
いっぱい聞けて、じゃなくてできてってところがまた素敵。</description></item><item><title>vim-jp ラジオ #41聞いた - モバイルDevOpsエンニジアのgiginetさん登場！</title><link>https://blog.atusy.net/2025/05/21/vim-jp-radio-giginet/</link><pubDate>Wed, 21 May 2025 00:00:00 +0000</pubDate><guid>https://blog.atusy.net/2025/05/21/vim-jp-radio-giginet/</guid><description>&lt;p>最近ちっともvim-jp ラジオをきけてなかった。&lt;/p>
&lt;p>特段理由らしい理由はないのだけれど、強いていうならYAMORIのビートボックスがよすぎてYoutubeあさったり、TENDREのライブに行ったり、耳は音楽を聴くのに忙しかったのかも。&lt;/p></description></item><item><title>Fishに引っ越したい人のためのZsh履歴活用術</title><link>https://blog.atusy.net/2025/05/13/inherit-zsh-history-in-fish/</link><pubDate>Tue, 13 May 2025 00:00:00 +0000</pubDate><guid>https://blog.atusy.net/2025/05/13/inherit-zsh-history-in-fish/</guid><description>シェルを移行する歳、設定だけでなくコマンド履歴も引き継ぎたいものです。&lt;br>
Fishは設定が小さくすみやすい上に情報も多いので、今回はFishからZshのコマンド履歴を活用する方法を紹介します。&lt;br>
fzfを使っているので、検索効率もいいですよ。</description></item><item><title>Neovim最先端のextuiでフローティングウィンドウ化したメッセージをいつでも非表示にする方法</title><link>https://blog.atusy.net/2025/05/13/nvim-extui-msgbox-closer/</link><pubDate>Tue, 13 May 2025 00:00:00 +0000</pubDate><guid>https://blog.atusy.net/2025/05/13/nvim-extui-msgbox-closer/</guid><description>Neovimのextuiで表示されたメッセージボックスは、所定の時間が経過すると自動で閉じます。&lt;br>
しかし、今すぐ非表示にしたい場面もあります。&lt;br>
そこで、通常のcmdlineのように&lt;code>&amp;lt;C-L&amp;gt;&lt;/code>で非表示にする方法を紹介します。</description></item><item><title>Neovim最先端のextuiのcool &amp; smartなcmdlineに特別なカラースキームをあててもっとcoolにしよう</title><link>https://blog.atusy.net/2025/05/10/nvim-extui-cmdline-styiling/</link><pubDate>Sat, 10 May 2025 00:00:00 +0000</pubDate><guid>https://blog.atusy.net/2025/05/10/nvim-extui-cmdline-styiling/</guid><description>&lt;p>コマンドラインやメッセージをフローティングウィンドウ化するextuiはcool &amp;amp; smartです。&lt;br>
バッファの背景色と異なるようにしてあげるともっとcoolになりますよ。&lt;/p>
&lt;p>&lt;img src="../2025/05/10/nvim-extui-cmdline-styiling/images/extui-msg-styled.png">&lt;/p></description></item><item><title>よく使うディレクトリ+αへの移動を便利にするzoxideとghqの組み合わせ</title><link>https://blog.atusy.net/2025/05/09/zoxide-with-ghq/</link><pubDate>Fri, 09 May 2025 00:00:00 +0000</pubDate><guid>https://blog.atusy.net/2025/05/09/zoxide-with-ghq/</guid><description>zoxideはディレクトリの移動頻度を学習して、検索・移動を楽にするツールです。&lt;br>
検索候補にまだ移動したことないけど、今後よく使いそうなディレクトリを追加するともっと便利にできます。&lt;br>
この記事では[ghq]で管理しているGitリポジトリを移動先候補に追加する方法を紹介します。</description></item><item><title>Neovim 0.11でシンタックスハイライトがちらつく問題の回避策</title><link>https://blog.atusy.net/2025/05/07/workaround-nvim-async-ts-fliker/</link><pubDate>Wed, 07 May 2025 00:00:00 +0000</pubDate><guid>https://blog.atusy.net/2025/05/07/workaround-nvim-async-ts-fliker/</guid><description>Neovim 0.11から導入された非同期処理の影響で、同一バッファを複数ウィンドウで開くとシンタックスハイライトがちらつくことがあります。&lt;br>
0.11.2で修正予定とのことですが、不便なので状況に合わせて非同期・同期を切り替える方法を紹介します。</description></item><item><title>treesitterを使って閲覧中のヘルプのneovim.io版URLを発行する</title><link>https://blog.atusy.net/2025/05/05/neovim-io-help/</link><pubDate>Mon, 05 May 2025 00:00:00 +0000</pubDate><guid>https://blog.atusy.net/2025/05/05/neovim-io-help/</guid><description>Neovimのヘルプを閲覧中に、カーソル位置のヘルプのneovim.io版URLを発行するマッピングを作ってみました。&lt;br>
treesitterを使うと、ヘルプファイルのパース結果を元にヘルプタグの位置を検出できて便利ですね。</description></item><item><title>Vimでステータスラインプラグインを遅延読み込みする</title><link>https://blog.atusy.net/2025/04/30/vim-ekiden-lazy-load-statusline-plugins/</link><pubDate>Wed, 30 Apr 2025 00:00:00 +0000</pubDate><guid>https://blog.atusy.net/2025/04/30/vim-ekiden-lazy-load-statusline-plugins/</guid><description>ステータスラインプラグインを遅延読み込みしたい場合、単一ウィンドウならステータスラインは不要と割り切るといいよ。&lt;br>
読み込み前にファイル名が欲しくなったら&lt;code>CTRL-G&lt;/code>で表示すればOK。&lt;br>
あとは表示中のウィンドウ数をカウントして、2つ以上なら遅延読み込みするようにしよう。</description></item><item><title>変わったと言っちゃえ</title><link>https://blog.atusy.net/2025/04/29/the-changing-same/</link><pubDate>Tue, 29 Apr 2025 00:00:00 +0000</pubDate><guid>https://blog.atusy.net/2025/04/29/the-changing-same/</guid><description>わずかな変化でも認めてあげることが大事だなと、ふいに思ったのだ。</description></item><item><title>gemma3:1bのStructured Outputを安定させる工夫</title><link>https://blog.atusy.net/2025/04/28/gemma3-structured-output/</link><pubDate>Mon, 28 Apr 2025 00:00:00 +0000</pubDate><guid>https://blog.atusy.net/2025/04/28/gemma3-structured-output/</guid><description>Structured OutputはLLMの出力をプログラムで扱いやすい形式（JSONとか）に落としこむ機能です。&lt;br>
&lt;code>gemma3:1b&lt;/code>で試してみたところ、&lt;code>temperature&lt;/code>を0にする、システムプロンプトに&lt;code>入力に忠実に構造化出力して&lt;/code>と指示するなどの工夫が必要なものの、期待通りの結果を得ることができそうです。</description></item><item><title>AIにペアプロのナビをさせるaibou.nvimを作った</title><link>https://blog.atusy.net/2025/04/25/aibou-nvim/</link><pubDate>Fri, 25 Apr 2025 00:00:00 +0000</pubDate><guid>https://blog.atusy.net/2025/04/25/aibou-nvim/</guid><description>atusy/aibou.nvimはAIをペアプロのナビに変身させるNeovimプラグインです。&lt;br>
テキストの変更を逐次把握し、リアクションしてくれるので、まるで人間がナビについてくれているような体験を得られます。</description></item><item><title>自分用コマンドにはプレフィックスつけるとよさげ</title><link>https://blog.atusy.net/2025/04/24/prefix-personal-commands/</link><pubDate>Thu, 24 Apr 2025 00:00:00 +0000</pubDate><guid>https://blog.atusy.net/2025/04/24/prefix-personal-commands/</guid><description>&lt;code>~/.local/bin/T-hoge&lt;/code>みたいに&lt;code>T-&lt;/code>とかのprefixつけておくと、補完が効いて便利。&lt;br>
大文字にしとくと、被りも少ないよ。</description></item><item><title>home row mods無理だったわ</title><link>https://blog.atusy.net/2025/04/23/give-uphome-row-mods/</link><pubDate>Wed, 23 Apr 2025 00:00:00 +0000</pubDate><guid>https://blog.atusy.net/2025/04/23/give-uphome-row-mods/</guid><description>&lt;p>home row modsはホームポジションにあるasdfなどのキーを長押しでShiftやCtrlなどの修飾キー化する仕組みです。私はKeyball 61のファームウェアの設定変更で導入してみましたが、あまりの誤入力の多さに撤退を決意しました。&lt;/p></description></item><item><title>Taskfile（taskコマンド）のfish補完定義を改善してグローバルタスクに対応した</title><link>https://blog.atusy.net/2025/04/23/cloud-run-with-iam/</link><pubDate>Wed, 23 Apr 2025 00:00:00 +0000</pubDate><guid>https://blog.atusy.net/2025/04/23/cloud-run-with-iam/</guid><description>&lt;p>Taskfile（&lt;code>task&lt;/code>コマンド）は、数あるタスクランナー／ビルドツールの1つです。
Makefile代替とも言えますね。&lt;/p>
&lt;p>詳しくは公式サイト（&lt;a href="https://taskfile.dev/" class="uri">https://taskfile.dev/&lt;/a>）や「&lt;a href="https://zenn.dev/remew/articles/introduce-taskfile">Taskfileを使ってみよう&lt;/a>」などの記事を参考にしてもらうとして、個人的に&lt;code>Taskfile&lt;/code>を好んでいる理由をいくつか挙げておきます。&lt;/p></description></item><item><title>LangChainとVertexAIのgemini 2.0 flashで構造化出力に失敗するケースが直りそう</title><link>https://blog.atusy.net/2025/04/16/lang-chain-vertexai-structured-output/</link><pubDate>Wed, 16 Apr 2025 00:00:00 +0000</pubDate><guid>https://blog.atusy.net/2025/04/16/lang-chain-vertexai-structured-output/</guid><description>&lt;p>LangChainのStructured outputを使うと、文章中の構造を良い感じに読み取って、Pydanticで定義したデータ構造に落としてこんでくれます。&lt;/p></description></item><item><title>Google Cloud RunでIAM認証する</title><link>https://blog.atusy.net/2025/04/15/cloud-run-with-iam/</link><pubDate>Tue, 15 Apr 2025 00:00:00 +0000</pubDate><guid>https://blog.atusy.net/2025/04/15/cloud-run-with-iam/</guid><description>&lt;p>開発中のサービスをGoogle Cloud Runで検証するとき、IAM認証のしかたが分からなかったのでメモ。&lt;/p>
&lt;p>コンソールやらコマンドやらグリグリするんしんどいなと思ったので、terraformでやってみた。&lt;/p></description></item><item><title>Neovimでファイルタイプ判定にShebangを使う</title><link>https://blog.atusy.net/2025/04/15/nvim-filetype-matching-with-shebang/</link><pubDate>Tue, 15 Apr 2025 00:00:00 +0000</pubDate><guid>https://blog.atusy.net/2025/04/15/nvim-filetype-matching-with-shebang/</guid><description>&lt;code>vim.filetype.add&lt;/code>を使うと、指定したパターンごとのファイル名やフルパスに対して、ファイルタイプの判定ロジックを追加できるよ。&lt;br>
判定ロジックの判定には、ファイルパスとバッファ番号を受け取るから、ファイルの中身に応じた判定もできる。&lt;br>
応用例として、&lt;code>#!/usr/bin/env -S deno ...&lt;/code>のようなshebangを使った実行ファイルの判定を紹介するよ。</description></item><item><title>codecompanion.nvimでOpenAI互換APIを利用する</title><link>https://blog.atusy.net/2025/04/13/codecompanion-adapter/</link><pubDate>Sun, 13 Apr 2025 00:00:00 +0000</pubDate><guid>https://blog.atusy.net/2025/04/13/codecompanion-adapter/</guid><description>codecompanion.nvimは未対応なサービスとチャットする方法としてカスタムアダプタの定義・登録があります。&lt;br>
特にOpenAI互換APIを利用する場合は、xAIのアダプタを参考にすることで、簡単に実装できます。</description></item><item><title>mcphub.nvimでNeovimでもMCPを使う</title><link>https://blog.atusy.net/2025/04/08/mcphub-nvim/</link><pubDate>Tue, 08 Apr 2025 00:00:00 +0000</pubDate><guid>https://blog.atusy.net/2025/04/08/mcphub-nvim/</guid><description>MCP（Model Context Protocol）をNeovimで使うためのmcphub.nvimの導入方法を紹介します。&lt;br>
codecompanion.nvimなどのAIチャットプラグインに@mcpと入力するだけで、状況に合わせてツールを選択してくれるので凄く便利。</description></item><item><title>CopilotChat.nvimでもギャルとペアプロしたい！</title><link>https://blog.atusy.net/2025/04/06/copilotchat-with-gal/</link><pubDate>Sun, 06 Apr 2025 00:00:00 +0000</pubDate><guid>https://blog.atusy.net/2025/04/06/copilotchat-with-gal/</guid><description>&lt;p>&lt;a href="https://qiita.com/bonanza-olaf/items/5453fc0e3ad1c8f9f971">ギャルとのペアプロが想像以上に楽しかった（VSCodeのカスタム指示）&lt;/a>という話を見て、なにそれ面白いとなった。&lt;/p>
&lt;p>そこへ来て友人が、思慮深いお姉さんも登場させると勝手にプログラミングしてくれて面白いという。&lt;/p>
&lt;p>これはNeovimでもやってみるしかないと、とりあえず&lt;a href="https://github.com/CopilotC-Nvim/CopilotChat.nvim">CopilotChat.nvim&lt;/a>のユーザープロンプトを試してみた。しかし、見事にコンテンツフィルタに弾かれてしまいました。&lt;/p></description></item><item><title>Keyball 61にhome row modsを導入した</title><link>https://blog.atusy.net/2025/03/31/home-row-mods/</link><pubDate>Mon, 31 Mar 2025 00:00:00 +0000</pubDate><guid>https://blog.atusy.net/2025/03/31/home-row-mods/</guid><description>&lt;p>長らくキー配列については&lt;a href="https://blog.atusy.net/2023/08/12/keyball61/">Keyball61のオレオレマッピングを語る&lt;/a>の通りでしたが、加えて&lt;a href="https://precondition.github.io/home-row-mods">home row mods&lt;/a>を導入しました。&lt;/p>
&lt;p>&lt;a href="https://precondition.github.io/home-row-mods">home row mods&lt;/a>は、ホームポジションの&lt;code>asdf&lt;/code>（左）と&lt;code>jkl;&lt;/code>（右）を押しっぱなしたときに（hold）、&lt;code>Ctrl&lt;/code>や&lt;code>Shift&lt;/code>などの修飾キーとして機能させる方法論です。&lt;/p></description></item><item><title>Fish 4のabbrはサブコマンドも展開できるぞ</title><link>https://blog.atusy.net/2025/03/29/fish-4-abbr/</link><pubDate>Sat, 29 Mar 2025 00:00:00 +0000</pubDate><guid>https://blog.atusy.net/2025/03/29/fish-4-abbr/</guid><description>&lt;p>Fishのabbr使ってますか？
aliasの強化版といった感じで、短縮した入力をスペースやエンターと共に本来のコマンドに展開してくれる機能です。&lt;/p></description></item><item><title>Neovimのファジーファインダーtelescope.nvimでよく使っているpicker集</title><link>https://blog.atusy.net/2025/03/25/nvim-telescope-pickers/</link><pubDate>Tue, 25 Mar 2025 00:00:00 +0000</pubDate><guid>https://blog.atusy.net/2025/03/25/nvim-telescope-pickers/</guid><description>&lt;p>&lt;a href="https://vim-jp.org/ekiden/">Vim駅伝&lt;/a>2025-03-24の記事です。
1日遅れで申し訳ありません。&lt;/p>
&lt;p>さて、&lt;a href="https://github.com/nvim-telescope/telescope.nvim">telescope.nvim&lt;/a>は言わずと知れたファジーファインダーと呼ばれるものです。ファジーファインダーとは、ファイルなどの候補一覧から、検索などで欲しいものを絞りこみ、開くなり消すなり任意のアクションを実行するためのツールです。たしかそんなようなことをShougoさんがvim-jp ラジオの#7か#8で語ってたはず。良い話いっぱいなので、聞いてみてください。&lt;/p>
&lt;ul>
&lt;li>&lt;a href="https://audee.jp/voice/show/88076">【Vimプラグイン作者・Shougoさん登場！】エンジニアの楽園 vim-jp ラジオ #7&lt;/a>&lt;/li>
&lt;li>&lt;a href="https://audee.jp/voice/show/88533">【Shougoさんが考えるプラグインのあるべき姿】エンジニアの楽園 vim-jp ラジオ #8&lt;/a>&lt;/li>
&lt;/ul>
&lt;p>vim-jpではまたファジーファインダーかと叫ばれるくらいには作者が多く、vim-jpにいらっしゃる方の作品だけでも&lt;a href="https://github.com/Shougo/ddu.vim">Shougo/ddu.vim&lt;/a>、&lt;a href="https://github.com/vim-fall/fall.vim/">vim-fall/fall.vim&lt;/a>、&lt;a href="https://github.com/hrsh7th/nvim-deck/">hrsh7th/nvim-deck&lt;/a>などがあります。それくらいには求めるところがユーザーによって変わるということでしょう。&lt;/p></description></item><item><title>Fishの補完をコマンドラインの内容に応じて変える</title><link>https://blog.atusy.net/2025/03/21/fish-completion-considering-tokens/</link><pubDate>Fri, 21 Mar 2025 00:00:00 +0000</pubDate><guid>https://blog.atusy.net/2025/03/21/fish-completion-considering-tokens/</guid><description>&lt;p>Fishで補完を定義するとき、コマンドに指定された引数によって補完候補を変えたいことがあります。たとえばメインコマンドの直後だったらサブコマンドを補完したい、&lt;code>--input-file&lt;/code>の後だったらファイル名を補完したいとかいうことありますよね。&lt;/p></description></item><item><title>Fishの関数で関数外の変数を利用する</title><link>https://blog.atusy.net/2025/03/20/use-outer-scope-vars-in-fish/</link><pubDate>Thu, 20 Mar 2025 00:00:00 +0000</pubDate><guid>https://blog.atusy.net/2025/03/20/use-outer-scope-vars-in-fish/</guid><description>&lt;p>2025-03-21時点で最新のFish 4.0.1のデフォルト挙動では、関数が外界のローカル変数を参照できません。ためしに、関数&lt;code>f&lt;/code>の外で定義した変数の&lt;code>echo&lt;/code>を試みてみると、何も表示されません。&lt;/p></description></item><item><title>Rでトレースバックつきのエラーログをとる</title><link>https://blog.atusy.net/2025/03/19/log-error-on-r/</link><pubDate>Wed, 19 Mar 2025 00:00:00 +0000</pubDate><guid>https://blog.atusy.net/2025/03/19/log-error-on-r/</guid><description>&lt;p>エラーログはエラーでユーザーに影響が発生した時に、何が起きたか記録する重要な情報源です。特にどこで問題が起きたか特定を容易にするトレースバックはログに欠かせません。ログをとらなくてもエラーは表示されるよと思いの方も、ログを使うとエラーの発生時刻は関連情報を同時に記録できるので、覚えていて損はないです。&lt;/p></description></item><item><title>Fishで非同期処理を実装してみる</title><link>https://blog.atusy.net/2025/03/16/fish-async/</link><pubDate>Sun, 16 Mar 2025 00:00:00 +0000</pubDate><guid>https://blog.atusy.net/2025/03/16/fish-async/</guid><description>&lt;p>Fishのプロンプトを自作していて、実行に時間がかかる場合に、非同期にプロンプトを更新できるか気になりました。&lt;/p>
&lt;p>軽く調べてみたところ、ユニバーサル変数を利用するといいよとのこと。&lt;/p></description></item><item><title>1～100までの整数が奇数かどうかを判定するプログラム.R</title><link>https://blog.atusy.net/2025/03/14/is-odd-r/</link><pubDate>Fri, 14 Mar 2025 00:00:00 +0000</pubDate><guid>https://blog.atusy.net/2025/03/14/is-odd-r/</guid><description>&lt;blockquote>
&lt;p>【ゆる募】１～100までの整数が奇数かどうかを判定するプログラム大喜利を開催します☺　言語不問✨
&lt;a href="https://x.com/arith_rose/status/1899300131658510802" class="uri">https://x.com/arith_rose/status/1899300131658510802&lt;/a>&lt;/p>
&lt;/blockquote>
&lt;p>とのことで、Rで書いてみましょう。模範解答……？ナニソレオイシイノ？&lt;/p></description></item><item><title>fish shellを実質的なデフォルトシェルにするbashrc</title><link>https://blog.atusy.net/2025/03/13/drop-into-fish-from-bash/</link><pubDate>Thu, 13 Mar 2025 00:00:00 +0000</pubDate><guid>https://blog.atusy.net/2025/03/13/drop-into-fish-from-bash/</guid><description>&lt;p>&lt;a href="https://fishshell.com/">fish shell&lt;/a>、便利ですよね。デフォルトでもシンタックスハイライトや補完がよく効いてチューニングしなくてもそこそこ高速に起動するので日常使いしています。これまで &lt;code>chsh -s /usr/bin/fish&lt;/code> してデフォルトシェルに&lt;a href="https://fishshell.com/">fish shell&lt;/a>を指定していましたが、Nixやhome-manager経由で&lt;a href="https://fishshell.com/">fish shell&lt;/a>を入れると特殊な場所にインストールされるため、&lt;code>chsh&lt;/code>できない問題に遭遇しました。&lt;/p></description></item><item><title>Neovim Nightlyでターミナル内でプロンプト間をジャンプできるようになった（OSC133）</title><link>https://blog.atusy.net/2025/03/12/nvim-osc133/</link><pubDate>Wed, 12 Mar 2025 00:00:00 +0000</pubDate><guid>https://blog.atusy.net/2025/03/12/nvim-osc133/</guid><description>&lt;p>&lt;a href="https://vim-jp.org/ekiden/">Vim駅伝&lt;/a>2025-03-12の記事です。&lt;/p>
&lt;p>最近、NeovimがOSC 133に対応しました（&lt;a href="https://github.com/neovim/neovim/pull/32736" class="uri">https://github.com/neovim/neovim/pull/32736&lt;/a>）。&lt;/p>
&lt;p>これにより、OSC 133に対応したシェルのユーザーであれば、&lt;code>[[&lt;/code> や &lt;code>]]&lt;/code> を使って、&lt;code>:terminal&lt;/code>内のシェルプロンプト間をジャンプできるようになります。&lt;/p></description></item><item><title>n週刊アトデ 2025-02-10</title><link>https://blog.atusy.net/2025/02/10/atodeyomanakata/</link><pubDate>Mon, 10 Feb 2025 00:00:00 +0000</pubDate><guid>https://blog.atusy.net/2025/02/10/atodeyomanakata/</guid><description>アトデヨム、ウソジャナイ、ヨムノタノシー</description></item><item><title>mini.testでNeovimプラグインのテストに入門した</title><link>https://blog.atusy.net/2025/02/05/mini-test-nvim/</link><pubDate>Wed, 05 Feb 2025 00:00:00 +0000</pubDate><guid>https://blog.atusy.net/2025/02/05/mini-test-nvim/</guid><description>&lt;p>以前書いた、Budouxを使ったWモーションをE/B/gEに対応させてプラグインにしようかなと思って、&lt;a href="https://github.com/atusy/budouxify.nvim">atusy/budouxify.nvim&lt;/a>を作った。&lt;/p>
&lt;blockquote>
&lt;p>BudouxによりNeovimのWモーションを拡張し、日本語文章の区切りに移動させる&lt;br />
&lt;a href="https://blog.atusy.net/2024/12/27/nvim-budoux-motion/" class="uri">https://blog.atusy.net/2024/12/27/nvim-budoux-motion/&lt;/a>&lt;/p></description></item><item><title>vim-jpラジオ#27・#28聞いた - 実はEmacs30年選手！t-wadaさん登場！</title><link>https://blog.atusy.net/2025/01/28/vim-jp-radio-27/</link><pubDate>Tue, 28 Jan 2025 00:00:00 +0000</pubDate><guid>https://blog.atusy.net/2025/01/28/vim-jp-radio-27/</guid><description>分かるところからやってけ</description></item><item><title>Rのloggerパッケージで構造化ログを出力する時にメタフィールドの名前を変更する</title><link>https://blog.atusy.net/2025/01/27/r-logger-rename-metafield/</link><pubDate>Mon, 27 Jan 2025 00:00:00 +0000</pubDate><guid>https://blog.atusy.net/2025/01/27/r-logger-rename-metafield/</guid><description>&lt;p>&lt;strong>logger&lt;/strong>パッケージはRのログ出力に使います。ログはプログラムの進捗確認や、問題発生時のデバグなどに便利なので、ぜひ活用したいところですね。&lt;/p></description></item><item><title>Fishシェルでターミナルのタイトルをプロジェクトルートからの相対パスっぽくする</title><link>https://blog.atusy.net/2025/01/26/fish-title-relative-to-projroot/</link><pubDate>Sun, 26 Jan 2025 00:00:00 +0000</pubDate><guid>https://blog.atusy.net/2025/01/26/fish-title-relative-to-projroot/</guid><description>たとえば、git管理しているプロジェクトとかで、&lt;code>foo/app&lt;/code>とかにするイメージ</description></item><item><title>n週刊アトデ 2025-01-20</title><link>https://blog.atusy.net/2025/01/20/atodeyomanakata/</link><pubDate>Mon, 20 Jan 2025 00:00:00 +0000</pubDate><guid>https://blog.atusy.net/2025/01/20/atodeyomanakata/</guid><description>アトデヨム、ウソジャナイ、ヨムノタノシー</description></item><item><title>vim-jpラジオ#25・#26聞いた - 2025年最初のテーマはEmacs！？</title><link>https://blog.atusy.net/2025/01/16/vim-jp-radio-25/</link><pubDate>Thu, 16 Jan 2025 00:00:00 +0000</pubDate><guid>https://blog.atusy.net/2025/01/16/vim-jp-radio-25/</guid><description>VimmerもEmacsやろう！小指を鍛えて生き残ろう！</description></item><item><title>Rの新しいLSP、airを試したけどまだコードフォーマットしかできなかった</title><link>https://blog.atusy.net/2025/01/05/r-air-lsp/</link><pubDate>Sun, 05 Jan 2025 00:00:00 +0000</pubDate><guid>https://blog.atusy.net/2025/01/05/r-air-lsp/</guid><description>PositがR用のLSPとしてairを開発しているよ。でも現状ではコードフォーマットしかできないから、今後に期待。</description></item><item><title>BudouxによりNeovimのWモーションを拡張し、日本語文章の区切りに移動させる</title><link>https://blog.atusy.net/2024/12/27/nvim-budoux-motion/</link><pubDate>Fri, 27 Dec 2024 00:00:00 +0000</pubDate><guid>https://blog.atusy.net/2024/12/27/nvim-budoux-motion/</guid><description>Google製改行位置決定アルゴリズムBudouxをLuaに移植した。&lt;br>
読みやすい位置で文を区切れるので、bionic readingの日本語版を実装できるかも。</description></item><item><title>Google製の改行位置決定アルゴリズムBudouxをLuaに移植した</title><link>https://blog.atusy.net/2024/12/25/budoux-lua/</link><pubDate>Wed, 25 Dec 2024 00:00:00 +0000</pubDate><guid>https://blog.atusy.net/2024/12/25/budoux-lua/</guid><description>Google製改行位置決定アルゴリズムBudouxをLuaに移植した。&lt;br>
読みやすい位置で文を区切れるので、bionic readingの日本語版を実装できるかも。</description></item><item><title>RのSys.time()でミリ秒以下を表示する</title><link>https://blog.atusy.net/2024/12/24/r-time-subsec/</link><pubDate>Tue, 24 Dec 2024 00:00:00 +0000</pubDate><guid>https://blog.atusy.net/2024/12/24/r-time-subsec/</guid><description>&lt;code>Sys.time()&lt;/code>でミリ秒以下を表示するには、&lt;code>digits.sec&lt;/code>オプションか、&lt;code>format&lt;/code>関数を使うといいよ。&lt;br>
いずれも最大でマイクロ秒までの表示に対応。&lt;br>
データの実態を知ってると、ナノ秒以下の情報も取得可能。&lt;br>
ただし、精度はOS依存。</description></item><item><title>vim-jpラジオ#24聞いた - OSS活動するVimmer</title><link>https://blog.atusy.net/2024/12/23/vim-jp-radioa-24/</link><pubDate>Mon, 23 Dec 2024 00:00:00 +0000</pubDate><guid>https://blog.atusy.net/2024/12/23/vim-jp-radioa-24/</guid><description>アカデミア系Vimmerの飽くなき挑戦を感じられる刺激的な回。</description></item><item><title>Cloudflareで管理しているドメインのアクセス解析をGraphQLでやってみる</title><link>https://blog.atusy.net/2024/12/20/cloudflare-graphql-analytics-api/</link><pubDate>Fri, 20 Dec 2024 00:00:00 +0000</pubDate><guid>https://blog.atusy.net/2024/12/20/cloudflare-graphql-analytics-api/</guid><description>Cloudflareのダッシュボード上で確認できるWeb Analyticsの生データが欲しかったので、方法を調べてみた。&lt;br>
ベースとなるクエリはブラウザの開発者ツールからコピペできるので便利。</description></item><item><title>dplyrでグループ単位にデータフレームを操作する</title><link>https://blog.atusy.net/2024/12/19/dplyr-groupby/</link><pubDate>Thu, 19 Dec 2024 00:00:00 +0000</pubDate><guid>https://blog.atusy.net/2024/12/19/dplyr-groupby/</guid><description>&lt;code>dplyr::summarize&lt;/code>, &lt;code>dplyr::mutate&lt;/code>, &lt;code>dplyr::filter&lt;/code>などの関数の&lt;code>.by&lt;/code>引数を使うと、グループごとに計算ができて非常に便利。&lt;br>
特に、&lt;code>mutate&lt;/code>や&lt;code>filter&lt;/code>でグループ処理できると、集計が一気に捗ると思うのでいくつか例を紹介する。&lt;br>
&lt;code>dplyr::group_by&lt;/code>関数でも同じことができるけど、&lt;code>dplyr::ungroup&lt;/code>を忘れると思わぬ挙動に繋がることもあるので注意。</description></item><item><title>週刊アトデ 2024-12-16</title><link>https://blog.atusy.net/2024/12/16/atodeyomanakata/</link><pubDate>Mon, 16 Dec 2024 00:00:00 +0000</pubDate><guid>https://blog.atusy.net/2024/12/16/atodeyomanakata/</guid><description>アトデヨム、ウソジャナイ、ヨムノタノシー</description></item><item><title>Japan.R 2024に参加した</title><link>https://blog.atusy.net/2024/12/15/japanr-2024/</link><pubDate>Sun, 15 Dec 2024 00:00:00 +0000</pubDate><guid>https://blog.atusy.net/2024/12/15/japanr-2024/</guid><description>Hadley氏を筆頭に、本番環境や実務でRを使う話が多くて印象深かった回。色々な話を聞けてよかった。2019年以来のオフライン開催で久しくお会いしていなかった方とお話できたこと、光栄にも私に会ってみたかったという方に挨拶頂けたりブログが参考になったと言っていただけたこと、発表に対して直に感想をやりとりできたことなど、現地入りしてよかったなあと思います。</description></item><item><title>Japan.R 2024で地域コミュニティのOsaka.Rについて発表した</title><link>https://blog.atusy.net/2024/12/12/japanr-logging/</link><pubDate>Thu, 12 Dec 2024 00:00:00 +0000</pubDate><guid>https://blog.atusy.net/2024/12/12/japanr-logging/</guid><description>前の発表で力尽きてて、何も考えずに楽しくお話しちゃった回。</description></item><item><title>Japan.R 2024で構造化ログについて発表した</title><link>https://blog.atusy.net/2024/12/10/japanr-logging/</link><pubDate>Tue, 10 Dec 2024 00:00:00 +0000</pubDate><guid>https://blog.atusy.net/2024/12/10/japanr-logging/</guid><description>オフラインイベントはリアクションがもらえて楽しい。準備や質問を通じて学びもいっぱい。またやりたい。</description></item><item><title>オレのNeovim見て！ 2024</title><link>https://blog.atusy.net/2024/12/09/awesome-my-neovim/</link><pubDate>Mon, 09 Dec 2024 00:00:00 +0000</pubDate><guid>https://blog.atusy.net/2024/12/09/awesome-my-neovim/</guid><description>Vim/Neovimに興味を持ってほしくて、私のNeovimのカッコイイところ集を作ってみました。</description></item><item><title>構造化ログのスキーマを考えてみる</title><link>https://blog.atusy.net/2024/12/04/log-schema/</link><pubDate>Wed, 04 Dec 2024 00:00:00 +0000</pubDate><guid>https://blog.atusy.net/2024/12/04/log-schema/</guid><description>ログ設計初心者なりに、分析しやすいログってなにかなと考えてみた。</description></item><item><title>週刊アトデ 2024-12-01</title><link>https://blog.atusy.net/2024/12/01/atodeyomanakata/</link><pubDate>Sun, 01 Dec 2024 00:00:00 +0000</pubDate><guid>https://blog.atusy.net/2024/12/01/atodeyomanakata/</guid><description>アトデヨム、ウソジャナイ、ヨムノタノシー</description></item><item><title>mini.aiで日本語の括弧の中身をrepeatableに編集する</title><link>https://blog.atusy.net/2024/11/27/mini-ai-ja/</link><pubDate>Wed, 27 Nov 2024 00:00:00 +0000</pubDate><guid>https://blog.atusy.net/2024/11/27/mini-ai-ja/</guid><description>mini.aiとremapをうまく活用すると&lt;code>aj[&lt;/code>で「foo」のような日本語の括弧に対して発動するテキストオブジェクトをdot-repeatableに実装できることに気付きました。</description></item><item><title>週刊アトデ 2024-11-22</title><link>https://blog.atusy.net/2024/11/22/atodeyomanakata/</link><pubDate>Fri, 22 Nov 2024 00:00:00 +0000</pubDate><guid>https://blog.atusy.net/2024/11/22/atodeyomanakata/</guid><description>アトデヨム、ウソジャナイ、ヨムノタノシー</description></item><item><title>Rのパッケージ内でloggerパッケージを使う</title><link>https://blog.atusy.net/2024/11/19/logger-in-r-package/</link><pubDate>Tue, 19 Nov 2024 00:00:00 +0000</pubDate><guid>https://blog.atusy.net/2024/11/19/logger-in-r-package/</guid><description>Rのloggerパッケージをパッケージ開発に使う場合、&lt;code>.onLoad&lt;/code>関数内でログレベルなどの設定しよう。&lt;br>
&lt;code>.onLoad&lt;/code>関数の&lt;code>pkgname&lt;/code>引数を&lt;code>logger::log_threshold&lt;/code>などの設定関数の&lt;code>namespace&lt;/code>引数に渡すと、パッケージ内のログだけを対象に設定を変更できます。</description></item><item><title>コマンドの引数にJSONやYAMLを使うと便利かも</title><link>https://blog.atusy.net/2024/11/16/json-as-cmd-args/</link><pubDate>Sat, 16 Nov 2024 00:00:00 +0000</pubDate><guid>https://blog.atusy.net/2024/11/16/json-as-cmd-args/</guid><description>コマンドの引数をいっそJSONやYAMLにしちゃうと、シェルスクリプトの引数処理でwhileループを回避できる、配列など複雑な値もJSONの枠組みで扱える、JSONSchemaでバリデーションできると、嬉しいことが沢山かも。</description></item><item><title>qfscope.nvimでtelescope.nvimの検索結果を絞り込む</title><link>https://blog.atusy.net/2024/11/11/qfscope-nvim/</link><pubDate>Mon, 11 Nov 2024 00:00:00 +0000</pubDate><guid>https://blog.atusy.net/2024/11/11/qfscope-nvim/</guid><description>telescope.nvimの検索結果をファイル名や該当行の内容で絞り込みたいときのために、qfscope.nvimを開発しました。</description></item><item><title>git rebaseの苦労を減らすための覚え書き</title><link>https://blog.atusy.net/2024/11/07/git-rebase/</link><pubDate>Thu, 07 Nov 2024 00:00:00 +0000</pubDate><guid>https://blog.atusy.net/2024/11/07/git-rebase/</guid><description>レビューやログを振り返る時のために、Gitのコミットログを整理するrebase作業が、少しでも楽になるよう個人的に気をつけているポイントをまとめました。</description></item><item><title>Nixで最新のR環境を構築できなくてしんどい</title><link>https://blog.atusy.net/2024/11/01/nix-r-is-tough/</link><pubDate>Fri, 01 Nov 2024 00:00:00 +0000</pubDate><guid>https://blog.atusy.net/2024/11/01/nix-r-is-tough/</guid><description>&lt;p>先日、&lt;a href="http://localhost:4321/2024/10/07/nix-shell-and-r/">nix-shellでRを使う&lt;/a>という記事を書きましたが、Nixで入れたRをふだん使いするのはしんどいな……と感じています。いかんせん、R本体もパッケージも最新のものを使えない現状があります。&lt;/p>
&lt;div id="nix本家が対応に困ってる" class="section level1">
&lt;h1>nix本家が対応に困ってる&lt;/h1>
&lt;p>2024-11-01時点で最新のRは4.4.2ですが、nixで利用可能なRは4.4.1で止まっています。どうにも、パッケージの依存関係の都合で更新したくてもできない状況になっているようです。&lt;/p></description></item><item><title>Rでログを出力する（loggerパッケージ）</title><link>https://blog.atusy.net/2024/10/25/r-logger/</link><pubDate>Fri, 25 Oct 2024 00:00:00 +0000</pubDate><guid>https://blog.atusy.net/2024/10/25/r-logger/</guid><description>&lt;p>先日「&lt;a href="https://blog.atusy.net/2024/10/22/anaylze-ndjson-logs-in-r/">Rでndjson形式のログを解析する&lt;/a>]」の記事を書いた流れで、そういえばRでログを出力する方法を知らないな思ったので調べてみました。&lt;/p>
&lt;p>Rでログを扱うパッケージはいくつかありますが、開発が盛んなのは&lt;strong>logger&lt;/strong>パッケージのようです。最近（2024年8月がごろ）はHadleyも開発に入っているので、安心感がありますね。
&lt;strong>logger&lt;/strong>パッケージのWebサイトには、類似パッケージの紹介もあるので、他を見当したい場合も、まずはここを見てみるとよいでしょう。&lt;/p></description></item><item><title>Rでndjson形式のログを解析する</title><link>https://blog.atusy.net/2024/10/22/anaylze-ndjson-logs-in-r/</link><pubDate>Tue, 22 Oct 2024 00:00:00 +0000</pubDate><guid>https://blog.atusy.net/2024/10/22/anaylze-ndjson-logs-in-r/</guid><description>&lt;p>最近、ndjson形式のログをRで解析しました。やはり&lt;strong>tidyverse&lt;/strong>を使える体験のよさは他の追随を許しません。&lt;/p>
&lt;p>ただ、ndjson形式を直接読み込む方法を知らずに、&lt;code>jq&lt;/code>コマンドを使って通常のJSON形式に変換してから読み込んでいました（&lt;code>cat file.ndjson | jq -c -s . &amp;gt; file.json&lt;/code>）。読み込みからRで完結したいと思ったので、方法を調べてみました。&lt;/p></description></item><item><title>nix-shellでRを使う</title><link>https://blog.atusy.net/2024/10/07/nix-shell-and-r/</link><pubDate>Mon, 07 Oct 2024 00:00:00 +0000</pubDate><guid>https://blog.atusy.net/2024/10/07/nix-shell-and-r/</guid><description>&lt;p>&lt;a href="https://nix.dev/">Nix&lt;/a>はLinuxやUnix向けのパッケージマネージャーです。&lt;/p>
&lt;p>&lt;code>nix-env --install R&lt;/code>としてグローバルに利用可能なRをインストールすることもできますが、
&lt;code>nix-shell --package R&lt;/code>して一時的なR環境を&lt;code>bash&lt;/code>上に構築することもできます。&lt;/p>
&lt;p>R本体やパッケージのバージョン指定も可能なので、プロジェクトごとにパッケージのバージョン指定が異なる場合や、グローバル環境にインストールしたパッケージとプロジェクト用パッケージで依存関係が衝突する場合に便利です。&lt;/p></description></item><item><title>いいぞいいぞと言われるnixをためしてる</title><link>https://blog.atusy.net/2024/10/02/trying-nix/</link><pubDate>Wed, 02 Oct 2024 00:00:00 +0000</pubDate><guid>https://blog.atusy.net/2024/10/02/trying-nix/</guid><description>&lt;p>&lt;a href="https://nix.dev/">Nix&lt;/a>はLinuxやUnix向けのパッケージマネージャーです。ぱっと5つメリットをあげるとこんなところでしょうか。&lt;/p>
&lt;ul>
&lt;li>様々なLinuxディストリビューションやmacOSで使える&lt;/li>
&lt;li>再現性がありロールバックも可能&lt;/li>
&lt;li>入れたいパッケージごとに依存関係を独立して管理するので、Aを入れるにはBのバージョンアップが必要みたいな問題が起きない&lt;/li>
&lt;li>特定のプロジェクト（ディレクトリ）ごとに使うパッケージを変えられる&lt;/li>
&lt;li>設定ファイルも含めた構成管理ソフトウェアとしても使える&lt;/li>
&lt;/ul>
&lt;p>最近、&lt;a href="https://3-shake.co.jp">スリーシェイク&lt;/a>に転職して、職場のPCがmacOSになりました。以前は仕事もプライベートもmanjaro linuxで統一していたのでとりあえず&lt;code>paru&lt;/code>を使えばよかったのですが、そうも言ってられないので、&lt;a href="https://nix.dev/">Nix&lt;/a>を使ってみることにしました。&lt;/p></description></item><item><title>Rのヘルプを便利にするfelp v0.6.0をリリース</title><link>https://blog.atusy.net/2024/09/27/felp-0-6-0/</link><pubDate>Fri, 27 Sep 2024 00:00:00 +0000</pubDate><guid>https://blog.atusy.net/2024/09/27/felp-0-6-0/</guid><description>&lt;p>Rのヘルプを便利にする&lt;strong>felp&lt;/strong>パッケージのv0.6.0をリリースしました。&lt;/p>
&lt;p>&lt;strong>felp&lt;/strong>はfunctional helpの略称です。数年前のTokyo.Rでの雑談がきっかけで生まれたパッケージで主に以下の機能があります。&lt;/p></description></item><item><title>クリアファイルで財布に入るキーケースを作った</title><link>https://blog.atusy.net/2024/09/21/handmade-keycase/</link><pubDate>Sat, 21 Sep 2024 00:00:00 +0000</pubDate><guid>https://blog.atusy.net/2024/09/21/handmade-keycase/</guid><description>&lt;p>昨日の記事で紹介した&lt;a href="https://blog.atusy.net/2024/09/20/hmny-wallet/">hmnyのコンパクト財布&lt;/a>に入るキーケースを作りました。クリアファイルを加工しているので薄くて軽くて丈夫です。逆さにして振っても鍵が落ちてこない絶妙なホールド力も実現。ハンドメイドなので、自分の鍵にサイズを合わせられるメリットが活きています。&lt;/p>
&lt;p>&lt;img src="images/keycase-in-wallet.jpg" />&lt;/p>
&lt;p>自宅と自転車の鍵が入ります。間にはマスキングテープでスマートタグの&lt;a href="https://www.thetileapp.jp/">Tile&lt;/a>を貼りつけています。これで最低限必要な鍵は財布と共に持ち歩けます。トラッキングも鍵と財布で分けずに一元化できます。&lt;/p>
&lt;p>&lt;img src="images/keycase-stuffed.jpg" />&lt;/p>
&lt;p>空の状態はこんな感じ。クリアファイルから必要なサイズを切り取って、鍵の形に合わせて溶着しています。クリアファイルはポリプロピレン製で230度～280度の温度で溶着できるとのことだったので、温度調整機能つきのはんだごてを270度に設定して使いました。こて先が広めな面状のものを使うと、もう少し仕上がりがよかったかもしれません。&lt;/p></description></item><item><title>hmny casualのコンパクト財布を買った</title><link>https://blog.atusy.net/2024/09/20/hmny-wallet/</link><pubDate>Fri, 20 Sep 2024 00:00:00 +0000</pubDate><guid>https://blog.atusy.net/2024/09/20/hmny-wallet/</guid><description>&lt;p>10年以上、アブラサスの&lt;a href="https://superclassic.jp/products/40601">旅行財布&lt;/a>を使っていましたが、この度、hmny casualの&lt;a href="https://store.ruboa.com/?pid=122792979">コンパクト財布&lt;/a>に買い替えました。&lt;/p>
&lt;p>写真はやや青みがかかってますが、実際には黄緑に近い色です。皺の入りかたは個体差があり、1つと同じ商品がないところもステキ。&lt;/p></description></item><item><title>Anker Soundcore Space A40を買った（True wireless earphone）</title><link>https://blog.atusy.net/2024/09/06/anker-soundcore-a40/</link><pubDate>Fri, 06 Sep 2024 00:00:00 +0000</pubDate><guid>https://blog.atusy.net/2024/09/06/anker-soundcore-a40/</guid><description>&lt;p>Anker Soundcore Space A40を買いました。&lt;/p>
&lt;p>&lt;a href="https://www.ankerjapan.com/products/a3936" class="uri">https://www.ankerjapan.com/products/a3936&lt;/a>&lt;/p>
&lt;p>前から使ってみたかったところに、Amazonのセールで￥12,990 -&amp;gt; ￥8,990と安くなってたので、購入を決意。&lt;/p>
&lt;p>対抗馬は横向きで寝ててても使いやすいっぽい &lt;a href="https://www.ankerjapan.com/products/a6611">Anker Soundcore Sleep A20&lt;/a> でした。ただ、Sleep A20はセールしていなかったのと、私が寝るときはだいたい寝る時は仰向けスタートなので、Space A40でよかろうと判断。&lt;/p></description></item><item><title>zfをline-wise化して直感的な挙動にするマッピング</title><link>https://blog.atusy.net/2024/09/06/linewise-zf/</link><pubDate>Fri, 06 Sep 2024 00:00:00 +0000</pubDate><guid>https://blog.atusy.net/2024/09/06/linewise-zf/</guid><description>&lt;code>zf&lt;/code>がline-wiseに作用するよう&lt;code>nnoremap zf zfV&lt;/code>や&lt;code>vnoremap &amp;lt;expr&amp;gt; zf mode() ==# 'V' ? 'zf' : 'Vzf'&lt;/code>しとくと便利</description></item><item><title>Pandoc ONLINE #1で「PandocとLuaフィルタで作るプログラマブルな文書」について発表しました</title><link>https://blog.atusy.net/2024/08/07/pandoc-online-1/</link><pubDate>Wed, 07 Aug 2024 00:00:00 +0000</pubDate><guid>https://blog.atusy.net/2024/08/07/pandoc-online-1/</guid><description>&lt;p>日本Pandocユーザ会主催の勉強会「&lt;a href="https://pandoc-jp.connpass.com/event/323815/">Pandoc ONLINE #1&lt;/a>」が開催されました。&lt;br>
コミュニティ主催のsky_yさんが活動を再開していこうとしてらっしゃるので、これからが楽しみですね。&lt;br>
勉強会後の雑談会では、Pandocの技術的な話はしばしば出てくるが、業務でどう使われているか、みたいな話がなかなか出てこないという感想もあったので、コミュニティが盛り上がってこのあたりの知見共有も進むといいなと思います。&lt;/p></description></item><item><title>Rで関数定義のジャンプがしょぼいわけ</title><link>https://blog.atusy.net/2024/08/07/r-def-jumpt/</link><pubDate>Wed, 07 Aug 2024 00:00:00 +0000</pubDate><guid>https://blog.atusy.net/2024/08/07/r-def-jumpt/</guid><description>&lt;p>RStudioなどのエディタは、関数の定義ジャンプ機能を備えます。&lt;br>
VSCodeやVimなどのエディタでもLanguage Service Protocol（LSP）の支援により、関数の定義ジャンプが可能です（&lt;a href="https://cran.r-project.org/web/packages/languageserver/index.html">https://cran.r-project.org/web/packages/languageserver/index.html&lt;/a>）。&lt;/p></description></item><item><title>telescope.nvimでlive_grepした結果をファイル名で絞り込む</title><link>https://blog.atusy.net/2024/08/02/telescope-grep-refiement/</link><pubDate>Fri, 02 Aug 2024 00:00:00 +0000</pubDate><guid>https://blog.atusy.net/2024/08/02/telescope-grep-refiement/</guid><description>&lt;p>&lt;a href="https://vim-jp.org/ekiden/">Vim駅伝&lt;/a>8/2の記事です。&lt;/p>
&lt;p>&lt;a href="https://github.com/nvim-telescope/telescope.nvim">telescope.nvim&lt;/a>はNeovim向けのファジーファインダーと類されるプラグインです。&lt;br>
便利な機能の一つに&lt;code>:Telescope live_grep&lt;/code>があり、プロジェクト内のファイルを正規表現で検索できます。&lt;/p>
&lt;p>しかし、検索結果が多いときに、ファイル名で絞り込みたいことがあります。&lt;br>
たとえば、特定のディレクトリだけの結果が必要とか、テスト関係のファイルを除外したいとかいった状況があります。&lt;/p></description></item><item><title>TTC Silent Bluish White Tactile Switchがよさげ</title><link>https://blog.atusy.net/2024/07/25/ttc-silent-bluish-white-tactile-switch/</link><pubDate>Thu, 25 Jul 2024 00:00:00 +0000</pubDate><guid>https://blog.atusy.net/2024/07/25/ttc-silent-bluish-white-tactile-switch/</guid><description>&lt;p>TTC Silent Bluish White Tactile Switchを購入しました。&lt;/p>
&lt;p>別所での評判の通り、押し始めのタクタイル感が強く、そのあとすとんと落ちる感じ。&lt;br>
静音性も高い。&lt;br>
軸のグラつきも気にならない。&lt;/p></description></item><item><title>PandocでLuaオブジェクトをJSON文字列化する</title><link>https://blog.atusy.net/2024/07/23/pandoc-lua-to-json/</link><pubDate>Tue, 23 Jul 2024 00:00:00 +0000</pubDate><guid>https://blog.atusy.net/2024/07/23/pandoc-lua-to-json/</guid><description>&lt;p>ドキュメントの相互変換ツールであるPandocは、Lua言語のインタプリタを内蔵しており、便利なモジュールも様々に提供しています。&lt;br>
本来はLuaフィルタという、ドキュメント変換処理に割り込みをかけるために持っている機能ですが、&lt;code>pandoc lua&lt;/code>でインタプリタを起動したり、&lt;code>pandoc lua hoge.lua&lt;/code>で&lt;strong>hoge.lua&lt;/strong>を実行したりもできちゃいます。&lt;/p></description></item><item><title>SKKの接頭辞・接尾辞変換をvim-skk/skkeletonに追加した</title><link>https://blog.atusy.net/2024/06/21/skkeleton-affix/</link><pubDate>Fri, 21 Jun 2024 00:00:00 +0000</pubDate><guid>https://blog.atusy.net/2024/06/21/skkeleton-affix/</guid><description>&lt;p>&lt;a href="https://vim-jp.org/ekiden/">Vim駅伝&lt;/a>の2024/6/21の記事です。&lt;/p>
&lt;p>SKKは快適な日本語入力を実現する素敵なインプットメソッドです。&lt;/p>
&lt;p>WindowsやmacOSなどOS本体向けの実装もあるのですが、Vim向けにも&lt;a href="https://github.com/vim-skk/skkeleton">skkeleton&lt;/a>や&lt;a href="https://github.com/kawarimidoll/tuskk.vim">tussk&lt;/a>といった実装があります。&lt;br>
そして各種実装のルーツはemacsの&lt;a href="https://github.com/skk-dev/ddskk">ddskk&lt;/a>です。&lt;/p></description></item><item><title>Vimのj/kを加速させるサブモード</title><link>https://blog.atusy.net/2024/06/12/vim-submode-jjjj/</link><pubDate>Wed, 12 Jun 2024 00:00:00 +0000</pubDate><guid>https://blog.atusy.net/2024/06/12/vim-submode-jjjj/</guid><description>&lt;p>&lt;a href="https://vim-jp.org/ekiden/">Vim駅伝&lt;/a>の2024/6/12の記事です。&lt;/p>
&lt;p>Vimmerならついなんとはなしにj/kしちゃうこともありますし、&lt;code>&amp;lt;C-D&amp;gt;&lt;/code>とか使いなよと分かってても長距離j/kしちゃうこともありますよね。&lt;br>
そういった人向けに、j/kを連打すると移動距離を変える&lt;a href="https://github.com/rhysd/accelerated-jk">ryhsd/accelerated-jk&lt;/a>があります。&lt;/p></description></item><item><title>gh searchでOSS貢献を振り替える</title><link>https://blog.atusy.net/2024/06/03/gh-search-merged-prs/</link><pubDate>Mon, 03 Jun 2024 00:00:00 +0000</pubDate><guid>https://blog.atusy.net/2024/06/03/gh-search-merged-prs/</guid><description>&lt;p>&lt;code>gh&lt;/code>コマンド、ベンリですね。&lt;/p>
&lt;p>こんな感じで、公開レポジトリに作ったPRの内、マージされたものを一発で集計できちゃいます。&lt;/p>
&lt;p>今のところ、59レポジトリに167PRをマージしてもらったみたいです。&lt;/p></description></item><item><title>Remixでフロントエンド入門してみた</title><link>https://blog.atusy.net/2024/06/03/remix-beginner/</link><pubDate>Mon, 03 Jun 2024 00:00:00 +0000</pubDate><guid>https://blog.atusy.net/2024/06/03/remix-beginner/</guid><description>&lt;p>ぼちぼちフロントエンドなるもんもやってみたいなーと思い、&lt;a href="https://remix.run">Remix&lt;/a>に入門してみました。&lt;/p>
&lt;p>フロントエンドの経験は、仕事でちょっとVue2を触ったことがあるのと、3年ほど前に&lt;a href="https://react.dev/">React&lt;/a>のチュートリアルをやったことがあるくらい。&lt;/p>
&lt;p>特に拘りはなく、同僚がおすすめしてた&lt;a href="https://remix.run">Remix&lt;/a>に手を出してみることにしました。&lt;/p></description></item><item><title>fishの起動時間</title><link>https://blog.atusy.net/2024/06/02/fish-startuptime/</link><pubDate>Sun, 02 Jun 2024 00:00:00 +0000</pubDate><guid>https://blog.atusy.net/2024/06/02/fish-startuptime/</guid><description>&lt;p>fishの起動時間は&lt;code>fish -i -c &amp;quot;fish_prompt; exit 0&amp;quot;&lt;/code>の実行時間で測るとよさそうです。&lt;/p>
&lt;ul>
&lt;li>&lt;code>-i&lt;/code>オプションにより設定ファイルの実行時間を含む&lt;/li>
&lt;li>&lt;code>-c&lt;/code>オプションに&lt;code>fish_prompt&lt;/code>を呼ぶことでプロンプトの決定にかかる時間を含む&lt;/li>
&lt;/ul>
&lt;p>コマンドのベンチマークに便利な&lt;a href="https://github.com/sharkdp/hyperfine">hyperfine&lt;/a>を使うとこんな感じ。&lt;br>
平均45.8msとのことで、十分に高速かと思います。&lt;/p></description></item><item><title>fishでzshのhistoryも参照したい</title><link>https://blog.atusy.net/2024/05/30/fish-history/</link><pubDate>Thu, 30 May 2024 00:00:00 +0000</pubDate><guid>https://blog.atusy.net/2024/05/30/fish-history/</guid><description>&lt;p>先日、&lt;a href="https://blog.atusy.net/2024/05/27/fish/">fish使い始めた&lt;/a>との話をしたところですが、移行にあたり、Zshのコマンド履歴を使えないことが苦痛になりました。&lt;/p>
&lt;p>そんな時も、さっと設定できちゃうFishはステキ。&lt;br>
素朴には以下のようにすると、Zshのコマンド履歴（&lt;code>~/.zsh_history&lt;/code>）と、Fishのコマンド履歴（&lt;code>history&lt;/code>コマンドの出力）を合体させて、&lt;a href="https://github.com/junegunn/fzf">fzf&lt;/a>で選択すれば両方の履歴を使えます。&lt;/p></description></item><item><title>H/LとPageUp/PageDownを共存させる設定 (submode編)</title><link>https://blog.atusy.net/2024/05/29/vim-hl-enhanced/</link><pubDate>Wed, 29 May 2024 00:00:00 +0000</pubDate><guid>https://blog.atusy.net/2024/05/29/vim-hl-enhanced/</guid><description>&lt;p>この記事は、&lt;a href="https://vim-jp.org/ekiden/">Vim駅伝&lt;/a>の2024年5月29日の記事です。&lt;/p>
&lt;p>22日の記事でH/LとPageUp/PageDownを共存させる設定の紹介がありました。&lt;/p>
&lt;blockquote>
&lt;p>&lt;a href="https://zenn.dev/vim_jp/articles/20240522_ekiden_better_hl">https://zenn.dev/vim_jp/articles/20240522_ekiden_better_hl&lt;/a>&lt;/p>
&lt;/blockquote>
&lt;p>&lt;code>H&lt;/code>と&lt;code>L&lt;/code>は通常では、表示領域内の最初の行や最後の行にカーソルを移動させるコマンドです。&lt;br>
連打しやすい割に、連打する意味がない、惜しい存在ですが、スクロール機能も持たせるのは良いアイデアですね。&lt;/p></description></item><item><title>fish使い始めた</title><link>https://blog.atusy.net/2024/05/27/fish/</link><pubDate>Mon, 27 May 2024 00:00:00 +0000</pubDate><guid>https://blog.atusy.net/2024/05/27/fish/</guid><description>&lt;p>長く、Zshを使っていましたが、Fishに移行しました。&lt;/p>
&lt;p>ノープラグインでOKなくらい高機能で工夫せずとも20msで起動するのは快適でいいです。&lt;br>
ネット上のコマンドをコピペした時もそんなに込まらなさそう。&lt;/p></description></item><item><title>Neovimの端っこで\&lt;C-W\>lとかしたら、WeztermのとなりのPaneに移動する</title><link>https://blog.atusy.net/2024/05/21/move-nvim-win-or-wezterm-pane/</link><pubDate>Tue, 21 May 2024 00:00:00 +0000</pubDate><guid>https://blog.atusy.net/2024/05/21/move-nvim-win-or-wezterm-pane/</guid><description>&lt;p>Weztermで区切ったPaneの中でNeovimを操作していると、&lt;code>&amp;lt;c-w&amp;gt;l&lt;/code>したのに隣に移動できないぞ？という気分になるときがあります。&lt;br>
右隣はNeovimのWindowではなく、WeztermのPaneですね。&lt;/p></description></item><item><title>Posit Table Contestに`felp::fuzzyhelp()`を投稿した</title><link>https://blog.atusy.net/2024/05/13/posit-table-contest/</link><pubDate>Mon, 13 May 2024 00:00:00 +0000</pubDate><guid>https://blog.atusy.net/2024/05/13/posit-table-contest/</guid><description>&lt;p>RStudio IDEを開発するPosit PBCが&lt;a href="https://posit.co/blog/announcing-the-2024-table-contest/">Table Contest: 2024 Edition&lt;/a>を開催しています。&lt;/p>
&lt;p>表を使ったデータの可視化の例を思い思いに投稿してもらい、その中から受賞者を決めて、Tシャツやマグカップなどのノベルティを進呈するプログラムのようです。&lt;br>
&lt;a href="https://pola-rs.github.io/r-polars/">polars&lt;/a>パッケージを使って投稿した人には特別な受賞枠もあるようです。&lt;br>
2022年にも同様のコンテストがありましたが、今年はR言語に限らず、Python言語を使っての投稿もOKとのこと。&lt;/p></description></item><item><title>Shinyをバックグラウンドで起動する</title><link>https://blog.atusy.net/2024/04/01/shiny-as-background-process/</link><pubDate>Mon, 01 Apr 2024 00:00:00 +0000</pubDate><guid>https://blog.atusy.net/2024/04/01/shiny-as-background-process/</guid><description>&lt;p>先週、&lt;a href="https://felp.atusy.net/">felp&lt;/a> v0.4.0をリリースしました。&lt;/p>
&lt;p>このパッケージはShinyを使っていて、&lt;code>felp::fuzzyhelp()&lt;/code>を実行すると、以下のように、ヘルプをあいまい検索できます。&lt;br>
あるいは以下のデモのように、RStudioのコマンドパレット&lt;sup id="fnref:1">&lt;a href="#fn:1" class="footnote-ref" role="doc-noteref">1&lt;/a>&lt;/sup>からも起動できます。&lt;/p></description></item><item><title>gin.vimで捗るgitのログ改竄 (instant fixup)</title><link>https://blog.atusy.net/2024/03/15/instant-fixup-with-gin-vim/</link><pubDate>Fri, 15 Mar 2024 00:00:00 +0000</pubDate><guid>https://blog.atusy.net/2024/03/15/instant-fixup-with-gin-vim/</guid><description>&lt;p>&lt;a href="https://vim-jp.org/ekiden/">Vim 駅伝&lt;/a>の2024/3/15の記事です。&lt;/p>
&lt;p>Gitで整然とコミットを詰むのはそうそうたやすいものではありません。&lt;br>
あのコミットでバグを仕込んでしまった、コミットメッセージを間違えていた、そんなミスはよくあることです。&lt;br>
かと言って、整然とコミットするためにコミットを後回しにしては本末転倒です。&lt;br>
うかつな操作で作業内容を失うかもしれませんし、少し前の作業内容に戻りたくなるかもしれません。&lt;br>
また差分が大きくなるほど適切な粒度でのコミットが億劫になります。&lt;/p></description></item><item><title>gyでVimからクリップボードにヤンクする</title><link>https://blog.atusy.net/2024/03/11/vim-gy-as-gui-yank/</link><pubDate>Mon, 11 Mar 2024 00:00:00 +0000</pubDate><guid>https://blog.atusy.net/2024/03/11/vim-gy-as-gui-yank/</guid><description>&lt;p>&lt;a href="https://vim-jp.org/ekiden/">Vim 駅伝&lt;/a>の2024/3/11の記事です。&lt;/p>
&lt;p>Vim/Neovimで文字列をクリップボードへヤンクする主な方法は大きく二通りあります。&lt;/p>
&lt;ul>
&lt;li>都度指定
&lt;ul>
&lt;li>&lt;code>&amp;quot;*y&lt;/code>や&lt;code>&amp;quot;+y&lt;/code>といった具合にヤンクする時にクリップボードを使うよう、明示的にレジスタを指定する&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>自動同期
&lt;ul>
&lt;li>&lt;code>set clipboard+=unnamedplus&lt;/code>（または&lt;code>unnamed&lt;/code>）しておき、レジスタを指定せずにヤンクした内容を自動的にクリップボードに同期する&lt;/li>
&lt;/ul>
&lt;/li>
&lt;/ul>
&lt;p>詳しくは以下の記事をご参照ください。&lt;/p></description></item><item><title>ftExtra v0.6.2をリリースしました</title><link>https://blog.atusy.net/2024/03/01/ftextra-v0-6-2/</link><pubDate>Fri, 01 Mar 2024 00:00:00 +0000</pubDate><guid>https://blog.atusy.net/2024/03/01/ftextra-v0-6-2/</guid><description>&lt;link href="index_files/libs/tabwid-1.1.3/tabwid.css" rel="stylesheet" />
&lt;script src="index_files/libs/tabwid-1.1.3/tabwid.js">&lt;/script>
&lt;p>&lt;a href="https://ftextra.atusy.net/">ftExtra&lt;/a> v0.6.2をリリースしました。&lt;/p>
&lt;p>&lt;a href="https://ardata-fr.github.io/flextable-book/">flextable&lt;/a>パッケージを使って表組みする時に、セル内のマークダウンを処理できる &lt;code>ftExtra::colformat_md()&lt;/code> がウリです。&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-r" data-lang="r">&lt;span class="line">&lt;span class="cl">&lt;span class="nf">data.frame&lt;/span>&lt;span class="p">(&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="n">x&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="nf">c&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="s">&amp;#34;**bold**&amp;#34;&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="s">&amp;#34;*italic*&amp;#34;&lt;/span>&lt;span class="p">),&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="n">y&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="nf">c&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="s">&amp;#34;^superscript^&amp;#34;&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="s">&amp;#34;~subscript~&amp;#34;&lt;/span>&lt;span class="p">),&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="n">z&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="nf">c&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="s">&amp;#34;***~ft~^Extra^** is*&amp;#34;&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="s">&amp;#34;*Cool*&amp;#34;&lt;/span>&lt;span class="p">),&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="n">stringsAsFactors&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="kc">FALSE&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="p">)&lt;/span> &lt;span class="o">|&amp;gt;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="n">flextable&lt;/span>&lt;span class="o">::&lt;/span>&lt;span class="nf">flextable&lt;/span>&lt;span class="p">()&lt;/span> &lt;span class="o">|&amp;gt;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="n">ftExtra&lt;/span>&lt;span class="o">::&lt;/span>&lt;span class="nf">colformat_md&lt;/span>&lt;span class="p">()&lt;/span>
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;div class="tabwid">&lt;style>.cl-9f195392{}.cl-9f13596a{font-family:'DejaVu Sans';font-size:11pt;font-weight:normal;font-style:normal;text-decoration:none;color:rgba(0, 0, 0, 1.00);background-color:transparent;}.cl-9f135974{font-family:'DejaVu Sans';font-size:11pt;font-weight:bold;font-style:normal;text-decoration:none;color:rgba(0, 0, 0, 1.00);background-color:transparent;}.cl-9f13597e{font-family:'DejaVu Sans';font-size:6.6pt;font-weight:normal;font-style:normal;text-decoration:none;color:rgba(0, 0, 0, 1.00);background-color:transparent;position: relative;bottom:3.3pt;}.cl-9f13597f{font-family:'DejaVu Sans';font-size:6.6pt;font-weight:bold;font-style:italic;text-decoration:none;color:rgba(0, 0, 0, 1.00);background-color:transparent;position: relative;top:3.3pt;}.cl-9f135988{font-family:'DejaVu Sans';font-size:6.6pt;font-weight:bold;font-style:italic;text-decoration:none;color:rgba(0, 0, 0, 1.00);background-color:transparent;position: relative;bottom:3.3pt;}.cl-9f135989{font-family:'DejaVu Sans';font-size:11pt;font-weight:normal;font-style:italic;text-decoration:none;color:rgba(0, 0, 0, 1.00);background-color:transparent;}.cl-9f135992{font-family:'DejaVu Sans';font-size:6.6pt;font-weight:normal;font-style:normal;text-decoration:none;color:rgba(0, 0, 0, 1.00);background-color:transparent;position: relative;top:3.3pt;}.cl-9f168324{margin:0;text-align:left;border-bottom: 0 solid rgba(0, 0, 0, 1.00);border-top: 0 solid rgba(0, 0, 0, 1.00);border-left: 0 solid rgba(0, 0, 0, 1.00);border-right: 0 solid rgba(0, 0, 0, 1.00);padding-bottom:5pt;padding-top:5pt;padding-left:5pt;padding-right:5pt;line-height: 1;background-color:transparent;}.cl-9f1690b2{width:0.75in;background-color:transparent;vertical-align: middle;border-bottom: 1.5pt solid rgba(102, 102, 102, 1.00);border-top: 1.5pt solid rgba(102, 102, 102, 1.00);border-left: 0 solid rgba(0, 0, 0, 1.00);border-right: 0 solid rgba(0, 0, 0, 1.00);margin-bottom:0;margin-top:0;margin-left:0;margin-right:0;}.cl-9f1690bc{width:0.75in;background-color:transparent;vertical-align: middle;border-bottom: 0 solid rgba(0, 0, 0, 1.00);border-top: 0 solid rgba(0, 0, 0, 1.00);border-left: 0 solid rgba(0, 0, 0, 1.00);border-right: 0 solid rgba(0, 0, 0, 1.00);margin-bottom:0;margin-top:0;margin-left:0;margin-right:0;}.cl-9f1690bd{width:0.75in;background-color:transparent;vertical-align: middle;border-bottom: 1.5pt solid rgba(102, 102, 102, 1.00);border-top: 0 solid rgba(0, 0, 0, 1.00);border-left: 0 solid rgba(0, 0, 0, 1.00);border-right: 0 solid rgba(0, 0, 0, 1.00);margin-bottom:0;margin-top:0;margin-left:0;margin-right:0;}&lt;/style>&lt;table data-quarto-disable-processing='true' class='cl-9f195392'>&lt;thead>&lt;tr style="overflow-wrap:break-word;">&lt;th class="cl-9f1690b2">&lt;p class="cl-9f168324">&lt;span class="cl-9f13596a">x&lt;/span>&lt;/p></description></item><item><title>Neovimで文法に従ってコードを範囲選択するtreemonkey.nvimを作った</title><link>https://blog.atusy.net/2023/12/27/treemonkey-nvim/</link><pubDate>Wed, 27 Dec 2023 00:00:00 +0000</pubDate><guid>https://blog.atusy.net/2023/12/27/treemonkey-nvim/</guid><description>&lt;p>&lt;a href="https://github.com/atusy/treemonkey.nvim/">treemonkey.nvim&lt;/a>というプラグインを作りました。&lt;/p>
&lt;p>treesitterを活用し、カーソル位置に対応するノード（変数とか関数とか）を選択するプラグインです。&lt;br>
ノードの開始位置と終了位置に対応するラベルがあるので、自分が選択したい範囲に対応するラベルを選ぶ形式です。&lt;/p></description></item><item><title>ddc.vimを使ってmakeやGinなどのExコマンドの補完を実現する</title><link>https://blog.atusy.net/2023/12/20/ddc-fish-alias-completion/</link><pubDate>Wed, 20 Dec 2023 00:00:00 +0000</pubDate><guid>https://blog.atusy.net/2023/12/20/ddc-fish-alias-completion/</guid><description>&lt;p>&lt;a href="https://github.com/Shougo/ddc.vim">ddc.vim&lt;/a>は自動補完プラグインの1つです。&lt;br>
Denoをバックエンドにすることで、ユーザーにとっては軽快な挙動を、開発者にとっては高いメンテナンス性を享受できます。&lt;/p>
&lt;blockquote>
&lt;p>&lt;a href="https://zenn.dev/shougo/articles/ddc-vim-beta">新世代の自動補完プラグイン ddc.vim&lt;/a>&lt;/p>
&lt;/blockquote>
&lt;p>コマンドライン補完にも対応しており、組込みの補完よりも補完候補のソースやマッチング、ソーティングにおいて、高い柔軟性を持ちます。&lt;/p></description></item><item><title>RでR言語をパースする</title><link>https://blog.atusy.net/2023/12/19/r-parsed-data/</link><pubDate>Tue, 19 Dec 2023 00:00:00 +0000</pubDate><guid>https://blog.atusy.net/2023/12/19/r-parsed-data/</guid><description>&lt;p>&lt;a href="https://qiita.com/advent-calendar/2023/rlang">R言語 Advent Calendar 2023&lt;/a>の19日目の記事です。&lt;br>
昨日の記事はwawana21さんによる「&lt;a href="https://qiita.com/wawana12/items/2e9ed1eb64ab27682a3c">ggplot2で標準偏差付きの折れ線グラフを描く&lt;/a>」でした。可視化大事。&lt;/p>
&lt;p>2023年、ずいぶんとRを触ることが減りました。&lt;br>
それでも&lt;a href="https://ftextra.atusy.net">ftExtra&lt;/a>などのパッケージの更新をほそぼそとやってます。&lt;/p></description></item><item><title>VimのOperator待機モードでexclusive motionをinclusiveに使う</title><link>https://blog.atusy.net/2023/12/18/vim-convert-exclusive-motions-into-inclusive/</link><pubDate>Mon, 18 Dec 2023 00:00:00 +0000</pubDate><guid>https://blog.atusy.net/2023/12/18/vim-convert-exclusive-motions-into-inclusive/</guid><description>&lt;p>&lt;a href="https://qiita.com/advent-calendar/2023/vim">Vimアドベントカレンダー2023&lt;/a>の12/18の記事です。&lt;br>
昨日の記事は以下の通りでした&lt;/p>
&lt;ul>
&lt;li>ryoppippiさんによる「&lt;a href="https://docs.google.com/presentation/d/1Y-KASktkcmsS5BNelTH10WpoA6SIQbvDpxi6vFnETn4/edit#slide=id.p">Vimで人生が豊かになった話&lt;/a>」(2023/12/18 22:25時点で未投稿)&lt;/li>
&lt;li>atusyによる「&lt;a href="https://blog.atusy.net/2023/12/17/vim-easy-to-remember-regnames/">Vimで無名レジスタでchange/delete/yankした時に、イニシャルに相当するレジスタにも値を入れる&lt;/a>」&lt;/li>
&lt;/ul>
&lt;p>Vimのモーションのinclusive/exclusive、なかなか意識する場面が少ないですね。&lt;/p></description></item><item><title>Vimで無名レジスタでchange/delete/yankした時に、イニシャルに相当するレジスタにも値を入れる</title><link>https://blog.atusy.net/2023/12/17/vim-easy-to-remember-regnames/</link><pubDate>Sun, 17 Dec 2023 00:00:00 +0000</pubDate><guid>https://blog.atusy.net/2023/12/17/vim-easy-to-remember-regnames/</guid><description>&lt;p>Vim Advent Calendar 2023の12/17の記事です。&lt;br>
昨日の記事は以下の通りでした。&lt;/p>
&lt;ul>
&lt;li>mattnさんによる「&lt;a href="https://zenn.dev/mattn/articles/8716db121781d2">Vim で SQL を素で編集してるの？&lt;/a>」&lt;/li>
&lt;/ul>
&lt;p>Vimのレジスタ、使いこなしてますか？&lt;br>
とっても沢山種類があります。&lt;/p></description></item><item><title>telescope.nvimによるjumplistをちょっと便利にするテク</title><link>https://blog.atusy.net/2023/12/12/telescope-jump-list/</link><pubDate>Tue, 12 Dec 2023 00:00:00 +0000</pubDate><guid>https://blog.atusy.net/2023/12/12/telescope-jump-list/</guid><description>&lt;p>Vimアドベントカレンダー12/10の記事です。&lt;br>
昨日の記事は以下の2本でした。&lt;/p>
&lt;ul>
&lt;li>Omochiceさんによる「&lt;a href="https://zenn.dev/vim_jp/articles/4fa91c21-fffc-4a74-9444-b06658b194b3">使っているvimプラグインの棚卸し(2023冬)&lt;/a>」&lt;/li>
&lt;li>KaitoMuraokaさんによる「初心者向けに何か」（2023/12/23 9:54時点で未投稿）&lt;/li>
&lt;/ul>
&lt;p>&lt;a href="https://github.com/nvim-telescope/telescope.nvim/">Telescope&lt;/a>はNeovimにおけるFuzzy Finderのデファクトの座を勝ち取っていると思います。&lt;br>
便利な一方、痒いところに手を出すと途端に難解でundocumentedなAPIに手を出す羽目になります&amp;hellip;&amp;hellip;。&lt;/p></description></item><item><title>denops製VimプラグインでDenoのバージョンとキャッシュ位置を固定する</title><link>https://blog.atusy.net/2023/12/10/denops-cache/</link><pubDate>Sun, 10 Dec 2023 00:00:00 +0000</pubDate><guid>https://blog.atusy.net/2023/12/10/denops-cache/</guid><description>&lt;p>Vimアドベントカレンダー12/10の記事です。&lt;br>
昨日の記事は以下の2本でした。&lt;/p>
&lt;ul>
&lt;li>nil2さんによる「&lt;a href="https://zenn.dev/nil2/articles/802f115673b9ba">Vimのデフォルトキーマップをどのように上書きするか(ノーマルモード)&lt;/a>」&lt;/li>
&lt;li>atusyによる「&lt;a href="https://blog.atusy.net/2023/12/09/gf-open-url/">VimでgfしたらURLをブラウザで開く&lt;/a>」&lt;/li>
&lt;/ul>
&lt;p>さて本題。&lt;/p>
&lt;p>&lt;a href="https://github.com/vim-denops/denops.vim">denops.vim&lt;/a>というプラグイン開発エコシステムがあります。&lt;/p>
&lt;blockquote>
&lt;p>denops.vim は JavaScript/TypeScript のランタイムである Deno を利用して Vim/Neovim 双方で動作するプラグインを作るためのエコシステムです。&lt;br>
&lt;a href="https://zenn.dev/lambdalisue/articles/b4a31fba0b1ce95104c9">https://zenn.dev/lambdalisue/articles/b4a31fba0b1ce95104c9&lt;/a>&lt;/p></description></item><item><title>VimでgfしたらURLをブラウザで開く</title><link>https://blog.atusy.net/2023/12/09/gf-open-url/</link><pubDate>Sat, 09 Dec 2023 00:00:00 +0000</pubDate><guid>https://blog.atusy.net/2023/12/09/gf-open-url/</guid><description>&lt;p>Vimアドベントカレンダー12/9の記事です。&lt;br>
昨日の記事は以下の2本でした。&lt;/p>
&lt;ul>
&lt;li>NI57721さんによる「&lt;a href="https://zenn.dev/vim_jp/articles/vim-shakyo-plugin">長文丸暗記用のVimプラグインを作った話&lt;/a>」&lt;/li>
&lt;li>yasunori0418さんによる「&lt;a href="https://zenn.dev/vim_jp/articles/0005-search_help_with_ddu">ヘルプから始めるddu&lt;/a>」&lt;/li>
&lt;/ul>
&lt;h1 id="gfはいいぞ">gfはいいぞ&lt;/h1>
&lt;p>&lt;code>gf&lt;/code>コマンド、便利ですよね。&lt;br>
ファイル名前の上で&lt;code>gf&lt;/code>と入力すると、そのファイルをバッファに開いてくれます。&lt;/p></description></item><item><title>gin.vimでgitの差分を快適に閲覧する</title><link>https://blog.atusy.net/2023/11/29/gin-diff/</link><pubDate>Wed, 29 Nov 2023 00:00:00 +0000</pubDate><guid>https://blog.atusy.net/2023/11/29/gin-diff/</guid><description>&lt;p>2023/11/29の&lt;a href="https://vim-jp.org/ekiden/">Vim駅伝&lt;/a>記事です。&lt;br>
前回はyasunori0418さんによる「&lt;a href="https://zenn.dev/vim_jp/articles/0002-engineer_with_vim">vimを切っ掛けにエンジニアになった話&lt;/a>」でした。&lt;/p>
&lt;p>&lt;a href="https://github.com/lambdalisue/gin.vim">gin.vim&lt;/a>というVim上でGitを便利に扱うプラグインがあります。&lt;br>
水銀などのギンではなく、お酒のジンです。&lt;/p>
&lt;p>Exコマンドの&lt;code>Gin&lt;/code>を通じて、&lt;code>git&lt;/code>コマンドを実行するのが素朴な使い方です（例：&lt;code>Gin commit&lt;/code>）。&lt;br>
&lt;code>Gin&lt;/code>の代わりに&lt;code>GinBuffer&lt;/code>を使うと、コマンドの実行結果をバッファに出力できます（例：&lt;code>GinBuffer log -n 1&lt;/code>）。&lt;/p></description></item><item><title>プラグインをURLで指定しやすくするために、tree-sitterでURIパーサーを作ってNeovimを彩ってみた</title><link>https://blog.atusy.net/2023/11/17/tree-sitter-uri/</link><pubDate>Fri, 17 Nov 2023 00:00:00 +0000</pubDate><guid>https://blog.atusy.net/2023/11/17/tree-sitter-uri/</guid><description>&lt;p>この記事は&lt;a href="https://vim-jp.org/ekiden/">Vim駅伝&lt;/a>2023年11月17日(金)の記事です。&lt;/p>
&lt;p>VimやNeovimでプラグインマネージャーに使いたいプラグインを指定するとき、GitHubでの配布物であれば&lt;code>ユーザー名/レポジトリ名&lt;/code>での指定が一般的です。&lt;/p></description></item><item><title>テキストの折り畳みを彩る vim.treesitter.foldtext() を使ってみる</title><link>https://blog.atusy.net/2023/10/26/treesitter-foldtext/</link><pubDate>Thu, 26 Oct 2023 00:00:00 +0000</pubDate><guid>https://blog.atusy.net/2023/10/26/treesitter-foldtext/</guid><description>Neovim 0.10で使えるようになる&lt;code>vim.treesitter.foldtext()&lt;/code>を使うと折り畳んだコードもキレイに色付けられるぞ。ラッパー書けば次の行の情報も色付けて表示できたりしてとっても便利だぞ。</description></item><item><title>TailscaleのMagicDNSがなぜかLinux上で動かなくなったのでトラブルシューティングした</title><link>https://blog.atusy.net/2023/10/17/tailscale-magicdns-with-networkmanager/</link><pubDate>Tue, 17 Oct 2023 00:00:00 +0000</pubDate><guid>https://blog.atusy.net/2023/10/17/tailscale-magicdns-with-networkmanager/</guid><description>&lt;p>MagicDNSを使っているつもりだが、名前解決に失敗する……！&lt;/p>
&lt;p>どうやらLinuxの場合、NetworkManager + systemd-resolvedという構成を使っているケースが多いらしく、以下のようにして、 &lt;code>/etc/resolv.conf&lt;/code>を設定してやればいいようだ（&lt;a href="https://tailscale.com/kb/1188/linux-dns/">Configuring Linux DNS&lt;/a>）。&lt;/p></description></item><item><title>Rでアホになった要素を速く見つけろ！（ナベアツネタ）</title><link>https://blog.atusy.net/2023/10/12/fast-fool-findier/</link><pubDate>Thu, 12 Oct 2023 00:00:00 +0000</pubDate><guid>https://blog.atusy.net/2023/10/12/fast-fool-findier/</guid><description>&lt;blockquote>
&lt;p>ナベアツは数字がでかくなるほどアホになる割合がアップすると聞いたので検証してみました
&lt;a href="https://twitter.com/jagarikin/status/1711855799184785732" class="uri">https://twitter.com/jagarikin/status/1711855799184785732&lt;/a>&lt;/p>
&lt;/blockquote>
&lt;p>これをRでやってみるべく、MITTIさんが書いたコードが重いらしいです。&lt;/p></description></item><item><title>mini.surroundによるHTMLタグ編集のemmet対応</title><link>https://blog.atusy.net/2023/09/01/mini-surround-emmet/</link><pubDate>Fri, 01 Sep 2023 00:00:00 +0000</pubDate><guid>https://blog.atusy.net/2023/09/01/mini-surround-emmet/</guid><description>&lt;p>&lt;a href="https://github.com/echasnovski/mini.surround">mini.surround&lt;/a>は&lt;a href="https://github.com/machakann/vim-sandwich">vim-sandwich&lt;/a>のような、括弧やクオーテーションなどで囲まれた文字列を編集するためのNeovim向けプラグインです。&lt;/p>
&lt;p>選択範囲を&lt;code>()&lt;/code>で囲う、文字列の囲いを&lt;code>()&lt;/code>から&lt;code>""&lt;/code>に変更する、&lt;code>""&lt;/code>による囲いを削除するといったことが可能です。同様にHTMLタグに対する操作にも対応していますが素朴なものです。&lt;/p></description></item><item><title>Modifying output format from within R Markdown chunk by `rmarkdown::output_format_dependency`</title><link>https://blog.atusy.net/2023/08/28/rmarkdown-output-format-dependency/</link><pubDate>Mon, 28 Aug 2023 00:00:00 +0000</pubDate><guid>https://blog.atusy.net/2023/08/28/rmarkdown-output-format-dependency/</guid><description>&lt;p>This article introduces a new feature from &lt;strong>rmarkdown&lt;/strong> 2.24, &lt;a href="https://rmarkdown.rstudio.com/docs/reference/output_format_dependency.html">&lt;code>output_format_dependency()&lt;/code>&lt;/a>.&lt;/p>
&lt;p>R Markdown users use variety of output formats from variety of packages such as &lt;code>html_document&lt;/code>, &lt;code>bookdown::git_book&lt;/code>, &lt;code>revealjs::revealjs_presentation&lt;/code>, and so on&lt;/p>
&lt;p>Usually, users specify the YAML frontmatter to choose and tweak formats.&lt;/p>
&lt;pre class="yaml">&lt;code>output:
 html_document:
 toc: true&lt;/code>&lt;/pre>
&lt;p>Some people may be surprised, but the output formats are R functions!
And the above example is equivalent to specifying the &lt;code>toc&lt;/code> argument to &lt;a href="https://rmarkdown.rstudio.com/docs/reference/html_document.html">&lt;code>html_document()&lt;/code>&lt;/a>.
Output formats already provide customizibility.&lt;/p></description></item><item><title>Keyball61のオレオレマッピングを語る</title><link>https://blog.atusy.net/2023/08/12/keyball61/</link><pubDate>Sat, 12 Aug 2023 00:00:00 +0000</pubDate><guid>https://blog.atusy.net/2023/08/12/keyball61/</guid><description>&lt;p>たぶんKeyball61ユーザーの中でも珍しい配列をしているだろうと思うので、その背景も含めてまとめておく。&lt;/p>
&lt;p>右手トラックボールです。&lt;/p>
&lt;h1 id="親指によるhold--tap">親指によるHold &amp;amp; Tap&lt;/h1>
&lt;p>親指は&lt;code>Ctrl&lt;/code>, &lt;code>Shift&lt;/code>, &lt;code>Alt&lt;/code>, &lt;code>Win&lt;/code>や&lt;code>Layer&lt;/code>操作などの修飾キーの操作を担います。&lt;/p></description></item><item><title>Hello, Quarto</title><link>https://blog.atusy.net/2023/08/01/hello-quarto/</link><pubDate>Tue, 01 Aug 2023 00:00:00 +0000</pubDate><guid>https://blog.atusy.net/2023/08/01/hello-quarto/</guid><description>&lt;p>本ブログはずっと&lt;a href="https://bookdown.org/yihui/blogdown/">blogdown&lt;/a>を使って書いてきましたが、心機一転&lt;a href="https://quarto.org">quarto&lt;/a>で書いてみることにします。&lt;/p>
&lt;p>といっても&lt;a href="https://bookdown.org/yihui/blogdown/">blogdown&lt;/a>ユーザーであれば移行に特に苦労はなさそうです。&lt;/p>
&lt;p>blogdownはHugoを使ってページを構築するので、quartoとhugoの組み合わせ方を調べ、合わせればOK。&lt;/p></description></item><item><title>日本語の「っ」から始まる送り仮名とSKK+AZIKによる日本語入力に関する考察</title><link>https://blog.atusy.net/2023/08/01/skk-azik-and-sokuon-okuri/</link><pubDate>Tue, 01 Aug 2023 00:00:00 +0000</pubDate><guid>https://blog.atusy.net/2023/08/01/skk-azik-and-sokuon-okuri/</guid><description>&lt;h1 id="始めに">始めに&lt;/h1>
&lt;p>SKKという日本語入力システムがある。&lt;br>
元々はEmacsというエディタ向けに開発されたものだが、現在では各種OSのIMEや他のエディタの日本語入力システムとしても活用されている。&lt;/p></description></item><item><title>Vimでコマンドライン履歴を遡りやすくする</title><link>https://blog.atusy.net/2023/07/24/vim-clean-history/</link><pubDate>Mon, 24 Jul 2023 00:00:00 +0000</pubDate><guid>https://blog.atusy.net/2023/07/24/vim-clean-history/</guid><description>&lt;p>本記事は&lt;a href="https://vim-jp.org/ekiden/">Vim 駅伝&lt;/a>7/24の記事です。&lt;/p>
&lt;p>Vimのコマンドラインで、履歴を遡りたい時、&lt;code>:w&lt;/code>とか&lt;code>:qa&lt;/code>とかが出てきて煩わしく感じることがあります。&lt;/p>
&lt;p>正直、これくらいシンプルなExコマンドであれば履歴に残しておく意味すら薄いので、履歴に残さない（or 履歴から消す）といいでしょう。&lt;/p></description></item><item><title>Pandoc 3でカスタムライターがとてもよくなった</title><link>https://blog.atusy.net/2023/07/14/pandoc-3-custom-writer/</link><pubDate>Fri, 14 Jul 2023 00:00:00 +0000</pubDate><guid>https://blog.atusy.net/2023/07/14/pandoc-3-custom-writer/</guid><description>&lt;p>様々な文書形式を相互変換するPandocにはカスタムライター・カスタムリーダーという、独自形式の読み書きをサポートする機能があります。
Lua言語で記述でき、便利関数も色々と用意されています。&lt;/p></description></item><item><title>PandocのLuaフィルタからPandoc templateを呼べるpandoc.templateモジュールがとても便利</title><link>https://blog.atusy.net/2023/06/12/pandoc-template-module/</link><pubDate>Mon, 12 Jun 2023 00:00:00 +0000</pubDate><guid>https://blog.atusy.net/2023/06/12/pandoc-template-module/</guid><description>&lt;p>Pandoc 3.0以降ではLuaフィルタで使えるモジュールに&lt;code>pandoc.template&lt;/code>が追加されました。これを使うとLuaフィルタ内で&lt;a href="https://pandoc.org/MANUAL.html#templates">Pandoc Template&lt;/a>を展開できます。&lt;/p></description></item><item><title>データフレームからの表組みを楽にするftExtra 0.6.0をリリース！脚注の書式指定が柔軟に！！</title><link>https://blog.atusy.net/2023/05/30/ftextra-0-6-0/</link><pubDate>Tue, 30 May 2023 00:00:00 +0000</pubDate><guid>https://blog.atusy.net/2023/05/30/ftextra-0-6-0/</guid><description>&lt;link href="https://blog.atusy.net/2023/05/30/ftextra-0-6-0/index_files/tabwid/tabwid.css" rel="stylesheet" />
&lt;script src="https://blog.atusy.net/2023/05/30/ftextra-0-6-0/index_files/tabwid/tabwid.js">&lt;/script>


&lt;p>&lt;a href="https://ftextra.atusy.net">ftExtra&lt;/a> 0.6.0では、脚注に関する機能が強化されました。&lt;/p>
&lt;p>&lt;a href="https://ftextra.atusy.net">ftExtra&lt;/a>パッケージはRで表を出力する際に、セルの文字列をマークダウンとしてフォーマットする機能などを提供するパッケージです&lt;a href="#fn1" class="footnote-ref" id="fnref1">&lt;sup>1&lt;/sup>&lt;/a>。&lt;/p>
&lt;p>デフォルトではR Markdownと同様にマークダウン方言としてPandoc’s Markdownを採用しており、&lt;code>^[aaa]&lt;/code>といった記法で脚注を記載できます。&lt;/p></description></item><item><title>leap.nvimを拡張して検索対象にラベルをつけて飛べるleap-search.nvimを作った</title><link>https://blog.atusy.net/2023/05/24/leap-onto-matched-patterns/</link><pubDate>Wed, 24 May 2023 00:00:00 +0000</pubDate><guid>https://blog.atusy.net/2023/05/24/leap-onto-matched-patterns/</guid><description>&lt;p>本記事は&lt;a href="https://vim-jp.org/ekiden/">Vim駅伝&lt;/a>の5/24の記事です。&lt;/p>
&lt;div id="leap.nvimについて" class="section level1">
&lt;h1>leap.nvimについて&lt;/h1>
&lt;p>&lt;a href="https://github.com/easymotion/vim-easymotion">easymotion&lt;/a>系のNeovimプラグインとしてメジャーどころには&lt;a href="https://github.com/phaazon/hop.nvim">hop.nvim&lt;/a>や&lt;a href="https://github.com/ggandor/leap.nvim">leap.nvim&lt;/a>があります。&lt;/p>
&lt;p>&lt;a href="https://github.com/ggandor/leap.nvim">leap.nvim&lt;/a>はいわゆる&lt;a href="https://github.com/easymotion/vim-easymotion">easymotion&lt;/a>系のプラグインで、入力した文字にマッチする箇所にラベル（a, b, c, …）をつけ、ラベルを入力するとその位置にカーソルを移動します。&lt;/p>
&lt;p>デフォルトの挙動は&lt;a href="https://github.com/easymotion/vim-easymotion">easymotion&lt;/a>の&lt;a href="https://github.com/easymotion/vim-easymotion#2-character-search-motion">2-character search motion&lt;/a>に近いもので、2文字にマッチする箇所にラベルをつけます。&lt;/p></description></item><item><title>PandocでドキュメントのYAMLフロントマター（メタデータ）を抽出する</title><link>https://blog.atusy.net/2023/05/18/pandoc-extract-metadata/</link><pubDate>Thu, 18 May 2023 00:00:00 +0000</pubDate><guid>https://blog.atusy.net/2023/05/18/pandoc-extract-metadata/</guid><description>&lt;p>以下のようなMarkdownファイルがあってYAMLフロントマターから &lt;code>.data.hoge&lt;/code> を取り出したい、みたいなことはしばしばあります。&lt;/p>
&lt;pre class="markdown">&lt;code>---
title: タイトル
author: atusy
data:
 hoge: fuga
---

なんかコンテンツ&lt;/code>&lt;/pre>
&lt;p>こういう時、うまく &lt;code>grep&lt;/code> コマンドとか使ってやるのも手ですが、Pandocの力でYAMLファイルを生成しても面白いでしょう。&lt;/p></description></item><item><title>Tailscale + Samba + NextCloudでおうちクラウド始めた</title><link>https://blog.atusy.net/2023/05/12/tailscale-nextcloud/</link><pubDate>Fri, 12 May 2023 00:00:00 +0000</pubDate><guid>https://blog.atusy.net/2023/05/12/tailscale-nextcloud/</guid><description>&lt;ul>
&lt;li>外出先から家にあるデータにアクセスしたい&lt;/li>
&lt;li>（義）両親に家族写真を共有したい&lt;/li>
&lt;li>デバイス間でデータを同期したい&lt;/li>
&lt;li>データ容量の制限を考えたくない&lt;/li>
&lt;li>セキュリティはそこそこ欲しい&lt;/li>
&lt;li>変なデータ混ざっても垢BANされたくない&lt;/li>
&lt;/ul>
&lt;p>こういった要望を叶えるためにtailscaleで構築したVPN内でのみアクセスできるSamba（ファイル共有）とNextCloud（DropBox的なもの）をたててみました。&lt;/p></description></item><item><title>TailscaleをDockerで動かすと、再起動時に認証失敗 or IPアドレスが変わってしまう問題への対処</title><link>https://blog.atusy.net/2023/05/05/tailscale-docker/</link><pubDate>Fri, 05 May 2023 00:00:00 +0000</pubDate><guid>https://blog.atusy.net/2023/05/05/tailscale-docker/</guid><description>&lt;p>Dockerで&lt;a href="https://tailscale.com">Tailscale&lt;/a>を使ったVPNを構築してみました。&lt;/p>
&lt;p>&lt;a href="https://hub.docker.com/r/tailscale/tailscale">公式の案内&lt;/a>では以下の手順で&lt;a href="https://tailscale.com/kb/1085/auth-keys/">auth key&lt;/a>を用いた起動ができます。&lt;/p>
&lt;pre>&lt;code>docker run -d --name=tailscaled \
 -v /var/lib:/var/lib -v /dev/net/tun:/dev/net/tun \
 --network=host --cap-add=NET_ADMIN --cap-add=NET_RAW \
 --env TS_AUTHKEY={{ auth key }} \
 tailscale/tailscale&lt;/code>&lt;/pre>
&lt;p>しかし、この方法は公式も記述している通り一時的な（ephemeral）用途向きです。&lt;/p></description></item><item><title>gptstudio = ChatGPT + RStudioがおもしろい</title><link>https://blog.atusy.net/2023/04/26/gptstudio/</link><pubDate>Wed, 26 Apr 2023 00:00:00 +0000</pubDate><guid>https://blog.atusy.net/2023/04/26/gptstudio/</guid><description>&lt;p>ChatGPTを使ってRStudio上でのコーディングを支援する&lt;a href="https://github.com/JamesHWade/gptstudio/">gptstudio&lt;/a>パッケージが登場しました。姉妹製品に[gpttoools]パッケージもあります。&lt;/p>
&lt;p>利用には&lt;a href="https://platform.openai.com/account/api-keys">OpenAIのAPI Key&lt;/a>が必要にです。生成するトークンに対する従量課金制ですが、$5のお試し枠がついてます。&lt;/p></description></item><item><title>Markdownのコードブロックとかテキストの文脈に合わせて背景色を変えるtsnode-marker.nvimを作った</title><link>https://blog.atusy.net/2023/04/19/tsnode-marker-nvim/</link><pubDate>Wed, 19 Apr 2023 00:00:00 +0000</pubDate><guid>https://blog.atusy.net/2023/04/19/tsnode-marker-nvim/</guid><description>&lt;p>2023/04/19の&lt;a href="https://vim-jp.org/ekiden/">Vim駅伝&lt;/a>記事です。&lt;/p>
&lt;p>Neovimはtreesitterを使ってテキストファイルをパースする機能を備えています。&lt;/p>
&lt;p>代表的な用例は、パース結果に基くシンタックスハイライトですが、文法に従った範囲を取得できるので、コードの折り畳みや、テキストオブジェクトにも活躍します。&lt;/p></description></item><item><title>Insertモードでも気軽に←・→したい</title><link>https://blog.atusy.net/2023/03/03/horizontal-arrows-on-insert/</link><pubDate>Fri, 03 Mar 2023 00:00:00 +0000</pubDate><guid>https://blog.atusy.net/2023/03/03/horizontal-arrows-on-insert/</guid><description>&lt;p>本記事は3/3の&lt;a href="https://vim-jp.org/ekiden/">Vim 駅伝&lt;/a>の記事です&lt;a href="#fn1" class="footnote-ref" id="fnref1">&lt;sup>1&lt;/sup>&lt;/a>。&lt;/p>
&lt;div id="概要" class="section level2">
&lt;h2>概要&lt;/h2>
&lt;p>通常、Vim/NeovimのInsertモードで&lt;kbd>←&lt;/kbd>や&lt;kbd>→&lt;/kbd>を使うと、Undo blockが途切れます。&lt;/p>
&lt;p>これではUndoやドットリピートが直感に反するケースがあるので、以下のようにマッピングしておくと便利です。
Insertモード中で水平移動してタイポ修正する人や、自動入力された閉括弧の外側へ&lt;kbd>→&lt;/kbd>で移動した後、NormalモードでUndoやドットリピートする時に活躍します。&lt;/p></description></item><item><title>NeovimのターミナルをExコマンド実行環境化する</title><link>https://blog.atusy.net/2023/02/02/zsh-as-nvim-cmdline/</link><pubDate>Thu, 02 Feb 2023 00:00:00 +0000</pubDate><guid>https://blog.atusy.net/2023/02/02/zsh-as-nvim-cmdline/</guid><description>&lt;p>Neovim内に開いたTerminalで&lt;code>:&lt;/code>から始まる文字列を入力すると、Neovimで実行した結果を表示する仕組みを作ってみました。&lt;/p>
&lt;p>&lt;video controls src=images/nvr.mkv>&lt;/video>&lt;/p></description></item><item><title>PandocのLuaフィルタ内で引用文献を処理するpandoc.utils.citeprocを試す</title><link>https://blog.atusy.net/2023/01/31/pandoc-citeproc-lua/</link><pubDate>Tue, 31 Jan 2023 00:00:00 +0000</pubDate><guid>https://blog.atusy.net/2023/01/31/pandoc-citeproc-lua/</guid><description>Pandocで引用文献を処理する方法として、&lt;code>--citeproc&lt;/code>引数と&lt;code>--lua-filter&lt;/code>引数を使う場合を比較。 後者では&lt;code>pandoc.utils.citeproc&lt;/code>関数を利用。 Luaフィルタを使うとASTレベルで引用文献を処理するので、更にフィルタをかけたい場合に便利。 ただし、&lt;code>--citeproc&lt;/code>引数と併用すると引用文献のリストを2回繰り返すので排他利用を推奨。</description></item><item><title>Neovimのテキストオブジェクトをカスタムできるmini.aiが便利</title><link>https://blog.atusy.net/2023/01/27/mini-ai-nvim/</link><pubDate>Fri, 27 Jan 2023 00:00:00 +0000</pubDate><guid>https://blog.atusy.net/2023/01/27/mini-ai-nvim/</guid><description>&lt;div id="TOC">
&lt;ul>
&lt;li>&lt;a href="#mini.aiについて" id="toc-mini.aiについて">Mini.aiについて&lt;/a>&lt;/li>
&lt;li>&lt;a href="#テキストオブジェクトを自作する" id="toc-テキストオブジェクトを自作する">テキストオブジェクトを自作する&lt;/a>
&lt;ul>
&lt;li>&lt;a href="#iで-foo-の両端のスペースを含めた範囲を選択する" id="toc-iで-foo-の両端のスペースを含めた範囲を選択する">&lt;code>i[&lt;/code>で&lt;code>[ foo ]&lt;/code>の両端のスペースを含めた範囲を選択する&lt;/a>&lt;/li>
&lt;li>&lt;a href="#aで-foo-のような二重カッコを選択する" id="toc-aで-foo-のような二重カッコを選択する">&lt;code>a]&lt;/code>で&lt;code>[[ foo ]]&lt;/code>のような二重カッコを選択する&lt;/a>&lt;/li>
&lt;li>&lt;a href="#ajで-foo-のような日本語のカッコを選択する" id="toc-ajで-foo-のような日本語のカッコを選択する">&lt;code>aj]&lt;/code>で&lt;code>「 foo 」&lt;/code>のような日本語のカッコを選択する&lt;/a>&lt;/li>
&lt;/ul>&lt;/li>
&lt;/ul>
&lt;/div>

&lt;div id="mini.aiについて" class="section level1">
&lt;h1>Mini.aiについて&lt;/h1>
&lt;p>VimやNeovimのテキストオブジェクト、便利ですよね。&lt;/p></description></item><item><title>chezmoiを使って管理しているdotfileのファイルタイプをNeovimにうまく認識させる</title><link>https://blog.atusy.net/2023/01/11/neovim-filetype-matching-with-chezmoi/</link><pubDate>Wed, 11 Jan 2023 00:00:00 +0000</pubDate><guid>https://blog.atusy.net/2023/01/11/neovim-filetype-matching-with-chezmoi/</guid><description>&lt;p>Neovimはファイルの名前や内容を元に、ファイルタイプを決定する機能を持っています。たとえば、拡張子が&lt;code>.sh&lt;/code>だったらシェルスクリプトだと判断できます。&lt;/p></description></item><item><title>tidymodelsでOne-hot Encodingする</title><link>https://blog.atusy.net/2023/01/06/tidymodels-one-hot-encoding/</link><pubDate>Fri, 06 Jan 2023 00:00:00 +0000</pubDate><guid>https://blog.atusy.net/2023/01/06/tidymodels-one-hot-encoding/</guid><description>&lt;p>きぬいとさんがtidyverseでOne-hot Encodingしているのを見ましたが、餅は餅屋でtidymodelsもいいよねという話。&lt;/p>
&lt;blockquote>
&lt;p>&lt;a href="https://socinuit.hatenablog.com/entry/2023/01/06/214251">RでOne-hot Encodingをする with tidyverse&lt;/a>&lt;/p></description></item><item><title>rticlesパッケージで作成する文書の参考文献の位置を変える</title><link>https://blog.atusy.net/2022/12/28/rticles-reference-location/</link><pubDate>Wed, 28 Dec 2022 00:00:00 +0000</pubDate><guid>https://blog.atusy.net/2022/12/28/rticles-reference-location/</guid><description>&lt;p>R Markdownの参考文献は通常では文書末尾に挿入されます。しかし、多くの場合は挿入場所を、以下の呪文を唱えた場所に変更できます。&lt;/p>
&lt;pre>&lt;code>::: {#refs}
:::&lt;/code>&lt;/pre>
&lt;p>これは、R Markdownの拡張元となっているMarkdown方言（Pandoc’s Markdown）の機能です。&lt;/p></description></item><item><title>rstudioapi::registerChunkCallbackが面白い</title><link>https://blog.atusy.net/2022/12/26/rstudioapi-registerchunkcallback/</link><pubDate>Mon, 26 Dec 2022 00:00:00 +0000</pubDate><guid>https://blog.atusy.net/2022/12/26/rstudioapi-registerchunkcallback/</guid><description>&lt;p>rstudioapiパッケージにはRStudioを操作する様々な関数があります。&lt;/p>
&lt;p>&lt;code>registerChunkCallback&lt;/code>という関数が面白かったのでちょっと実験しました。&lt;/p></description></item><item><title>hop.nvimで直近の検索パターンにホップ</title><link>https://blog.atusy.net/2022/12/21/hop-nvim-gn/</link><pubDate>Wed, 21 Dec 2022 00:00:00 +0000</pubDate><guid>https://blog.atusy.net/2022/12/21/hop-nvim-gn/</guid><description>&lt;p>本記事は&lt;a href="https://qiita.com/advent-calendar/2022/vim">Vimアドベントカレンダー2022 その3&lt;/a>の21日目の記事です。&lt;/p>
&lt;p>&lt;a href="https://github.com/phaazon/hop.nvim">hop.nvim&lt;/a>は&lt;a href="https://github.com/easymotion/vim-easymotion">easymotion&lt;/a>的な検索対象をラベル付けして、入力されたラベルの場所に飛ぶ系のプラグインです。&lt;/p>
&lt;p>私はこれまで&lt;code>f&lt;/code>モーションの拡張としてしか使ってませんでしたが、&lt;code>/&lt;/code>の代替として文字列検索に一致した箇所へホップする機能もあると気付きました。&lt;/p></description></item><item><title>もっと良い感じにstyler.nvimでアクティブなウィンドウか否かでカラースキームを変える</title><link>https://blog.atusy.net/2022/12/17/styler-nvim-active-win/</link><pubDate>Sat, 17 Dec 2022 00:00:00 +0000</pubDate><guid>https://blog.atusy.net/2022/12/17/styler-nvim-active-win/</guid><description>&lt;p>本記事は&lt;a href="https://qiita.com/advent-calendar/2022/vim">Vimアドベントカレンダー2022 その3&lt;/a>の17日目の記事です。&lt;/p>
&lt;p>以前、Neovimと&lt;a href="https://github.com/folke/styler.nvim">styler.nvim&lt;/a>を使ってアクティブウィンドウを目立たせる方法を紹介しました。&lt;/p>
&lt;blockquote>
&lt;p>&lt;a href="https://blog.atusy.net/2022/11/25/styler-nvim-dim-inactive-windows/">styler.nvimでアクティブなウィンドウか否かでカラースキームを変える&lt;/a>&lt;/p>
&lt;/blockquote>
&lt;p>下図のように、注目しているウィンドウが一目瞭然なので気に入ってます。&lt;/p>
&lt;p>&lt;img src="images/styler.png" />&lt;/p>
&lt;p>しかし、当時のコードはいくつかの課題を抱えていたので、もう少し洗練させることにしました。&lt;/p></description></item><item><title>impatient.nvimによるNeovim起動高速化のコツと作者の思想</title><link>https://blog.atusy.net/2022/12/16/impatient-nvim/</link><pubDate>Fri, 16 Dec 2022 00:00:00 +0000</pubDate><guid>https://blog.atusy.net/2022/12/16/impatient-nvim/</guid><description>&lt;p>本記事は&lt;a href="https://qiita.com/advent-calendar/2022/vim">Vimアドベントカレンダー2022&lt;/a>の16日目の記事です。&lt;/p>
&lt;p>&lt;a href="https://github.com/lewis6991/impatient.nvim">lewis6991/impatient.nvim&lt;/a>は、Luaのモジュールをバイトコードとしてキャッシュしたり、モジュールに対応するパスをキャッシュすることで、Neovimの起動を高速化します。&lt;/p>
&lt;p>うまく使うと作者は54ms -&amp;gt; 6msと10倍近くの高速化を果たしていますし、他の最適化と組み合わせて30倍速を達成した例もあります（&lt;a href="https://zenn.dev/kawarimidoll/articles/8172a4c29a6653" class="uri">https://zenn.dev/kawarimidoll/articles/8172a4c29a6653&lt;/a>）。プラグインマネージャは任意で、作者は&lt;a href="https://github.com/wbthomason/packer.nvim">packer.nvim&lt;/a>、後者の例は&lt;a href="https://github.com/junegunn/vim-plug">vim-plug&lt;/a>、本記事の筆者は&lt;a href="https://github.com/tani/vim-jetpack">vim-jetpack&lt;/a>を使っています。&lt;/p></description></item><item><title>私のzshrcの推しポイント</title><link>https://blog.atusy.net/2022/12/07/zshrc2022/</link><pubDate>Wed, 07 Dec 2022 00:00:00 +0000</pubDate><guid>https://blog.atusy.net/2022/12/07/zshrc2022/</guid><description>&lt;p>私のzshrcの推しポイントを簡単にまとめておく&lt;/p>
&lt;p>zshrcはGitHubで管理しているので、推しポイントへのリンクも適宜掲載しておく&lt;/p>
&lt;div id="プロンプト" class="section level1">
&lt;h1>プロンプト&lt;/h1>
&lt;p>&lt;a href="https://github.com/atusy/dotfiles/blob/c654f90e8ec9ebbc18543d8f0349f7f8202f20c0/dot_zshrc#L20-L36" class="uri">https://github.com/atusy/dotfiles/blob/c654f90e8ec9ebbc18543d8f0349f7f8202f20c0/dot_zshrc#L20-L36&lt;/a>&lt;/p></description></item><item><title>Osaka.Rで朝もくを続けて2年8ヶ月くらいになった</title><link>https://blog.atusy.net/2022/12/04/osakar-asa-moku/</link><pubDate>Sun, 04 Dec 2022 00:00:00 +0000</pubDate><guid>https://blog.atusy.net/2022/12/04/osakar-asa-moku/</guid><description>&lt;p>本記事は2022/12/04のR言語アドベントカレンダーの記事です。&lt;/p>
&lt;blockquote>
&lt;p>&lt;a href="https://qiita.com/advent-calendar/2022/rlang" class="uri">https://qiita.com/advent-calendar/2022/rlang&lt;/a>&lt;/p>
&lt;/blockquote>
&lt;p>12/03はyutannihilationさんによる「&lt;a href="https://notchained.hatenablog.com/entry/2022/12/03/000000">dplyr 1.1.0からはgroup_by()の代わりに.by引数が使えるらしいという話&lt;/a>」でした。&lt;/p></description></item><item><title>styler.nvimでアクティブなウィンドウか否かでカラースキームを変える</title><link>https://blog.atusy.net/2022/11/25/styler-nvim-dim-inactive-windows/</link><pubDate>Fri, 25 Nov 2022 00:00:00 +0000</pubDate><guid>https://blog.atusy.net/2022/11/25/styler-nvim-dim-inactive-windows/</guid><description>&lt;p>本記事の改訂版が出ています&lt;/p>
&lt;blockquote>
&lt;p>&lt;a href="https://blog.atusy.net/2022/12/17/styler-nvim-active-win/" class="uri">https://blog.atusy.net/2022/12/17/styler-nvim-active-win/&lt;/a>&lt;/p>
&lt;/blockquote>
&lt;hr />
&lt;p>先日は&lt;a href="https://github.com/folke/styler.nvim">styler.nvim&lt;/a>を使ってバッファが作業ディレクトリに属すか否かで適用するカラースキームを変えました。&lt;/p>
&lt;blockquote>
&lt;p>&lt;a href="https://blog.atusy.net/2022/11/23/styler-nvim/">styler.nvimを使うとバッファごとにcolorschemeを変えられて便利&lt;/a>&lt;/p>
&lt;/blockquote>
&lt;p>今回はウィンドウがアクティブか否かで適用するカラースキームを変えてみます。&lt;/p>
&lt;p>&lt;img src="images/neovim-with-styler-nvim.png" />&lt;/p>
&lt;p>似た用途で&lt;a href="https://github.com/levouh/tint.nvim">tint.nvim&lt;/a>を使うと、非アクティブなウィンドウのコントラストを抑えられます。しかし、&lt;a href="https://github.com/folke/styler.nvim">styler.nvim&lt;/a>と干渉するのと、コントラストを落としたせいで視認性に乏しくなるおそれがあります。&lt;/p>
&lt;p>&lt;a href="https://github.com/folke/styler.nvim">styler.nvim&lt;/a>だけ使えば干渉の心配はなくなりますし、人気なカラースキームを使えば低コントラストでも十分な視認性が期待できます。&lt;/p>
&lt;p>特に&lt;a href="https://github.com/EdenEast/nightfox.nvim">nightfox.nvim&lt;/a>が提供する高コントラストなduskfoxと低コントラストなnordfoxは文字の色合いが似ていることもあり、相性がよく、今回試してみました。また、&lt;a href="https://github.com/folke/styler.nvim">styler.nvim&lt;/a>はウィンドウローカルなカラースキームを実現するもので、cmdlineやウィンドウ境界はターゲットとしていません。こういったその他の部分やfloatwinには&lt;a href="https://github.com/catppuccin/nvim">catppuccin&lt;/a>を採用してみました。&lt;/p>
&lt;pre class="lua">&lt;code>--[[
# Change colorschemes by active/inactive windows

This is a simplified version, and may cause performance issue if so many windows are open.

## Requirements:

- nvim &amp;gt;= 0.8
- plugins
 - folke/styler.nvim
 - catppuccin/nvim
 - EdenEast/nightfox.nvim
]]

-- settings
-- ACTIVE_COLORSCHEME and INACTIVE_COLORSCHEME must be colorschemes using `nvim_set_hl`
BASE_COLORSCHEME = &amp;#39;catppuccin-mocha&amp;#39;
ACTIVE_COLORSCHEME = &amp;#39;duskfox&amp;#39;
INACTIVE_COLORSCHEME = &amp;#39;nordfox&amp;#39;

-- Apply colorscheme
vim.cmd(&amp;quot;colorscheme &amp;quot; .. BASE_COLORSCHEME)

-- Create autocmd to apply styler.nvim on active/inactive windows
nvim.api.nvim_create_autocmd(
 { &amp;#39;WinEnter&amp;#39;, &amp;#39;BufEnter&amp;#39; },
 {
 group = nvim.api.nvim_create_augroup(&amp;#39;theme-custom&amp;#39;, {}),
 callback = function(_)
 local set_theme = require(&amp;#39;styler&amp;#39;).set_theme
 local win = nvim.api.nvim_get_current_win()

 -- use default colorscheme instead of applying styler.nvim on floatwin
 -- because some UIs are composed of multiple windows and they should share the theme
 if api.nvim_win_get_config(win).relative ~= &amp;quot;&amp;quot; then return end

 -- apply styler.nvim on active window
 set_theme(win, { colorscheme = ACTIVE_COLORSCHEME })

 -- apply styler.nvim on inactive windows
 for _, w in pairs(api.nvim_tabpage_list_wins(0)) do
 if w ~= win then set_theme(w, { colorscheme = INACTIVE_COLORSCHEME }) end
 end
 end
 }
)&lt;/code>&lt;/pre>
&lt;p>ENJOY!!&lt;/p></description></item><item><title>styler.nvimを使うとバッファごとにcolorschemeを変えられて便利</title><link>https://blog.atusy.net/2022/11/23/styler-nvim/</link><pubDate>Wed, 23 Nov 2022 00:00:00 +0000</pubDate><guid>https://blog.atusy.net/2022/11/23/styler-nvim/</guid><description>&lt;p>&lt;a href="https://this-week-in-neovim.org">This Week in Neovim&lt;/a>という、週次でNeovim関係のニュースを届けてくれるウェブサイトの&lt;a href="https://this-week-in-neovim.org/2022/Nov/21">21 Nov 2022号&lt;/a>で、プラグインの&lt;a href="https://github.com/folke/styler.nvim">folke/styler.nvim&lt;/a>が紹介されていました。&lt;/p>
&lt;p>このプラグインの目的は、READMEにある通り、ファイルタイプごとのカラースキーム設定です。&lt;/p></description></item><item><title>telescope.nvimで作る簡易コマンドパレット（VSCodeのCtrl + Shift + Pっぽいの）</title><link>https://blog.atusy.net/2022/11/03/telescope-as-command-pallete/</link><pubDate>Thu, 03 Nov 2022 00:00:00 +0000</pubDate><guid>https://blog.atusy.net/2022/11/03/telescope-as-command-pallete/</guid><description>&lt;p>&lt;a href="https://github.com/nvim-telescope/telescope.nvim">telescope.nvim&lt;/a>はキーマップ、Exコマンド、ファイルなどを検索・活用するためのNeovim用プラグインです。&lt;/p>
&lt;p>この内、キーマップ（&lt;code>:Telescope keymaps&lt;/code>）の主な用途は忘れてしまったマッピングの検索でしょう。実は、&lt;code>&amp;lt;Plug&amp;gt;&lt;/code>系のマッピングを実際のキー入力にアサインせずとも使えるので、滅多に使わない機能へ簡単にアクセスする方法として便利です。&lt;/p></description></item><item><title>Luaフィルタで表現力を手に入れろ</title><link>https://blog.atusy.net/2022/10/22/lua-filter-for-r-users/</link><pubDate>Sat, 22 Oct 2022 00:00:00 +0000</pubDate><guid>https://blog.atusy.net/2022/10/22/lua-filter-for-r-users/</guid><description>作例と共にLuaフィルタとLuaの文法について紹介。Tokyo.R 102の資料で主にRユーザーを対象としているが、Pandocユーザーにも参考になるはず。</description></item><item><title>felpパッケージでRのヘルプをあいまいに検索しよう</title><link>https://blog.atusy.net/2022/08/13/felp-fuzzyhelp/</link><pubDate>Sat, 13 Aug 2022 00:00:00 +0000</pubDate><guid>https://blog.atusy.net/2022/08/13/felp-fuzzyhelp/</guid><description>&lt;p>Rでヘルプを見ようにも記憶があいまいだったり、つづりがあやふやで調べようがない経験があるかもしれません。&lt;/p>
&lt;ul>
&lt;li>tidyverseに入ってるなんちゃらパッケージのミュータントみたいな関数、なんだっけ？&lt;/li>
&lt;li>&lt;code>geom_lime&lt;/code>とか&lt;code>geom_pint&lt;/code>ってライムもビールも欲しいけどそうやないんや！&lt;a href="#fn1" class="footnote-ref" id="fnref1">&lt;sup>1&lt;/sup>&lt;/a>&lt;/li>
&lt;/ul>
&lt;p>そこで、あいまいな（fuzzy）キーワードでヘルプを検索する&lt;code>fuzzyhelp&lt;/code>関数をfelpパッケージに追加しました。&lt;/p></description></item><item><title>Vim/NeovimのCTRL_GをPrefixにしてみる</title><link>https://blog.atusy.net/2022/08/08/ctrlg-as-prefix-vim/</link><pubDate>Mon, 08 Aug 2022 00:00:00 +0000</pubDate><guid>https://blog.atusy.net/2022/08/08/ctrlg-as-prefix-vim/</guid><description>CTRL_Gの機能はステータスラインで賄えるのでGit用のPrefixにしてみました</description></item><item><title>Fuzzy Finderで捗るFernによるファイル操作</title><link>https://blog.atusy.net/2022/08/05/fuzzyfern/</link><pubDate>Fri, 05 Aug 2022 00:00:00 +0000</pubDate><guid>https://blog.atusy.net/2022/08/05/fuzzyfern/</guid><description>&lt;p>&lt;a href="https://github.com/lambdalisue/fern.vim">Fern&lt;/a>はVim/Neovim向けのファイラーで、外部依存がなくパフォーマンスも良好なので、好んで使っています。&lt;/p>
&lt;p>また、ファイラーらしく、ファイル操作などの機能を種々揃えており、「action」と呼んでいます。&lt;/p>
&lt;p>Fernの画面上で&lt;code>a&lt;/code>を押すと、コマンドラインモードでアクションを指定でき、設定してあればタブ補完も効くようです。作者は、ユーザーがキーマッピングを覚えなくて良い点を魅力に挙げています。&lt;/p></description></item><item><title>nvim-treehopperで捗るコードの折り畳み</title><link>https://blog.atusy.net/2022/08/01/treehopper/</link><pubDate>Mon, 01 Aug 2022 00:00:00 +0000</pubDate><guid>https://blog.atusy.net/2022/08/01/treehopper/</guid><description>&lt;p>&lt;a href="https://github.com/mfussenegger/nvim-treehopper">nvim-treehopper&lt;/a>を使うと、ソースコードの抽象構文木に基づいた範囲選択が簡単にできます。&lt;/p>
&lt;p>関数定義全体を選択とか、&lt;code>if&lt;/code>文の条件部分を選択とか、文脈に沿った範囲選択が捗るわけです。&lt;/p>
&lt;p>おそらく、定番の使い道は選択範囲の削除（&lt;code>d&lt;/code> | &lt;code>D&lt;/code>)やヤンク（&lt;code>y&lt;/code> | &lt;code>Y&lt;/code>）でしょう。加えてコードの折り畳み（&lt;code>zf&lt;/code>）とも相性が良いとに気付きました。&lt;/p></description></item><item><title>chowcho.nvimで任意の関数を、対話的に選択したwindowで実行</title><link>https://blog.atusy.net/2022/07/31/chowcho-nvim-any-func/</link><pubDate>Sun, 31 Jul 2022 00:00:00 +0000</pubDate><guid>https://blog.atusy.net/2022/07/31/chowcho-nvim-any-func/</guid><description>&lt;p>chowcho.nvimを使うと、Neovimの各windowに番号が表示され、目的番号を入力すると、フォーカスを移動できます。&lt;/p>
&lt;p>&lt;a href="https://github.com/tkmpypy/chowcho.nvim" class="uri">https://github.com/tkmpypy/chowcho.nvim&lt;/a>&lt;/p>
&lt;p>今回、この機能を一般化し、winidを受け取る任意の関数を実行できるようにしました。&lt;/p></description></item><item><title>DenoとTypeScriptで自作CLIツールのghfを移植してみた（動機編）</title><link>https://blog.atusy.net/2022/05/27/deno-ghf/</link><pubDate>Fri, 27 May 2022 00:00:00 +0000</pubDate><guid>https://blog.atusy.net/2022/05/27/deno-ghf/</guid><description>&lt;p>以前、&lt;code>gh&lt;/code>コマンドを曖昧検索で便利にする&lt;code>ghf&lt;/code>コマンドを作りました。&lt;/p>
&lt;blockquote>
&lt;p>&lt;a href="https://blog.atusy.net/2021/07/10/publish-gh-fzf/">GitHub CLI（gh）に曖昧検索の力を加えるghfコマンドを作ってzshプラグイン化した&lt;/a>&lt;/p></description></item><item><title>Neovimのカラースキームを編集中のバッファのファイルパスに応じて変える</title><link>https://blog.atusy.net/2022/04/28/vim-colorscheme-by-buffer/</link><pubDate>Thu, 28 Apr 2022 00:00:00 +0000</pubDate><guid>https://blog.atusy.net/2022/04/28/vim-colorscheme-by-buffer/</guid><description>&lt;p>Vim/NeovimでLSPを利用して関数などの定義を参照すると、気付いたら標準ライブラリなどを参照している、なんて場面があります。&lt;/p>
&lt;p>どこまで実装を追いたいかは人それぞれとは言え、作業ディレクトリの内外どちらのファイルを参照しているかはすぐに気付ける方がいいでしょう。&lt;/p></description></item><item><title>Pandocカスタムライター入門1: 基本は文字列処理</title><link>https://blog.atusy.net/2022/03/14/pandoc-custom-writer/</link><pubDate>Mon, 14 Mar 2022 00:00:00 +0000</pubDate><guid>https://blog.atusy.net/2022/03/14/pandoc-custom-writer/</guid><description>&lt;p>&lt;a href="https://pandoc.org">Pandoc&lt;/a>は様々な文書ファイルを相互変換できるソフトウェアです。&lt;/p>
&lt;p>“A unitversal document converter”を名乗るだけのことはあり、
HTML, LaTeX, Docx, Markdownなどの様々なファイル形式に対応します。&lt;/p>
&lt;p>更には対応するファイル形式の追加に対応します。入力の場合は&lt;a href="https://pandoc.org/custom-readers.html">カスタムリーダー&lt;/a>、出力の場合は&lt;a href="https://pandoc.org/custom-writers.html">カスタムライター&lt;/a>と呼ばれ、共にLua言語で定義できます。&lt;/p></description></item><item><title>RStudio Serverでblogdownを快適に使えるようにする</title><link>https://blog.atusy.net/2022/03/02/blogdown-rstudio-server/</link><pubDate>Wed, 02 Mar 2022 00:00:00 +0000</pubDate><guid>https://blog.atusy.net/2022/03/02/blogdown-rstudio-server/</guid><description>&lt;p>RStudioではうまくプレビューできたblogdown製のウェブページが、
RStudio Serverではうまくプレビューできないことがあります。例えば以下のようなことが起きます。&lt;/p></description></item><item><title>ウェブサイトのCSSやJavaScriptでキャッシュの衝突を避ける</title><link>https://blog.atusy.net/2022/03/02/hugo-css-fingerprint/</link><pubDate>Wed, 02 Mar 2022 00:00:00 +0000</pubDate><guid>https://blog.atusy.net/2022/03/02/hugo-css-fingerprint/</guid><description>&lt;p>CSSやJavascriptのキャッシュはブラウジングの速度に貢献する一方、更新がクライアントサイドに適切に反映されない場合があります。&lt;/p>
&lt;p>ブラウザがキャッシュしている場合、キャッシュの有効起源切れを待つか&lt;a href="https://dev.classmethod.jp/articles/chrome-super-reload-and-clear-cache-simultaneously/">スーパリロード&lt;/a>を使うという手もあります。スーパーリロードはChromeやFirefoxでは&lt;kbd>Ctrl&lt;/kbd>+&lt;kbd>Shift&lt;/kbd>+&lt;kbd>Enter&lt;/kbd>のキーボードショートカットでも実行できます。&lt;/p></description></item><item><title>`list.files`関数で拡張子を指定したファイルを一覧するなら、`pattern = "\\.csv$"`みたいにすること</title><link>https://blog.atusy.net/2022/02/25/list-files-pattern/</link><pubDate>Fri, 25 Feb 2022 00:00:00 +0000</pubDate><guid>https://blog.atusy.net/2022/02/25/list-files-pattern/</guid><description>&lt;ul>
&lt;li>&lt;code>list.files(pattern = &amp;quot;.csv&amp;quot;)&lt;/code>みたいなのを見かけるけど、うっかり&lt;code>analyze-csv.R&lt;/code>みたいなファイルにもマッチするよ。&lt;/li>
&lt;li>厳密には&lt;code>list.files(pattern = &amp;quot;\\.csv$&amp;quot;)&lt;/code>としよう。&lt;/li>
&lt;li>ファイル操作には&lt;strong>fs&lt;/strong>パッケージも便利。&lt;/li>
&lt;/ul></description></item><item><title>Osaka.R Slackの朝もくチャンネルにツィートボタンを設置</title><link>https://blog.atusy.net/2022/02/24/osakar-tweet-button/</link><pubDate>Thu, 24 Feb 2022 00:00:00 +0000</pubDate><guid>https://blog.atusy.net/2022/02/24/osakar-tweet-button/</guid><description>&lt;p>Slackではチャンネル上部に関連ページへのリンクを設置できます。&lt;/p>
&lt;blockquote>
&lt;p>&lt;a href="https://slack.com/intl/ja-jp/help/articles/205239997-%E3%83%A1%E3%83%83%E3%82%BB%E3%83%BC%E3%82%B8%E3%81%A8%E9%96%A2%E9%80%A3%E3%83%9A%E3%83%BC%E3%82%B8%E3%81%AE%E3%83%AA%E3%83%B3%E3%82%AF%E3%82%92%E3%83%94%E3%83%B3%E7%95%99%E3%82%81%E3%81%99%E3%82%8B">メッセージと関連ページのリンクをピン留めする&lt;/a>&lt;/p>
&lt;/blockquote>
&lt;p>この機能を使って以下のように、TweetボタンをOsaka.R Slackの朝もくチャンネルに設置しました。&lt;/p></description></item><item><title>Neovimのconfigファイルをinit.lua化したので覚書</title><link>https://blog.atusy.net/2022/02/21/nvim-init-lua/</link><pubDate>Mon, 21 Feb 2022 00:00:00 +0000</pubDate><guid>https://blog.atusy.net/2022/02/21/nvim-init-lua/</guid><description>Neovim 0.5からはconfigファイルに&lt;code>init.lua&lt;/code>としてLuaスクリプトでの記述を推奨しているそうです。&lt;br>
そこでVim/Nvim初心者が移行作業にあたって、どうやって情報を収集したか、途中で得た知見、やり残したことをまとめておきます。</description></item><item><title>minidown 0.4.0をCRANにリリースしました</title><link>https://blog.atusy.net/2022/02/09/minidown-0-4-0/</link><pubDate>Wed, 09 Feb 2022 00:00:00 +0000</pubDate><guid>https://blog.atusy.net/2022/02/09/minidown-0-4-0/</guid><description>&lt;p>minidownパッケージはR Markdownにおける&lt;code>html_document&lt;/code>をもっとイイ感じにしたものです。&lt;/p>
&lt;p>作った理由や凄いところはTokyo.R 95の発表資料にまとめてます。&lt;/p></description></item><item><title>cronRパッケージで環境変数を指定する機能を追加するPRをした</title><link>https://blog.atusy.net/2022/01/21/support-envvar-in-cronr/</link><pubDate>Fri, 21 Jan 2022 00:00:00 +0000</pubDate><guid>https://blog.atusy.net/2022/01/21/support-envvar-in-cronr/</guid><description>登山本で紹介したパッケージの機能不足コメントを頂いたのが嬉し過ぎて、 パッケージに機能追加を提案してきました。</description></item><item><title>書籍「Rが生産性を高める」のサポートサイトを公開しました</title><link>https://blog.atusy.net/2022/01/20/r-efficiency-book-support-site/</link><pubDate>Thu, 20 Jan 2022 00:00:00 +0000</pubDate><guid>https://blog.atusy.net/2022/01/20/r-efficiency-book-support-site/</guid><description>&lt;p>igjitさん、hanaoriさんと共に「Rが生産性を高める〜データ分析ワークフロー効率化の実践〜」を共著しました。&lt;/p>
&lt;ul>
&lt;li>公式サイト：&lt;a href="https://gihyo.jp/book/2022/978-4-297-12524-0" class="uri">https://gihyo.jp/book/2022/978-4-297-12524-0&lt;/a>&lt;/li>
&lt;li>サポートサイト: &lt;a href="https://github.com/ghmagazine/r_efficiency_book" class="uri">https://github.com/ghmagazine/r_efficiency_book&lt;/a>&lt;/li>
&lt;/ul>
&lt;p>電子版の発売は1/21、紙版の発売は1/26となっています。早くみなさんの元にお届けしたいですね。&lt;/p></description></item><item><title>grepとユカイな仲間たち</title><link>https://blog.atusy.net/2022/01/18/grep-and-friends/</link><pubDate>Tue, 18 Jan 2022 00:00:00 +0000</pubDate><guid>https://blog.atusy.net/2022/01/18/grep-and-friends/</guid><description>&lt;code>help(grep)&lt;/code>にある&lt;code>gregexpr&lt;/code>とかを理解したい。</description></item><item><title>StanでFused LASSOしてみたかった</title><link>https://blog.atusy.net/2022/01/12/stan-fused-lasso/</link><pubDate>Wed, 12 Jan 2022 00:00:00 +0000</pubDate><guid>https://blog.atusy.net/2022/01/12/stan-fused-lasso/</guid><description>&lt;div id="TOC">
&lt;ul>
&lt;li>&lt;a href="#テストデータ">テストデータ&lt;/a>&lt;/li>
&lt;li>&lt;a href="#genlassoパッケージによる実装">genlassoパッケージによる実装&lt;/a>&lt;/li>
&lt;li>&lt;a href="#正則化項による実装">正則化項による実装&lt;/a>&lt;/li>
&lt;li>&lt;a href="#状態空間モデルで実装">状態空間モデルで実装&lt;/a>&lt;/li>
&lt;li>&lt;a href="#コメント">コメント&lt;/a>&lt;/li>
&lt;/ul>
&lt;/div>

&lt;p>StanでLASSOを実装すると、罰則化項Lambdaも同時に最適化できる。&lt;/p>
&lt;p>そりゃいいなと思ったのでFused LASSOも実装してみたくなった。&lt;/p></description></item><item><title>Stanを使ったBayesian Lassoの実装に関するメモ</title><link>https://blog.atusy.net/2022/01/09/bayesian-lasso/</link><pubDate>Sun, 09 Jan 2022 00:00:00 +0000</pubDate><guid>https://blog.atusy.net/2022/01/09/bayesian-lasso/</guid><description>&lt;p>LASSOは確率モデルだと係数の事前分布にラプラス分布を指定したものに相当するって話はちょいちょい聞くけど、実際の証明とか実装はどうなってるんだろうなーと思ったので、いくつかのサイトを渡り歩いてみた。&lt;/p></description></item><item><title>RでPython風docstringを実装してみる</title><link>https://blog.atusy.net/2021/12/20/r-docstring/</link><pubDate>Mon, 20 Dec 2021 00:00:00 +0000</pubDate><guid>https://blog.atusy.net/2021/12/20/r-docstring/</guid><description>関数魔改造講座body編と言えるかもしれない……。黒魔術の世界へようこそ。</description></item><item><title>Self containedなHTMLドキュメント生成時にiframeしたいなら`knitr::include_url`関数を使おう</title><link>https://blog.atusy.net/2021/12/06/rmarkdown-iframe/</link><pubDate>Mon, 06 Dec 2021 00:00:00 +0000</pubDate><guid>https://blog.atusy.net/2021/12/06/rmarkdown-iframe/</guid><description>&lt;p>R Markdownの&lt;code>html_document&lt;/code>などでHTMLドキュメントを作成すると、デフォルトではグラフなどの画像もHTML内に埋め込んでくれます。&lt;/p></description></item><item><title>Japan.RでTidy Tuesdayの企画した</title><link>https://blog.atusy.net/2021/12/05/japanr2021/</link><pubDate>Sun, 05 Dec 2021 00:00:00 +0000</pubDate><guid>https://blog.atusy.net/2021/12/05/japanr2021/</guid><description>&lt;p>みんなEnjoyしてくれて成功。&lt;br />
でも個人的には反省いっぱいな会でした。&lt;/p>
&lt;p>私はTidy Tuesdayの企画と、コミュニティ運営に関するパネルディスカッションのパネラーをしました。&lt;/p></description></item><item><title>Tokyo.R 95でminidownパッケージを紹介でLTしてきました</title><link>https://blog.atusy.net/2021/10/31/tokyor95/</link><pubDate>Sun, 31 Oct 2021 00:00:00 +0000</pubDate><guid>https://blog.atusy.net/2021/10/31/tokyor95/</guid><description>LT時間切れで消化不良だったのに☆15もつけてくれてありがとう。</description></item><item><title>LinuxでIntel製CPU内蔵のGPUを使うと動画再生時に画面がちらつく問題の対策</title><link>https://blog.atusy.net/2021/10/24/linux-tearing-intel-gpu/</link><pubDate>Sun, 24 Oct 2021 00:00:00 +0000</pubDate><guid>https://blog.atusy.net/2021/10/24/linux-tearing-intel-gpu/</guid><description>&lt;script src="https://blog.atusy.net/2021/10/24/linux-tearing-intel-gpu/index_files/header-attrs/header-attrs.js">&lt;/script>


&lt;p>この1、2ヶ月ほどmanjaroで動画を再生する時、画面がちらつくようになったのが気になっていました。ググったところ、Intel製GPUの場合はちらつき防止のオプションがあるので有効化するといいみたいですね。&lt;/p></description></item><item><title>PandocでPDFを作成する時に表の枠線を格子状にする</title><link>https://blog.atusy.net/2021/09/22/pandoc-partial-conversion-by-filter/</link><pubDate>Wed, 22 Sep 2021 00:00:00 +0000</pubDate><guid>https://blog.atusy.net/2021/09/22/pandoc-partial-conversion-by-filter/</guid><description>LuaフィルタからJSONフィルタを呼んで更にPandocを呼びます。辛い。 プリアンブルも必要。 R Markdownユーザーは素直にパッケージを使いましょう。</description></item><item><title>ブランチをディレクトリに割り当つつGit管理対象外ファイルも同期するgit worksyncを作った</title><link>https://blog.atusy.net/2021/09/15/git-worksync-1-0-0/</link><pubDate>Wed, 15 Sep 2021 00:00:00 +0000</pubDate><guid>https://blog.atusy.net/2021/09/15/git-worksync-1-0-0/</guid><description>ブランチごとに別ディレクトリで簡単に作業できる&lt;code>git worksync&lt;/code>コマンドを作りました。&lt;br>
.gitignoreに入っているファイルや、git addしていないファイルも良い感じに同期できます。&lt;br>
.venvとかdataとかGitで管理したくないけど、なくてはならないディレクトリをいつもあなたの傍に。</description></item><item><title>Google ColabでRパッケージの再インストールを爆速にする</title><link>https://blog.atusy.net/2021/08/30/quickly-install-r-packages-on-colab/</link><pubDate>Mon, 30 Aug 2021 00:00:00 +0000</pubDate><guid>https://blog.atusy.net/2021/08/30/quickly-install-r-packages-on-colab/</guid><description>Google Driveを活用してtidymodelsパッケージの再インストールを5分から1秒に短縮した。</description></item><item><title>Rの乱数生成関数は一発で色んなパラメータの分布を作れるよ</title><link>https://blog.atusy.net/2021/08/13/vectorize-rng/</link><pubDate>Fri, 13 Aug 2021 00:00:00 +0000</pubDate><guid>https://blog.atusy.net/2021/08/13/vectorize-rng/</guid><description>&lt;script src="https://blog.atusy.net/2021/08/13/vectorize-rng/index_files/header-attrs/header-attrs.js">&lt;/script>


&lt;p>あまり知られていない事実かもしれませんが、Rで乱数を発生させる関数のパラメータはベクトル化されています。つまり、正規分布から3000個の乱数を作る時、1000個ごとに期待値を0、1、2と変えるようなことが簡単にできます。覚えておくとシミュレーションで乱数が必要な時に、関数呼び出しを一度に纏められて便利&amp;amp;高速です。&lt;/p></description></item><item><title>書評「機械学習を解釈する技術」</title><link>https://blog.atusy.net/2021/08/09/techniques-to-interpret-ml-models/</link><pubDate>Mon, 09 Aug 2021 00:00:00 +0000</pubDate><guid>https://blog.atusy.net/2021/08/09/techniques-to-interpret-ml-models/</guid><description>&lt;script src="https://blog.atusy.net/2021/08/09/techniques-to-interpret-ml-models/index_files/header-attrs/header-attrs.js">&lt;/script>

&lt;div id="TOC">
&lt;ul>
&lt;li>&lt;a href="#どんな人におすすめか">どんな人におすすめか&lt;/a>
&lt;ul>
&lt;li>&lt;a href="#購入を迷う場合">購入を迷う場合&lt;/a>&lt;/li>
&lt;/ul>&lt;/li>
&lt;li>&lt;a href="#感想">感想&lt;/a>
&lt;ul>
&lt;li>&lt;a href="#頭から順に読みたい本">頭から順に読みたい本&lt;/a>&lt;/li>
&lt;li>&lt;a href="#付録が充実">付録が充実&lt;/a>&lt;/li>
&lt;li>&lt;a href="#冒頭の解説がイカス">冒頭の解説がイカス&lt;/a>&lt;/li>
&lt;/ul>&lt;/li>
&lt;/ul>
&lt;/div>

&lt;p>森下光之助（&lt;a href="https://twitter.com/dropout009">@dropout009&lt;/a>）著「機械学習を解釈する技術」を献本頂きました。&lt;/p>
&lt;p>8月4日から8日までの間に、暇を見つけては開いて読了。せっかくなので全体的な感想をまとめておきたいと思います。読む最中の感想は&lt;a href="https://twitter.com/Atsushi776/status/1422868140984127489">Twitterのスレッド&lt;/a>に綴りました。本稿では蛇足になると判断して省略する部分も多いので、気になる人は覗いてください。&lt;/p></description></item><item><title>シェルでエイリアスを無視してコマンドを見つける</title><link>https://blog.atusy.net/2021/07/14/shell-find-command/</link><pubDate>Wed, 14 Jul 2021 00:00:00 +0000</pubDate><guid>https://blog.atusy.net/2021/07/14/shell-find-command/</guid><description>&lt;script src="https://blog.atusy.net/2021/07/14/shell-find-command/index_files/header-attrs/header-attrs.js">&lt;/script>


&lt;pre class="bash">&lt;code>CMD=&amp;quot;foo&amp;quot;
echo &amp;quot;$(
 unalias $CMD &amp;amp;&amp;gt; /dev/null
 command -v $CMD
)&amp;quot;&lt;/code>&lt;/pre>
&lt;p>でいい。&lt;/p>
&lt;div id="詳細" class="section level1">
&lt;h1>詳細&lt;/h1>
&lt;p>POSIXには&lt;code>command&lt;/code>コマンドがあり、引数を&lt;strong>コマンドとして&lt;/strong>実行してくれます。&lt;/p>
&lt;pre class="bash">&lt;code>command git config --get user.name
#&amp;gt; atusy&lt;/code>&lt;/pre>
&lt;p>aliasを無視してくれる点が魅力ですね。&lt;/p></description></item><item><title>GitHub CLI（`gh`）に曖昧検索の力を加えるghfコマンドを作ってzshプラグイン化した</title><link>https://blog.atusy.net/2021/07/10/publish-gh-fzf/</link><pubDate>Sat, 10 Jul 2021 00:00:00 +0000</pubDate><guid>https://blog.atusy.net/2021/07/10/publish-gh-fzf/</guid><description>&lt;script src="https://blog.atusy.net/2021/07/10/publish-gh-fzf/index_files/header-attrs/header-attrs.js">&lt;/script>


&lt;p>端末上でレポジトリやissueを曖昧検索して内容をプレビューし、確定したらブラウザで開くなどの操作ができる&lt;code>ghf&lt;/code>コマンドを作りました。&lt;/p>
&lt;p>詳しい利用方法やインストール方法は→&lt;a href="https://github.com/atusy/gh-fzf" class="uri">https://github.com/atusy/gh-fzf&lt;/a>。
zshプラグイン化しているのでzinitなどのユーザーは導入しやすいと思います。&lt;/p></description></item><item><title>tidymodelsのrecipesパッケージがworkflowsパッケージの使用を推奨し始めた</title><link>https://blog.atusy.net/2021/07/01/tidymodels/</link><pubDate>Thu, 01 Jul 2021 00:00:00 +0000</pubDate><guid>https://blog.atusy.net/2021/07/01/tidymodels/</guid><description>&lt;p>tidymodelsを使ったモデリングにおいて、recipesパッケージは特徴量エンジニアリングを担います。従来、recipesパッケージは単体で、特徴量抽エンジニアリング方法の&lt;/p></description></item><item><title>Pandocでは--include-in-header引数とheader-includes変数は共存できない</title><link>https://blog.atusy.net/2021/06/30/pandoc-header-includes/</link><pubDate>Wed, 30 Jun 2021 00:00:00 +0000</pubDate><guid>https://blog.atusy.net/2021/06/30/pandoc-header-includes/</guid><description>&lt;p>ちょっとハマった。
Pandocでマークダウンファイルを変換する場合、YAMLフロントマターの設定と引数を用いた設定では、引数が優先権を持つ。で、HTMLファイルの&lt;code>head&lt;/code>要素内に記述を追加する場合は&lt;/p></description></item><item><title>Tidymodelsでデータの前処理内容を**tidy**に確認する（公式手順）</title><link>https://blog.atusy.net/2021/06/23/tidy-inspect-tidymodels-preprocessing/</link><pubDate>Wed, 23 Jun 2021 00:00:00 +0000</pubDate><guid>https://blog.atusy.net/2021/06/23/tidy-inspect-tidymodels-preprocessing/</guid><description>&lt;script src="https://blog.atusy.net/2021/06/23/tidy-inspect-tidymodels-preprocessing/index_files/header-attrs/header-attrs.js">&lt;/script>


&lt;p>昨日の&lt;a href="https://blog.atusy.net/2021/06/22/inspect-tidymodels-preprocessing/">投稿&lt;/a>で、tidymodelsのrecipesパッケージによる特徴量エンジニアリングを行った歳に、&lt;/p>
&lt;ul>
&lt;li>中心化につかった平均値はいくつか&lt;/li>
&lt;li>PCAの固有ベクトルはなにか&lt;/li>
&lt;/ul>
&lt;p>をnot tidyに確認する方法を紹介しました。&lt;/p>
&lt;p>後から気付いたのですが、recipesパッケージは&lt;code>broom::tidy&lt;/code>関数を使って確認する方法を提供しています。
&lt;code>tidy&lt;/code>じゃ何を&lt;code>tidy&lt;/code>にするかわからんし、もうちょい良い名前をつけて欲しいですね。さておき、試してみましょう。&lt;/p></description></item><item><title>Tidymodelsでデータの前処理内容を確認する</title><link>https://blog.atusy.net/2021/06/22/inspect-tidymodels-preprocessing/</link><pubDate>Tue, 22 Jun 2021 00:00:00 +0000</pubDate><guid>https://blog.atusy.net/2021/06/22/inspect-tidymodels-preprocessing/</guid><description>&lt;script src="https://blog.atusy.net/2021/06/22/inspect-tidymodels-preprocessing/index_files/header-attrs/header-attrs.js">&lt;/script>


&lt;p>tidymodelsはRにおける統計モデリングや機械学習を便利にするためのフレームワークです。
tidymodelsを利用すると&lt;/p>
&lt;ul>
&lt;li>パイプ演算子による処理の流れが明瞭なモデリング&lt;/li>
&lt;li>パッケージごとに異なる学習・予測インターフェースの統一&lt;/li>
&lt;/ul>
&lt;p>といったメリットを享受でき、徐々にはやってきている印象です。&lt;/p></description></item><item><title>HTML+CSSでaとかcodeとかの前後に空白を入れつつ、段落の左端を揃える</title><link>https://blog.atusy.net/2021/06/21/css-inline-pseudo-margins/</link><pubDate>Mon, 21 Jun 2021 00:00:00 +0000</pubDate><guid>https://blog.atusy.net/2021/06/21/css-inline-pseudo-margins/</guid><description>&lt;script src="https://blog.atusy.net/2021/06/21/css-inline-pseudo-margins/index_files/header-attrs/header-attrs.js">&lt;/script>


&lt;style type="text/css">
p a.normal::before,
p a.normal::after {
 content: none;
}
&lt;/style>
&lt;p>日本語の場合、単語の間にスペースを入れないため、&lt;a href="" class="normal">リンク&lt;/a>や&lt;code>コード&lt;/code>と平文が地続きになりがちです。ちょっと空白を入れたい時は以下のようなCSSが活躍します。&lt;/p>
&lt;p>リンクを例にとってみましょう。&lt;/p>
&lt;pre class="css">&lt;code>p a::before,
p a::after {
 content: &amp;quot; &amp;quot;; 
 font-size: 0;
 word-spacing: 1rem;
}&lt;/code>&lt;/pre>
&lt;style type="text/css">
p a::before,
p a::after {
 content: " "; 
 font-size: 0;
 word-spacing: 1rem;
}
&lt;/style>
&lt;p>リンクの前後に余白ではなく空白（半角スペース）を使うところがミソです。また、ここではあえて大袈裟に1remの空白を入れて、以下の例でわかりやすくしています。&lt;/p></description></item><item><title>PandocでWord出力する時にヘッダーやフッターの内容を動的に変更する</title><link>https://blog.atusy.net/2021/05/23/pandoc-word-dynamic-header-and-footer/</link><pubDate>Sun, 23 May 2021 00:00:00 +0000</pubDate><guid>https://blog.atusy.net/2021/05/23/pandoc-word-dynamic-header-and-footer/</guid><description>&lt;script src="https://blog.atusy.net/2021/05/23/pandoc-word-dynamic-header-and-footer/index_files/header-attrs/header-attrs.js">&lt;/script>


&lt;p>Pandocで出力するdocxファイルに好みの書式設定などを反映するには、スタイルを設定済みのdocxファイルを用意しておき、そのファイルのパスを&lt;code>--reference-doc&lt;/code>オプションに指定します（以下リファレンスファイル）。スタイルのカスタマイズや作成方法は以下を参考にしてください。&lt;/p></description></item><item><title>minidown 0.1.0をリリース</title><link>https://blog.atusy.net/2021/04/04/minidown-0-1-0/</link><pubDate>Sun, 04 Apr 2021 00:00:00 +0000</pubDate><guid>https://blog.atusy.net/2021/04/04/minidown-0-1-0/</guid><description>minidown 0.1.0をCRANにリリース。タブセット機能の追加、サイドバーに目次を表示した時のレイアウト改善などが主な変更です。</description></item><item><title>ftExtra 0.2.0をリリース！</title><link>https://blog.atusy.net/2021/03/29/ftextra-0-2-0/</link><pubDate>Mon, 29 Mar 2021 00:00:00 +0000</pubDate><guid>https://blog.atusy.net/2021/03/29/ftextra-0-2-0/</guid><description>脚注、引用文献、段落の扱いを改善しつつ、処理速度も大幅改善</description></item><item><title>Tokyo.R 90でRStudio PBCに転職しようとした時の話をした</title><link>https://blog.atusy.net/2021/03/11/tokyor90/</link><pubDate>Thu, 11 Mar 2021 00:00:00 +0000</pubDate><guid>https://blog.atusy.net/2021/03/11/tokyor90/</guid><description>Tokyo.R 90でもBoothの頒布物でも語っていない裏話。</description></item><item><title>dplyr 1.0.4で複数列を対象としたfilterが簡単になった</title><link>https://blog.atusy.net/2021/02/03/dplyr-1-0-4/</link><pubDate>Wed, 03 Feb 2021 00:00:00 +0000</pubDate><guid>https://blog.atusy.net/2021/02/03/dplyr-1-0-4/</guid><description>&lt;script src="index_files/header-attrs/header-attrs.js">&lt;/script>
&lt;link href="index_files/anchor-sections/anchor-sections.css" rel="stylesheet" />
&lt;script src="index_files/anchor-sections/anchor-sections.js">&lt;/script>


&lt;p>&lt;strong>dplyr&lt;/strong> 1.0.0から導入された&lt;code>across&lt;/code>関数は、&lt;code>mutate&lt;/code>関数や&lt;code>summarize&lt;/code>関数を複数列に簡単に適用できる便利な道具です。
&lt;code>*_at&lt;/code>や&lt;code>*_if&lt;/code>といった関数を過去のものにした他、&lt;code>group_by&lt;/code>でも使えるなど、使いどころは多いです。&lt;/p></description></item><item><title>R MarkdownでBootstrap 4を使えるようになった</title><link>https://blog.atusy.net/2021/01/21/rmd-bs4/</link><pubDate>Thu, 21 Jan 2021 00:00:00 +0000</pubDate><guid>https://blog.atusy.net/2021/01/21/rmd-bs4/</guid><description>&lt;script src="index_files/header-attrs/header-attrs.js">&lt;/script>


&lt;p>GitHub版の&lt;strong>rmarkdown&lt;/strong>パッケージの&lt;code>html_document&lt;/code>関数がBootstrap 4に対応しました。本記事ではどんなことができるのか紹介します。が、同じ内容を&lt;code>html_document&lt;/code>でBootstrap 4を使ってレンダリングしてみたので、そちらを参考にして下さい。&lt;/p></description></item><item><title>minidownで目次をハイライトできるようにした</title><link>https://blog.atusy.net/2021/01/14/minidown-toc-highlight/</link><pubDate>Thu, 14 Jan 2021 00:00:00 +0000</pubDate><guid>https://blog.atusy.net/2021/01/14/minidown-toc-highlight/</guid><description>&lt;script src="index_files/header-attrs/header-attrs.js">&lt;/script>


&lt;p>&lt;code>minidown::mini_document&lt;/code>は&lt;code>rmarkdown::html_document&lt;/code>を軽量化しつつ同等以上の機能提供を目指すR Markdown用HTMLフォーマットです。&lt;/p></description></item><item><title>blogdownで記事のテンプレートを用意する</title><link>https://blog.atusy.net/2020/12/25/blogdown-archettype/</link><pubDate>Fri, 25 Dec 2020 00:00:00 +0000</pubDate><guid>https://blog.atusy.net/2020/12/25/blogdown-archettype/</guid><description>&lt;script src="index_files/header-attrs/header-attrs.js">&lt;/script>


&lt;p>blogdownではR Markdownを使ったウェブサイトの作成ができます。名前の通り、ブログを念頭に置いたパッケージです。ドキュメントは以下にあります。ググると日本語の記事もそれなりに出てきます。&lt;/p></description></item><item><title>Pandocで出力形式に依存せず見出し番号をつけたり、第1章とか第1.1節とか装飾したい</title><link>https://blog.atusy.net/2020/12/24/decorate-section-numbers-on-any-format-with-pandoc/</link><pubDate>Thu, 24 Dec 2020 00:00:00 +0000</pubDate><guid>https://blog.atusy.net/2020/12/24/decorate-section-numbers-on-any-format-with-pandoc/</guid><description>&lt;script src="index_files/header-attrs/header-attrs.js">&lt;/script>


&lt;p>昨日はHTML出力の場合に限って、見出し番号の装飾方法を紹介しました。&lt;/p>
&lt;blockquote>
&lt;p>&lt;a href="https://blog.atusy.net/2020/12/23/decorate-section-numbers-on-pandoc/">PandocでHTML出力時に見出し番号を第1章とか第1.1節とかしたい&lt;/a>&lt;/p>
&lt;/blockquote>
&lt;p>ただ、昨日の段階ではどの方法も一長一短だったので、
今日は任意の出力に対応するLuaフィルタを用意しました。&lt;/p></description></item><item><title>PandocでHTML出力時に見出し番号を第1章とか第1.1節とかしたい</title><link>https://blog.atusy.net/2020/12/23/decorate-section-numbers-on-pandoc/</link><pubDate>Wed, 23 Dec 2020 00:00:00 +0000</pubDate><guid>https://blog.atusy.net/2020/12/23/decorate-section-numbers-on-pandoc/</guid><description>Pandoc単体では見出し番号を装飾してくれません。&lt;br>
HTML出力の場合、Luaフィルタ、CSS、JavaScriptと3つほど選択肢があるので、&lt;br>
それぞれの方法とメリット・デメリットを紹介します。</description></item><item><title>Tidymodelsで使えるモデルの紹介とモデルの追加方法</title><link>https://blog.atusy.net/2020/12/13/add-parsnip-model/</link><pubDate>Sun, 13 Dec 2020 00:00:00 +0000</pubDate><guid>https://blog.atusy.net/2020/12/13/add-parsnip-model/</guid><description>Tidymodelsが標準で提供するモデルと追加で提供するモデルについて軽く紹介し、更に自前でモデルを組んでみます。&lt;br>
&lt;a href="https://qiita.com/advent-calendar/2020/rlang">Rアドベントカレンダー&lt;/a>、12/14の記事です。</description></item><item><title>Luaフィルタがアツイ2020</title><link>https://blog.atusy.net/2020/12/07/lua-filter-is-hot/</link><pubDate>Mon, 07 Dec 2020 00:00:00 +0000</pubDate><guid>https://blog.atusy.net/2020/12/07/lua-filter-is-hot/</guid><description>&lt;link href="index_files/anchor-sections/anchor-sections.css" rel="stylesheet" />
&lt;script src="index_files/anchor-sections/anchor-sections.js">&lt;/script>


&lt;p>&lt;a href="https://adventar.org/calendars/4963">Pandoc Advent Calendar 2020&lt;/a>の12/7の記事です。&lt;/p>
&lt;p>多様なドキュメントフォーマット間を変換できるPandocでは、
「フィルター」という機能を使って、変換処理に割り込みをかけることができます。&lt;/p></description></item><item><title>R MarkdownやPandocでMarkdown出力する時に数式をベクター画像化する</title><link>https://blog.atusy.net/2020/11/15/pandoc-webtex-svg/</link><pubDate>Sun, 15 Nov 2020 00:00:00 +0000</pubDate><guid>https://blog.atusy.net/2020/11/15/pandoc-webtex-svg/</guid><description>&lt;link href="index_files/anchor-sections/anchor-sections.css" rel="stylesheet" />
&lt;script src="index_files/anchor-sections/anchor-sections.js">&lt;/script>


&lt;p>&lt;code>--webtex=https://latex.codecogs.com/svg.latex?&lt;/code>と指定するとSVG画像化した高品質な数式を得られるよ。&lt;/p></description></item><item><title>R MarkdownやPandocでMarkdown出力する時に数式をPNG画像化する</title><link>https://blog.atusy.net/2020/11/08/math-in-markdown/</link><pubDate>Sun, 08 Nov 2020 00:00:00 +0000</pubDate><guid>https://blog.atusy.net/2020/11/08/math-in-markdown/</guid><description>&lt;link href="index_files/anchor-sections/anchor-sections.css" rel="stylesheet" />
&lt;script src="index_files/anchor-sections/anchor-sections.js">&lt;/script>


&lt;p>R MarkdownやPandocは数式をレンダリングする方法をいくつか提供しています&lt;a href="#fn1" class="footnote-ref" id="fnref1">&lt;sup>1&lt;/sup>&lt;/a>。
代表的な方法にMathJaxやKaTeXがありますが、これらはJavaScriptで実装されているため、
出力形式がマークダウンで、ビューアーがGitHubのような場合、利用できません。&lt;/p></description></item><item><title>pinsパッケージならリモートファイルをローカルと別のリモートキャッシュできる</title><link>https://blog.atusy.net/2020/11/04/pins/</link><pubDate>Wed, 04 Nov 2020 00:00:00 +0000</pubDate><guid>https://blog.atusy.net/2020/11/04/pins/</guid><description>&lt;link href="index_files/anchor-sections/anchor-sections.css" rel="stylesheet" />
&lt;script src="index_files/anchor-sections/anchor-sections.js">&lt;/script>


&lt;p>さわりのさわりなので、詳しくは&lt;a href="https://pins.rstudio.com/">公式&lt;/a>を参照してね。&lt;/p>
&lt;p>&lt;code>pins::pin&lt;/code>関数を使うと、Web上のリソースをキャッシュできる。
デフォルトではローカルにキャッシュする。
使い方は簡単で、関数に与えるURLを&lt;code>pins::pin&lt;/code>関数でラッピングしておくだけ。&lt;/p></description></item><item><title>#OsakaR で2回目のもくもく会を開催しました</title><link>https://blog.atusy.net/2020/11/02/osakar-mokumoku-2/</link><pubDate>Mon, 02 Nov 2020 00:00:00 +0000</pubDate><guid>https://blog.atusy.net/2020/11/02/osakar-mokumoku-2/</guid><description>&lt;link href="../rmarkdown-libs/anchor-sections/anchor-sections.css" rel="stylesheet" />
&lt;script src="../rmarkdown-libs/anchor-sections/anchor-sections.js">&lt;/script>


&lt;p>&lt;a href="https://osaka-r.connpass.com/event/193706/">2020/10/31&lt;/a>に開催しました。第1回は&lt;a href="https://osaka-r.connpass.com/event/178136/">2020/6/6&lt;/a>だったので、実に4ヶ月ぶり。もう少し頻度をあげたいとろですが、家族や他の勉強会とのバランスを考えると中々難しいところです。今回は私がRStudio PBCのテーブルコンテストに参戦したく、追い込みをかけるために突如企画した、というのが内情だったりします。昨日の&lt;a href="https://blog.atusy.net/2020/11/01/rstudio-table-contest/">記事&lt;/a>にした通り、無事投稿しました。&lt;/p>
&lt;p>せっかくなので徒然と記録や思いを残しておきます。&lt;/p></description></item><item><title>RStudio PBCのテーブルコンテストに投稿しました</title><link>https://blog.atusy.net/2020/11/01/rstudio-table-contest/</link><pubDate>Sun, 01 Nov 2020 00:00:00 +0000</pubDate><guid>https://blog.atusy.net/2020/11/01/rstudio-table-contest/</guid><description>&lt;link href="../rmarkdown-libs/anchor-sections/anchor-sections.css" rel="stylesheet" />
&lt;script src="../rmarkdown-libs/anchor-sections/anchor-sections.js">&lt;/script>


&lt;p>2019年のShinyコンテストに続き、2020年は表コンテストが開催されました（&lt;a href="https://blog.rstudio.com/2020/09/15/announcing-the-2020-rstudio-table-contest/">開催案内&lt;/a>）。実用的なのからネタなものまで幅広くテーブルを募るもので、投稿期間は9/15から10/31でした。大枠としては、&lt;/p>
&lt;ol style="list-style-type: decimal">
&lt;li>&lt;strong>Single Table Example&lt;/strong>: 面白い構造をした表、便利な機能や特殊な機能を使った表、特定の分野で用いられる表など&lt;/li>
&lt;li>&lt;strong>Tutorial&lt;/strong>: パッケージの機能紹介を通して素敵な表を組む方法をまとめる&lt;/li>
&lt;li>&lt;strong>Other&lt;/strong>&lt;/li>
&lt;/ol>
&lt;p>で、更に表の形式として&lt;/p></description></item><item><title>PandocでHTML出力する時の数式の扱い</title><link>https://blog.atusy.net/2020/10/31/pandoc-math-rendering-engines/</link><pubDate>Sat, 31 Oct 2020 00:00:00 +0000</pubDate><guid>https://blog.atusy.net/2020/10/31/pandoc-math-rendering-engines/</guid><description>&lt;link href="../rmarkdown-libs/anchor-sections/anchor-sections.css" rel="stylesheet" />
&lt;script src="../rmarkdown-libs/anchor-sections/anchor-sections.js">&lt;/script>


&lt;p>基本は&lt;a href="https://pandoc.org/MANUAL.html#math-rendering-in-html">Math rendering in HTML&lt;/a>に記載の通り。&lt;/p>
&lt;p>&lt;code>--mathjax&lt;/code>や&lt;code>--katex&lt;/code>はJavaScriptやCSSの読み込みをするだけで数式部分の出力は変わらないと思ってたけど、そうでもなかったのでメモがてら全パターンを試す。&lt;/p></description></item><item><title>ベクトルから要素を除去する方法とsetdiffの罠</title><link>https://blog.atusy.net/2020/10/27/remove-elements-from-vector/</link><pubDate>Tue, 27 Oct 2020 00:00:00 +0000</pubDate><guid>https://blog.atusy.net/2020/10/27/remove-elements-from-vector/</guid><description>&lt;link href="../rmarkdown-libs/anchor-sections/anchor-sections.css" rel="stylesheet" />
&lt;script src="../rmarkdown-libs/anchor-sections/anchor-sections.js">&lt;/script>


&lt;p>以下の&lt;code>x&lt;/code>から&lt;code>y&lt;/code>を除去してみましょう。&lt;/p>
&lt;pre class="r">&lt;code>x &amp;lt;- c(&amp;#39;banana&amp;#39;, &amp;#39;banana&amp;#39;, &amp;#39;apple&amp;#39;, &amp;#39;grape&amp;#39;)
y &amp;lt;- c(&amp;#39;apple&amp;#39;, &amp;#39;grape&amp;#39;)&lt;/code>&lt;/pre>
&lt;p>&lt;code>%in%&lt;/code>演算子を使えば&lt;code>x&lt;/code>の要素が&lt;code>y&lt;/code>に含まれているか判定できるので、簡単ですね。&lt;/p>
&lt;pre class="r">&lt;code>x[!x %in% y]
#&amp;gt; [1] &amp;quot;banana&amp;quot; &amp;quot;banana&amp;quot;&lt;/code>&lt;/pre>
&lt;p>もっと簡単「そう」な方法に、&lt;code>setdiff&lt;/code>関数があります。ただしこいつは中で&lt;code>unique&lt;/code>関数をかけている点に注意が必要です。&lt;/p></description></item><item><title>R MarkdownでHTML出力時に見出しのURLを簡単に取得できるようにした</title><link>https://blog.atusy.net/2020/10/18/rmd-anchor-sections/</link><pubDate>Sun, 18 Oct 2020 00:00:00 +0000</pubDate><guid>https://blog.atusy.net/2020/10/18/rmd-anchor-sections/</guid><description>&lt;link href="../rmarkdown-libs/anchor-sections/anchor-sections.css" rel="stylesheet" />
&lt;script src="../rmarkdown-libs/anchor-sections/anchor-sections.js">&lt;/script>


&lt;p>このブログでも使えてます。&lt;/p>
&lt;div id="ここにマウスを重ねると" class="section level1">
&lt;h1>ここにマウスを重ねると&lt;/h1>
&lt;p>&lt;code>#&lt;/code>記号が見出しの最後に現れ、クリックするとブラウザのURL覧から見出しのURLを取得できるようにしました（&lt;a href="https://github.com/rstudio/rmarkdown/pull/1884">PR #1884&lt;/a>）。
&lt;code>#&lt;/code>記号を右クリックしてメニューから&lt;code>Copy link location&lt;/code>とかしてもOK。&lt;/p></description></item><item><title>オープンソースソフトウェア開発の貢献に必要なスキルは何かとインタビューされた</title><link>https://blog.atusy.net/2020/10/04/contributing-oss/</link><pubDate>Sun, 04 Oct 2020 00:00:00 +0000</pubDate><guid>https://blog.atusy.net/2020/10/04/contributing-oss/</guid><description>&lt;link href="../rmarkdown-libs/anchor-sections/anchor-sections.css" rel="stylesheet" />
&lt;script src="../rmarkdown-libs/anchor-sections/anchor-sections.js">&lt;/script>


&lt;p>とある筋からオープンソースソフトウェア開発への貢献に必要なスキルセットは何かとインタビューを受けた。氏の研究に必要らしくて受けたが、今日のことをブログにしても構わないとのことだったので、ちょっとメモがてら書き残しておこう。&lt;/p></description></item><item><title>ggplot2で列の値をそのまま色の値にしつつレジェンドも表示する（`scale_*_identity`関数）</title><link>https://blog.atusy.net/2020/09/21/ggplot-scale-identity-with-legend/</link><pubDate>Mon, 21 Sep 2020 00:00:00 +0000</pubDate><guid>https://blog.atusy.net/2020/09/21/ggplot-scale-identity-with-legend/</guid><description>&lt;p>ggplot2パッケージでは&lt;code>scale_*_identity&lt;/code>という名前の関数を使うと、審美的属性にマッピングした列の値をそのまま色やサイズ、透明度に反映できます。ただし、デフォルトでは凡例が表示されません。&lt;/p></description></item><item><title>ggplot2とplotlyで作成したグラフから凡例を残してデータを非表示にする</title><link>https://blog.atusy.net/2020/09/19/ggplotly-legend-visibility/</link><pubDate>Sat, 19 Sep 2020 00:00:00 +0000</pubDate><guid>https://blog.atusy.net/2020/09/19/ggplotly-legend-visibility/</guid><description>&lt;script src="../rmarkdown-libs/htmlwidgets/htmlwidgets.js">&lt;/script>
&lt;script src="../rmarkdown-libs/plotly-binding/plotly.js">&lt;/script>
&lt;script src="../rmarkdown-libs/typedarray/typedarray.min.js">&lt;/script>
&lt;script src="../rmarkdown-libs/jquery/jquery.min.js">&lt;/script>
&lt;link href="../rmarkdown-libs/crosstalk/css/crosstalk.css" rel="stylesheet" />
&lt;script src="../rmarkdown-libs/crosstalk/js/crosstalk.min.js">&lt;/script>
&lt;link href="../rmarkdown-libs/plotly-htmlwidgets-css/plotly-htmlwidgets.css" rel="stylesheet" />
&lt;script src="../rmarkdown-libs/plotly-main/plotly-latest.min.js">&lt;/script>


&lt;p>plotlyで作成したグラフは凡例をクリックすると、データの表示・非表示を変更できます。ではデフォルトで一部の凡例を非表示にする方法はあるでしょうか。&lt;/p></description></item><item><title>パッケージのチェックをR-hubのあらゆるプラットフォームで実行し通す</title><link>https://blog.atusy.net/2020/09/07/rhub-test-all-for-cran/</link><pubDate>Mon, 07 Sep 2020 00:00:00 +0000</pubDate><guid>https://blog.atusy.net/2020/09/07/rhub-test-all-for-cran/</guid><description>&lt;div id="結論" class="section level1">
&lt;h1>結論&lt;/h1>
&lt;pre class="r">&lt;code>rhub::check_for_cran(platforms = rhub::platforms()$name)&lt;/code>&lt;/pre>
&lt;p>負担かけすぎるのもよくないのでほどほどに。&lt;/p>
&lt;/div>
&lt;div id="背景から" class="section level1">
&lt;h1>背景から&lt;/h1>
&lt;p>CRANに投稿する際、2つ以上のプラットフォームでパッケージをチェックすることが推奨されている。&lt;/p></description></item><item><title>UMAPを異常検知の前処理に使う時に、異常データの一部もUMAPに学習させるとよさそう</title><link>https://blog.atusy.net/2020/09/02/umap-outlier/</link><pubDate>Wed, 02 Sep 2020 00:00:00 +0000</pubDate><guid>https://blog.atusy.net/2020/09/02/umap-outlier/</guid><description>&lt;p>UMAPは高次元データを似たもの同士が近くなるように次元縮約してくれる便利な手法だ。
t-SNEよりも高速なことに加え、訓練しておいたモデルを新規データに適用できることも魅力。&lt;/p></description></item><item><title>ftExtra 0.0.2、0.0.3をリリースしました</title><link>https://blog.atusy.net/2020/08/30/ftextra-0-0-3/</link><pubDate>Sun, 30 Aug 2020 00:00:00 +0000</pubDate><guid>https://blog.atusy.net/2020/08/30/ftextra-0-0-3/</guid><description>&lt;p>ftExtra 0.0.3をリリースしました。
0.0.2をリリースしたらCRANにSolarisでうまくvignetteをビルドできねえんだけど、なんとかしないとCRANから消すねって言われて、慌てて0.0.3をリリースしました&lt;a href="#fn1" class="footnote-ref" id="fnref1">&lt;sup>1&lt;/sup>&lt;/a>。ユーザーレベルで認識できる変更は0.0.2のものです。&lt;/p></description></item><item><title>PandocやR Markdownでマルチカラムレイアウト</title><link>https://blog.atusy.net/2020/08/24/pandoc-columns/</link><pubDate>Mon, 24 Aug 2020 00:00:00 +0000</pubDate><guid>https://blog.atusy.net/2020/08/24/pandoc-columns/</guid><description>&lt;p>スライドを筆頭にしばしば2カラム以上のレイアウトなどを利用したくなりますね。
R Markdownの場合、revealjsパッケージでマルチカラムを利用する方法が、私を含め複数の人によって提案されてきました。&lt;/p></description></item><item><title>R Markdownとrevealjsとluaフィルタでチャンクやブロック要素をincrementalに表示する</title><link>https://blog.atusy.net/2020/08/15/incremental-revealjs/</link><pubDate>Sat, 15 Aug 2020 00:00:00 +0000</pubDate><guid>https://blog.atusy.net/2020/08/15/incremental-revealjs/</guid><description>&lt;img alt="revealjsでチャンクをincrementalに表示した例" src="../images/posts/2020-08-15-incremental-revealjs/example.gif"></description></item><item><title>R Markdown Cookbookの原稿をレビューをしました</title><link>https://blog.atusy.net/2020/08/10/reviewed-rmarkdown-cookbook/</link><pubDate>Mon, 10 Aug 2020 00:00:00 +0000</pubDate><guid>https://blog.atusy.net/2020/08/10/reviewed-rmarkdown-cookbook/</guid><description>&lt;p>待望の「&lt;a href="https://bookdown.org/yihui/rmarkdown-cookbook">R Markdown Cookbook&lt;/a>」が今年出ます。
Webからも閲覧可能です（&lt;a href="https://bookdown.org/yihui/rmarkdown-cookbook" class="uri">https://bookdown.org/yihui/rmarkdown-cookbook&lt;/a>）。私も小ネタの提供やレビューで協力させて頂き、&lt;a href="https://bookdown.org/yihui/rmarkdown-cookbook/acknowledgements.html">謝辞&lt;/a>に載せていただきました。
READMEでは2020年8月出版予定となってますが、多分、遅れるんじゃないかな?&lt;/p></description></item><item><title>CRANを見据えるならパッケージの機能が最小限の内に送ってしまえ</title><link>https://blog.atusy.net/2020/07/27/creating-package/</link><pubDate>Mon, 27 Jul 2020 00:00:00 +0000</pubDate><guid>https://blog.atusy.net/2020/07/27/creating-package/</guid><description>&lt;p>金曜日にchunkhooksパッケージをCRANに送りだしました。コードブロックに行番号をつけたり、&lt;code>fig.width&lt;/code>の単位をインチからミリメートルに変換したり、そんなおお役立ちフックをちょこちょこ盛り込んでいます。&lt;/p></description></item><item><title>tibbleでカラーコードを示す列を色付けてみる</title><link>https://blog.atusy.net/2020/07/23/color-tibble-column/</link><pubDate>Thu, 23 Jul 2020 00:00:00 +0000</pubDate><guid>https://blog.atusy.net/2020/07/23/color-tibble-column/</guid><description>&lt;p>にすぜっとさんのツィートを見かけて挑戦してみました (&lt;a href="https://twitter.com/niszet0/status/1286245706504708101" class="uri">https://twitter.com/niszet0/status/1286245706504708101&lt;/a>)。まっとうな人は&lt;code>formattable&lt;/code>とかそーゆーの使った方がいいんじゃないかな。&lt;/p>
&lt;p>以下のコードをRStudioのコンソールにでもコピペしてみてくださいな。&lt;/p>
&lt;p>ちなみにR MarkdownではRStudio IDEのpreview画面にも、HTMLなどの出力にも反映されない。&lt;/p></description></item><item><title>テスト駆動開発してCRANに投げるの大事ネ</title><link>https://blog.atusy.net/2020/07/20/cran-package-with-tests/</link><pubDate>Mon, 20 Jul 2020 00:00:00 +0000</pubDate><guid>https://blog.atusy.net/2020/07/20/cran-package-with-tests/</guid><description>&lt;p>CRANに登録済みのftExtraパッケージはPandocのASTを扱ったりする都合上、内部のデータ操作が結構複雑なので、自分の意図した動作が実現するか随時確認できるように、単体テストを重視していました。&lt;/p></description></item><item><title>rocker/verse:4.0.2を使おうとして躓いた</title><link>https://blog.atusy.net/2020/07/17/rocker-verse-4-0-2/</link><pubDate>Fri, 17 Jul 2020 00:00:00 +0000</pubDate><guid>https://blog.atusy.net/2020/07/17/rocker-verse-4-0-2/</guid><description>&lt;p>RをDockerで簡単に使えるようにするプロジェクトとしてrockerがあります。こいつ、R 3.x.x系とR 4.x.x系でDockerfileの書き方が結構変わったので、拡張イメージを作っている人は要注意です。&lt;/p></description></item><item><title>自作キーボードLily 58 ProのスィッチをChoc Red Proに換装した</title><link>https://blog.atusy.net/2020/07/13/choc-red-pro/</link><pubDate>Mon, 13 Jul 2020 00:00:00 +0000</pubDate><guid>https://blog.atusy.net/2020/07/13/choc-red-pro/</guid><description>&lt;p>左右分離式の&lt;a href="https://yushakobo.jp/shop/lily58-pro/">Lily 58 Pro&lt;/a>を使っています。キースィッチがソケット式になっていて、簡単に交換できるのがウリの一つ。&lt;/p>
&lt;p>&lt;img src="../images/posts/2020-07-13-choc-red-pro/lily58.jpg" />&lt;/p>
&lt;p>このとところキーが重くて入力に失敗することがあるのが気になっていたので、キースィッチオープナーを使ってスプリングを交換してやろうかと考えていました。その場合、DMMあたりで&lt;a href="https://make.dmm.com/item/1032295/">オープナー&lt;/a>を買って、遊舎工房あたりで&lt;a href="https://yushakobo.jp/shop/kailh-choc-springs/">スプリング&lt;/a>を買って、作業もそれなりにあってと大仕事。&lt;/p></description></item><item><title>Tokyo.R 86でifもforも使わずにlifegameを実装する話をしてきました</title><link>https://blog.atusy.net/2020/06/29/tokyor86-lifegame/</link><pubDate>Mon, 29 Jun 2020 00:00:00 +0000</pubDate><guid>https://blog.atusy.net/2020/06/29/tokyor86-lifegame/</guid><description>&lt;p>&lt;a href="https://atusy.github.io/tokyor86-lifegame/#/">「え!? ifもforも使わずにライフゲームの実装を!?」「できらR!!」&lt;/a> というタイトルで話してきました。時間切れになってしまうあたり、準備不足を晒してしまってお恥ずかしい限りでした。もっと伝えたいことがあったのに！&lt;/p></description></item><item><title>R Markdownでhtml_documentを拡張する時の注意点 (self_contained)</title><link>https://blog.atusy.net/2020/06/22/extending-rmarkdown-without-self-contained/</link><pubDate>Mon, 22 Jun 2020 00:00:00 +0000</pubDate><guid>https://blog.atusy.net/2020/06/22/extending-rmarkdown-without-self-contained/</guid><description>&lt;p>&lt;code>rmarkdown::html_document&lt;/code>を&lt;code>rmarkdown::output_format&lt;/code>で拡張する時、引数の指定方法を注意しないと、&lt;code>self_contained&lt;/code>引数や&lt;code>keep_md&lt;/code>引数がうまく機能しなくなります（参考: &lt;a href="https://blog.atusy.net/2020/05/11/rmd-output-fromat-function/">オリジナルなR Markdownの出力形式を作るoutput_format関数事始め&lt;/a>）。&lt;/p></description></item><item><title>R Markdownで出力結果を隠せるようにしてみた (minidownパッケージ)</title><link>https://blog.atusy.net/2020/06/14/minidown-with-result-folding/</link><pubDate>Sun, 14 Jun 2020 00:00:00 +0000</pubDate><guid>https://blog.atusy.net/2020/06/14/minidown-with-result-folding/</guid><description>&lt;p>minidownパッケージを使うと以下のような感じのことができるようになります。
Resultsの部分をクリックすると図が現れます。&lt;/p>
&lt;pre class="r">&lt;code>plot(iris)&lt;/code>&lt;/pre>
&lt;p>&lt;details>&lt;summary>Results&lt;/summary>&lt;/p>
&lt;p>&lt;img src="../post/2020-06-14-minidown-with-result-folding_files/figure-html/unnamed-chunk-1-1.png" width="672" />&lt;/p>
&lt;p>&lt;/details>&lt;/p>
&lt;p>実例は &lt;a href="http://minidown.atusy.net/#results-folding" class="uri">http://minidown.atusy.net/#results-folding&lt;/a> を参照してください。&lt;/p></description></item><item><title>Osaka.Rで昼間のリモートもくもく会を開催しました (2020/6/6)</title><link>https://blog.atusy.net/2020/06/08/osakar-mokumoku-20200606/</link><pubDate>Mon, 08 Jun 2020 00:00:00 +0000</pubDate><guid>https://blog.atusy.net/2020/06/08/osakar-mokumoku-20200606/</guid><description>&lt;p>Osaka.Rで昼間のリモートもくもく会を開催しました。これは毎平日の朝に行っているリモートもくもく会のグレードアップ版的な位置付けです。休日開催することで、朝もくより長く時間をとり、進捗を出しつつさらに参加者同士で進捗を可視化しようという試みです。&lt;/p></description></item><item><title>knitr::opts_hooksを設定するとチャンクキャッシュが更新されうる</title><link>https://blog.atusy.net/2020/06/02/chunk-hooks-may-invalidates-cache/</link><pubDate>Tue, 02 Jun 2020 00:00:00 +0000</pubDate><guid>https://blog.atusy.net/2020/06/02/chunk-hooks-may-invalidates-cache/</guid><description>&lt;p>R Markdownのチャンクのキャッシュは、チャンクオプションかコメント以外のコードに変更が加わった場合に更新されます。&lt;/p>
&lt;p>またR Markdownの背後で動いているknitrパッケージにはフックという概念があり、例えば特定のチャンクオプションが&lt;code>NULL&lt;/code>以外の値の場合に発火する関数を仕込むことができます。この場合、関数はチャンクオプションを引数で受け取り、新しいチャンクオプションを返します。&lt;/p></description></item><item><title>Pandoc Lua Filtersのreturnの挙動と複数のフィルタを書くときの用例</title><link>https://blog.atusy.net/2020/05/31/lua-filter-returns/</link><pubDate>Sun, 31 May 2020 00:00:00 +0000</pubDate><guid>https://blog.atusy.net/2020/05/31/lua-filter-returns/</guid><description>&lt;p>PandocのLua Filterでは、
Lua Type Referenceに載っている型と同じ名前の関数を作成すると、その型の要素を見つけて順々に関数を適用してくれる。たとえば、&lt;code>Pandoc&lt;/code>関数を作成すると、ドキュメント全体のASTを受けとって処理を実行できる。以下は、Luaフィルタを実行していると教えてくれる例。&lt;/p></description></item><item><title>Tokyo.R 85で「R Markdownのオリジナルフォーマットを作ろう」の話をしてきました</title><link>https://blog.atusy.net/2020/05/25/tokyor85/</link><pubDate>Mon, 25 May 2020 00:00:00 +0000</pubDate><guid>https://blog.atusy.net/2020/05/25/tokyor85/</guid><description>&lt;p>毎週月曜日はブログ更新の日！と決めつつ、土曜に発表頑張ったからいいよなあと言う気分に。&lt;/p>
&lt;p>なので発表しましたとの記録だけ残しておきます。&lt;/p>
&lt;p>スライドは&lt;a href="https://atusy.github.io/tokyor85-original-rmd-format/#/">こちら&lt;/a>&lt;/p>
&lt;div id="成果" class="section level1">
&lt;h1>成果&lt;/h1>
&lt;ul>
&lt;li>&lt;a href="https://minidown.atusy.net/">minidown&lt;/a>パッケージを不況できた&lt;a href="#fn1" class="footnote-ref" id="fnref1">&lt;sup>1&lt;/sup>&lt;/a>&lt;/li>
&lt;li>オリジナルフォーマット作りに興味を持つ人が出てくれた&lt;a href="#fn2" class="footnote-ref" id="fnref2">&lt;sup>2&lt;/sup>&lt;/a>&lt;/li>
&lt;li>想定ターゲットとマッチする参加者がいた&lt;a href="#fn3" class="footnote-ref" id="fnref3">&lt;sup>3&lt;/sup>&lt;/a>
&lt;ul>
&lt;li>肥大化したYAMLフロントマターをなんとかしたい&lt;/li>
&lt;li>依存ファイルの関係を整理したい&lt;/li>
&lt;/ul>&lt;/li>
&lt;li>Lua Filterの有効性を実感頂けた&lt;a href="#fn4" class="footnote-ref" id="fnref4">&lt;sup>4&lt;/sup>&lt;/a>&lt;/li>
&lt;/ul>
&lt;/div>
&lt;div id="課題" class="section level1">
&lt;h1>課題&lt;/h1>
&lt;p>Pandocの処理のお話はまだあまり詳しくR界隈で知られていないように思う。今回のテーマと関連するところでは以下あたり。&lt;/p></description></item><item><title>オリジナルなR Markdownの出力形式を作る`output_format`関数事始め</title><link>https://blog.atusy.net/2020/05/11/rmd-output-fromat-function/</link><pubDate>Mon, 11 May 2020 00:00:00 +0000</pubDate><guid>https://blog.atusy.net/2020/05/11/rmd-output-fromat-function/</guid><description>&lt;p>&lt;code>rmarkdown::output_format&lt;/code>関数は、新規に、あるいは既存の出力形式を上書きしてオリジナルなR Markdownのの出力形式を作成するための関数です。
&lt;code>rmarkdown::render&lt;/code>関数を実行する際に、レンダリングに必要な情報をリストで渡します。リストの内容は、自身の&lt;code>base_format&lt;/code>引数を除く引数の名前です。詳しくはドキュメントを参照して頂くか、その内解説する日を待って頂きたいところ。&lt;/p></description></item><item><title>朝もくを1ヶ月して得た教訓とか #OsakaR</title><link>https://blog.atusy.net/2020/05/10/my-way-of-asamoku/</link><pubDate>Sun, 10 May 2020 00:00:00 +0000</pubDate><guid>https://blog.atusy.net/2020/05/10/my-way-of-asamoku/</guid><description>&lt;div id="TOC">
&lt;ul>
&lt;li>&lt;a href="#目標を宣言しよう">&lt;span class="toc-section-number">1&lt;/span> 目標を宣言しよう&lt;/a>&lt;ul>
&lt;li>&lt;a href="#朝もくの間に達成できる粒度の目標を作ろう">&lt;span class="toc-section-number">1.1&lt;/span> 朝もくの間に達成できる粒度の目標を作ろう&lt;/a>&lt;/li>
&lt;li>&lt;a href="#色々やろう">&lt;span class="toc-section-number">1.2&lt;/span> 色々やろう&lt;/a>&lt;/li>
&lt;/ul>&lt;/li>
&lt;li>&lt;a href="#進捗は報告しよう">&lt;span class="toc-section-number">2&lt;/span> 進捗は報告しよう&lt;/a>&lt;/li>
&lt;li>&lt;a href="#互いを褒めよう">&lt;span class="toc-section-number">3&lt;/span> 互いを褒めよう&lt;/a>&lt;/li>
&lt;li>&lt;a href="#別のコミュニティも利用しよう">&lt;span class="toc-section-number">4&lt;/span> 別のコミュニティも利用しよう&lt;/a>&lt;/li>
&lt;li>&lt;a href="#アウトプットしよう">&lt;span class="toc-section-number">5&lt;/span> アウトプットしよう&lt;/a>&lt;/li>
&lt;li>&lt;a href="#enjoy">&lt;span class="toc-section-number">6&lt;/span> Enjoy!!&lt;/a>&lt;/li>
&lt;/ul>
&lt;/div>

&lt;p>Osaka.Rの活動としてリモート朝もくを始め1ヶ月ほどが経過しました。良い機会なので、その過程で得た教訓とかをまとめておきたいと思います。必ずしも毎回守れているわけではありませんが、大事にしていきたいので宣言もかねてblog化しました。&lt;/p></description></item><item><title>html_document(self_contained = FALSE) で出力した時の携帯性をあげるextra_dependencies引数</title><link>https://blog.atusy.net/2020/05/03/rmd-extra-dependencies/</link><pubDate>Sun, 03 May 2020 00:00:00 +0000</pubDate><guid>https://blog.atusy.net/2020/05/03/rmd-extra-dependencies/</guid><description>&lt;code>rmarkdown::html_document&lt;/code>関数には、&lt;br>
&lt;code>self_contained&lt;/code>引数が&lt;code>FALSE&lt;/code>な時でも依存しているJavaScriptやCSSをポータブルにするために、&lt;br>
&lt;code>extra_dependencies&lt;/code>引数が用意されています。&lt;br>
本記事ではこの引数の使い方について紹介します。</description></item><item><title>Pandocにself containedさせたくないデータには`data-external="1"`を属性付与しよう</title><link>https://blog.atusy.net/2020/04/27/pandoc-data-external/</link><pubDate>Mon, 27 Apr 2020 00:00:00 +0000</pubDate><guid>https://blog.atusy.net/2020/04/27/pandoc-data-external/</guid><description>&lt;div id="TOC">
&lt;ul>
&lt;li>&lt;a href="#self-containedなドキュメントでも数式を使う">self containedなドキュメントでも数式を使う&lt;/a>&lt;ul>
&lt;li>&lt;a href="#r-markdownの場合">R Markdownの場合&lt;/a>&lt;/li>
&lt;/ul>&lt;/li>
&lt;li>&lt;a href="#enjoy">Enjoy&lt;/a>&lt;/li>
&lt;/ul>
&lt;/div>

&lt;p>&lt;a href="https://blog.atusy.net/2020/04/23/katex-in-html-doc/">先日の記事&lt;/a>では
R MarkdownでKaTeXをCDNから読み込む際に、
Pandocが出力にKaTeXを埋め込まないようにするハックを紹介しました。&lt;/p></description></item><item><title>R MarkdownでKaTeXを使う</title><link>https://blog.atusy.net/2020/04/23/katex-in-html-doc/</link><pubDate>Thu, 23 Apr 2020 00:00:00 +0000</pubDate><guid>https://blog.atusy.net/2020/04/23/katex-in-html-doc/</guid><description>&lt;div id="TOC">
&lt;ul>
&lt;li>&lt;a href="#はじめに">はじめに&lt;/a>&lt;/li>
&lt;li>&lt;a href="#アイディア">アイディア&lt;/a>&lt;/li>
&lt;li>&lt;a href="#実装">実装&lt;/a>&lt;ul>
&lt;li>&lt;a href="#プレースホルダの作成">プレースホルダの作成&lt;/a>&lt;/li>
&lt;li>&lt;a href="#katexスクリプトの用意">KaTeXスクリプトの用意&lt;/a>&lt;/li>
&lt;li>&lt;a href="#フォーマット関数の用意">フォーマット関数の用意&lt;/a>&lt;ul>
&lt;li>&lt;a href="#ベースフォーマットの用意">ベースフォーマットの用意&lt;/a>&lt;/li>
&lt;li>&lt;a href="#ベースフォーマットを改変する関数の用意">ベースフォーマットを改変する関数の用意&lt;/a>&lt;/li>
&lt;/ul>&lt;/li>
&lt;li>&lt;a href="#レンダリング">レンダリング&lt;/a>&lt;/li>
&lt;/ul>&lt;/li>
&lt;li>&lt;a href="#実用化に向けて">実用化に向けて&lt;/a>&lt;/li>
&lt;li>&lt;a href="#enjoy">Enjoy!&lt;/a>&lt;/li>
&lt;/ul>
&lt;/div>

&lt;div id="はじめに" class="section level1">
&lt;h1>はじめに&lt;/h1>
&lt;p>今、Rmdから出力できるHTML5でJavaScript控え目で軽量で高速なHTML文書フォーマットとして、&lt;code>minidown::mini_document&lt;/code>を開発しています。割と実用段階に入ったと思うので、以下のサンプルページを見て見てください。
&lt;a href="https://minidown-example.atusy.net/" class="uri">https://minidown-example.atusy.net/&lt;/a>&lt;/p></description></item><item><title>Osaka.Rを立ち上げて、リモート朝モクやってます</title><link>https://blog.atusy.net/2020/04/21/osakar-asamoku/</link><pubDate>Tue, 21 Apr 2020 00:00:00 +0000</pubDate><guid>https://blog.atusy.net/2020/04/21/osakar-asamoku/</guid><description>&lt;div id="TOC">
&lt;ul>
&lt;li>&lt;a href="#osaka.r始めました">Osaka.R始めました&lt;/a>&lt;/li>
&lt;li>&lt;a href="#外出自粛の中でできること-リモート朝もく">外出自粛の中でできること = リモート朝もく&lt;/a>&lt;ul>
&lt;li>&lt;a href="#朝もくの感想">朝もくの感想&lt;/a>&lt;/li>
&lt;/ul>&lt;/li>
&lt;li>&lt;a href="#個人的なosaka.rを立ち上げの背景">個人的なOsaka.Rを立ち上げの背景&lt;/a>&lt;/li>
&lt;/ul>
&lt;/div>

&lt;div id="osaka.r始めました" class="section level1">
&lt;h1>Osaka.R始めました&lt;/h1>
&lt;p>転職して大阪に引越したのを機にOsaka.Rを始めることにしました。奇しくもOsaka.Rを始めたいと同時期に思っていたくろきちさん、わさびさんと共に立ち上げることにしました。&lt;/p></description></item><item><title>Pandoc lua filter手習い: detailクラス付きのコードブロックを折り畳む</title><link>https://blog.atusy.net/2020/03/07/pandoc-lua-detailed-codeblock/</link><pubDate>Sat, 07 Mar 2020 00:00:00 +0000</pubDate><guid>https://blog.atusy.net/2020/03/07/pandoc-lua-detailed-codeblock/</guid><description>&lt;div id="TOC">
&lt;ul>
&lt;li>&lt;a href="#実装">実装&lt;/a>&lt;ul>
&lt;li>&lt;a href="#関数を書く">関数を書く&lt;/a>&lt;/li>
&lt;li>&lt;a href="#コードブロックをそのまま返す">コードブロックをそのまま返す&lt;/a>&lt;/li>
&lt;li>&lt;a href="#コードブロックをdetalsタグで囲む">コードブロックを&lt;code>&amp;lt;detals&amp;gt;&lt;/code>タグで囲む&lt;/a>&lt;/li>
&lt;li>&lt;a href="#detailsクラスを持つコードブロックだけdetailsタグで囲う">detailsクラスを持つコードブロックだけ&lt;code>&amp;lt;details&amp;gt;&lt;/code>タグで囲う。&lt;/a>&lt;/li>
&lt;li>&lt;a href="#detailsクラスを持つコードブロックだけdetailsタグで囲いsummary要素が指定されていればsummaryタグに記述する">detailsクラスを持つコードブロックだけ&lt;code>&amp;lt;details&amp;gt;&lt;/code>タグで囲い、summary要素が指定されていれば、&lt;code>&amp;lt;summary&amp;gt;&lt;/code>タグに記述する&lt;/a>&lt;/li>
&lt;/ul>&lt;/li>
&lt;li>&lt;a href="#r-markdownで使ってみる">R Markdownで使ってみる&lt;/a>&lt;ul>
&lt;li>&lt;a href="#rmdファイル">Rmdファイル&lt;/a>&lt;/li>
&lt;li>&lt;a href="#デモ-折り畳み時">デモ: 折り畳み時&lt;/a>&lt;/li>
&lt;li>&lt;a href="#デモ-展開時">デモ: 展開時&lt;/a>&lt;/li>
&lt;/ul>&lt;/li>
&lt;/ul>
&lt;/div>

&lt;p>R Markdownの&lt;code>html_document&lt;/code>でソースコードだけじゃなくて結果も折り畳みたいようとの声があった。レッスン時にコードの実行結果を受講者に予想させてから見せたい場合を想定しているようだ。そこで&lt;code>knitr::knit_hooks&lt;/code>を使う忍術を紹介した。
&lt;a href="https://github.com/rstudio/rmarkdown/issues/1453#issuecomment-595797200" class="uri">https://github.com/rstudio/rmarkdown/issues/1453#issuecomment-595797200&lt;/a>&lt;/p></description></item><item><title>revealjs_presentationでコードブロックに行番号を付与する</title><link>https://blog.atusy.net/2020/03/02/revealjs-linenumbers/</link><pubDate>Mon, 02 Mar 2020 00:00:00 +0000</pubDate><guid>https://blog.atusy.net/2020/03/02/revealjs-linenumbers/</guid><description>&lt;style type="text/css">
code.sourceCode > span { display: inline-block; line-height: 1.25; }
code.sourceCode > span { color: inherit; text-decoration: inherit; }
code.sourceCode > span:empty { height: 1.2em; }
.sourceCode { overflow: visible; }
code.sourceCode { white-space: pre; position: relative; }
div.sourceCode { margin: 1em 0; }
pre.sourceCode { margin: 0; }
@media screen {
div.sourceCode { overflow: auto; }
}
@media print {
code.sourceCode { white-space: pre-wrap; }
code.sourceCode > span { text-indent: -5em; padding-left: 5em; }
}
pre.numberSource code
 { counter-reset: source-line 0; }
pre.numberSource code > span
 { position: relative; left: -4em; counter-increment: source-line; }
pre.numberSource code > span > a:first-child::before
 { content: counter(source-line);
 position: relative; left: -1em; text-align: right; vertical-align: baseline;
 border: none; display: inline-block;
 -webkit-touch-callout: none; -webkit-user-select: none;
 -khtml-user-select: none; -moz-user-select: none;
 -ms-user-select: none; user-select: none;
 padding: 0 4px; width: 4em;
 color: #aaaaaa;
 }
pre.numberSource { margin-left: 3em; border-left: 1px solid #aaaaaa; padding-left: 4px; }
div.sourceCode
 { }
@media screen {
code.sourceCode > span > a:first-child::before { text-decoration: underline; }
}
code span.al { color: #ff0000; font-weight: bold; } /* Alert */
code span.an { color: #60a0b0; font-weight: bold; font-style: italic; } /* Annotation */
code span.at { color: #7d9029; } /* Attribute */
code span.bn { color: #40a070; } /* BaseN */
code span.bu { } /* BuiltIn */
code span.cf { color: #007020; font-weight: bold; } /* ControlFlow */
code span.ch { color: #4070a0; } /* Char */
code span.cn { color: #880000; } /* Constant */
code span.co { color: #60a0b0; font-style: italic; } /* Comment */
code span.cv { color: #60a0b0; font-weight: bold; font-style: italic; } /* CommentVar */
code span.do { color: #ba2121; font-style: italic; } /* Documentation */
code span.dt { color: #902000; } /* DataType */
code span.dv { color: #40a070; } /* DecVal */
code span.er { color: #ff0000; font-weight: bold; } /* Error */
code span.ex { } /* Extension */
code span.fl { color: #40a070; } /* Float */
code span.fu { color: #06287e; } /* Function */
code span.im { } /* Import */
code span.in { color: #60a0b0; font-weight: bold; font-style: italic; } /* Information */
code span.kw { color: #007020; font-weight: bold; } /* Keyword */
code span.op { color: #666666; } /* Operator */
code span.ot { color: #007020; } /* Other */
code span.pp { color: #bc7a00; } /* Preprocessor */
code span.sc { color: #4070a0; } /* SpecialChar */
code span.ss { color: #bb6688; } /* SpecialString */
code span.st { color: #4070a0; } /* String */
code span.va { color: #19177c; } /* Variable */
code span.vs { color: #4070a0; } /* VerbatimString */
code span.wa { color: #60a0b0; font-weight: bold; font-style: italic; } /* Warning */
&lt;/style>


&lt;p>R Markdownでは、コードブロックに&lt;code>numberLines&lt;/code>クラスを与えると、Pandocが行番号を付与してくれます。例えば以下のコードブロックをblogdownでレンダリングすると、ちゃんと行番号が付与されます&lt;a href="#fn1" class="footnote-ref" id="fnref1">&lt;sup>1&lt;/sup>&lt;/a>。&lt;/p></description></item><item><title>ノートブックの最適化はfor文の最適化に通ず</title><link>https://blog.atusy.net/2020/02/27/simple-notebook/</link><pubDate>Thu, 27 Feb 2020 00:00:00 +0000</pubDate><guid>https://blog.atusy.net/2020/02/27/simple-notebook/</guid><description>&lt;div id="TOC">
&lt;ul>
&lt;li>&lt;a href="#ループせずに済む処理はforの外に出せ">ループせずに済む処理は&lt;code>for&lt;/code>の外に出せ&lt;/a>&lt;ul>
&lt;li>&lt;a href="#ループ前">ループ前&lt;/a>&lt;ul>
&lt;li>&lt;a href="#要旨">要旨&lt;/a>&lt;/li>
&lt;li>&lt;a href="#パッケージ読み込み">パッケージ読み込み&lt;/a>&lt;/li>
&lt;li>&lt;a href="#関数定義">関数定義&lt;/a>&lt;/li>
&lt;li>&lt;a href="#データ読み込み整形">データ読み込み・整形&lt;/a>&lt;/li>
&lt;/ul>&lt;/li>
&lt;li>&lt;a href="#ループ内">ループ内&lt;/a>&lt;ul>
&lt;li>&lt;a href="#小規模なデータ整形">小規模なデータ整形&lt;/a>&lt;/li>
&lt;li>&lt;a href="#分析可視化">分析・可視化&lt;/a>&lt;/li>
&lt;li>&lt;a href="#解釈">解釈&lt;/a>&lt;/li>
&lt;/ul>&lt;/li>
&lt;li>&lt;a href="#ループ後">ループ後&lt;/a>&lt;/li>
&lt;/ul>&lt;/li>
&lt;/ul>
&lt;/div>

&lt;p>データ分析は大きく&lt;/p>
&lt;ul>
&lt;li>読み込み・整形&lt;/li>
&lt;li>分析&lt;/li>
&lt;li>可視化&lt;/li>
&lt;li>解釈&lt;/li>
&lt;/ul>
&lt;p>の4つの要素で成り立つと思う。できればこの順に1サイクルして終わりたいが、現実的には何サイクルも回す。そしてメンテナンス不能で読む気も失せる巨大ノートブックができあがることは、想像に難くない。&lt;/p></description></item><item><title>docker (rocker) でheadless Chromeを動かす</title><link>https://blog.atusy.net/2020/01/14/chromote-on-rocker/</link><pubDate>Tue, 14 Jan 2020 00:00:00 +0000</pubDate><guid>https://blog.atusy.net/2020/01/14/chromote-on-rocker/</guid><description>&lt;div id="rでwebページのスクリーンショットを撮るにはheadless-chromeが今風" class="section level1">
&lt;h1>RでWebページのスクリーンショットを撮るにはheadless Chromeが今風？&lt;/h1>
&lt;p>従来、RでWebページのスクリーンショットを撮るには&lt;a href="https://wch.github.io/webshot/">webshot&lt;/a>パッケージが活躍してきました。しかし、webshotパッケージの内部で動く&lt;a href="https://phantomjs.org/">PhantomJS&lt;/a>は開発が停止して久しいです。&lt;/p>
&lt;p>そんな中、webshotパッケージの開発者であるwchは、headless Chromeを使ってスクリーンショットを撮影する&lt;a href="https://github.com/rstudio/webshot2">webshot2&lt;/a>パッケージをRStudio製OSSとして開発開始しました。&lt;/p></description></item><item><title>importasパッケージでPython風にパッケージを使おう</title><link>https://blog.atusy.net/2019/12/21/importas/</link><pubDate>Sat, 21 Dec 2019 00:00:00 +0000</pubDate><guid>https://blog.atusy.net/2019/12/21/importas/</guid><description>&lt;p>&lt;a href="https://qiita.com/advent-calendar/2019/rlang">Rアドベントカレンダー&lt;/a>、12/21の記事です。
Rmd関連のつもりでしたが、時間がないので、最近作った&lt;strong>importas&lt;/strong>パッケージのネタに走ることにしました。&lt;/p>
&lt;p>&lt;strong>importas&lt;/strong>パッケージでは、Pythonにおける&lt;code>import numpy as np&lt;/code>みたいなことが、Rでできるようになります。
Pythonではimportしたライブラリにドットを繋ぐ形で、関数の呼び出しを行います（例えば&lt;code>np.mean&lt;/code>）。同様に、&lt;strong>importas&lt;/strong>パッケージでは&lt;code>ggplot2 %as% gg&lt;/code>などとパッケージ名を省略し、&lt;code>$&lt;/code>演算子を用いて関数を呼び出します（例えば&lt;code>gg$ggplot&lt;/code>）。&lt;/p></description></item><item><title>tidymodelsでもxgboostを解釈したい</title><link>https://blog.atusy.net/2019/10/29/interpret-tidymodels/</link><pubDate>Tue, 29 Oct 2019 00:00:00 +0000</pubDate><guid>https://blog.atusy.net/2019/10/29/interpret-tidymodels/</guid><description>&lt;div id="TOC">
&lt;ul>
&lt;li>&lt;a href="#はじめに">はじめに&lt;/a>&lt;/li>
&lt;li>&lt;a href="#xgboostによる学習">XGBoostによる学習&lt;/a>&lt;/li>
&lt;li>&lt;a href="#variable-importance-plot-vip">Variable Importance Plot (VIP)&lt;/a>&lt;/li>
&lt;li>&lt;a href="#partial-dependence-plot-pdp">Partial Dependence Plot (PDP)&lt;/a>&lt;/li>
&lt;li>&lt;a href="#可視化で得られた考察を反映する">可視化で得られた考察を反映する&lt;/a>&lt;/li>
&lt;/ul>
&lt;/div>

&lt;div id="はじめに" class="section level1">
&lt;h1>はじめに&lt;/h1>
&lt;p>tidymodelsに属するparsnipパッケージを用いて機械学習を行った場合、大本のパッケージで学習した場合と異なる構造のオブジェクトが返ります。例えば&lt;code>xgboost::xgboost&lt;/code>関数で学習した結果は&lt;code>xgb.Booster&lt;/code>クラスを持つオブジェクトです。一方で&lt;code>parsnip::fit&lt;/code>関数を用いてXGBoostの学習を行った結果は、&lt;code>_xgb.Booster&lt;/code>クラスと&lt;code>model_fit&lt;/code>クラスを持つオブジェクトです。&lt;/p></description></item><item><title>Rで作る対称コルーチン</title><link>https://blog.atusy.net/2019/10/03/symmetric-coroutine/</link><pubDate>Thu, 03 Oct 2019 00:00:00 +0000</pubDate><guid>https://blog.atusy.net/2019/10/03/symmetric-coroutine/</guid><description>&lt;p>&lt;a href="https://www.lambdanote.com/products/nmonthly-vol-1-no-1-2019">n月刊ラムダノート Vol.1&lt;/a>の『「コルーチン」とは何だったのか』を読んでいる。せっかくなので勉強がてら、Rでコルーチンを実装してみることにした。今回は元祖コルーチンとして紹介されている対称コルーチンを扱う。&lt;/p></description></item><item><title>lemon パッケージで facet した ggplot2 に軸を表示する</title><link>https://blog.atusy.net/2019/08/18/lemon-facet-rep/</link><pubDate>Sun, 18 Aug 2019 00:00:00 +0000</pubDate><guid>https://blog.atusy.net/2019/08/18/lemon-facet-rep/</guid><description>&lt;img src="../post/2019-08-18-lemon-facet-rep_files/figure-html/lemon-classic-1.png"></description></item><item><title>R Markdown で coord_fixed な ggplot2 の余白を取り除く</title><link>https://blog.atusy.net/2019/08/12/rmd-fig-crop-margin/</link><pubDate>Mon, 12 Aug 2019 00:00:00 +0000</pubDate><guid>https://blog.atusy.net/2019/08/12/rmd-fig-crop-margin/</guid><description>&lt;p>不要な余白 (黒色部) ができてしまう時は、チャンクオプションの &lt;code>fig.process&lt;/code> に画像処理を行う関数を指定しよう。&lt;/p>
&lt;p>&lt;img src="../post/2019-08-12-rmd-fig-crop-margin_files/figure-html/plot-1.png">&lt;/p></description></item><item><title>Rmd + Revealjs で簡単に印刷もできる2カラムレイアウトを実現する (inline-block)</title><link>https://blog.atusy.net/2019/08/11/revealjs-2col-inline-block/</link><pubDate>Sun, 11 Aug 2019 00:00:00 +0000</pubDate><guid>https://blog.atusy.net/2019/08/11/revealjs-2col-inline-block/</guid><description>&lt;div id="TOC">
&lt;ul>
&lt;li>&lt;a href="#section">出力例&lt;/a>&lt;/li>
&lt;li>&lt;a href="#section-1">実装&lt;/a>&lt;ul>
&lt;li>&lt;a href="#css">CSS&lt;/a>&lt;ul>
&lt;li>&lt;a href="#yaml-">YAML フロントマター&lt;/a>&lt;/li>
&lt;li>&lt;a href="#css-">CSS チャンク&lt;/a>&lt;/li>
&lt;/ul>&lt;/li>
&lt;li>&lt;a href="#section-2">マークダウン記法&lt;/a>&lt;/li>
&lt;/ul>&lt;/li>
&lt;li>&lt;a href="#rmd-">Rmd 例&lt;/a>&lt;/li>
&lt;li>&lt;a href="#enjoy">Enjoy!&lt;/a>&lt;/li>
&lt;/ul>
&lt;/div>

&lt;style type="text/css">
.col {
 display: inline-block;
 width: 48%;
 vertical-align: top;
}
&lt;/style>
&lt;p>R Markdown で Reveal.js を使ったスライド作りをする時、時々欲しくなるのが、2カラムレイアウトだ。&lt;/p></description></item><item><title>Shiny で動的に図の数を変更する</title><link>https://blog.atusy.net/2019/08/09/shiny-dynamic-numer-of-plots/</link><pubDate>Fri, 09 Aug 2019 00:00:00 +0000</pubDate><guid>https://blog.atusy.net/2019/08/09/shiny-dynamic-numer-of-plots/</guid><description>&lt;img src="../images/posts/2019-08-09-shiny-dynamic-number-of-plots/shiny.gif"></description></item><item><title>Shiny でプロットを click したり brush したりした時に得られるデータまとめ</title><link>https://blog.atusy.net/2019/08/07/shiny-clickopts/</link><pubDate>Wed, 07 Aug 2019 00:00:00 +0000</pubDate><guid>https://blog.atusy.net/2019/08/07/shiny-clickopts/</guid><description>&lt;style type="text/css">
tr:nth-child(even) {
 background: #eee;
}
&lt;/style>
&lt;p>Shiny では &lt;code>plotOutput&lt;/code> の &lt;code>click&lt;/code>, &lt;code>dblclick&lt;/code>, &lt;code>hover&lt;/code>, &lt;code>brush&lt;/code> 引数を利用することで，プロットした画像からマウス操作で座標情報などを取得できる．&lt;/p>
&lt;p>この時得られるデータがドキュメントされていなかったので調査した．&lt;/p></description></item><item><title>Shiny でマウスの位置に応じてプロットにツールチップを表示する</title><link>https://blog.atusy.net/2019/08/06/shiny-hover-tooltip/</link><pubDate>Tue, 06 Aug 2019 00:00:00 +0000</pubDate><guid>https://blog.atusy.net/2019/08/06/shiny-hover-tooltip/</guid><description>Shiny でプロットにツールチップを表示させる一番簡単な方法は plotly を使うことだろうが，Shiny だけで頑張ってしまうと柔軟でいい．&lt;br>
&lt;img src="../images/posts/2019-08-06-shiny-hover-tooltip/plot.gif"></description></item><item><title>Shiny で input の変更が反映されるまでの時間を調整する (debounce / throttle)</title><link>https://blog.atusy.net/2019/08/04/shiny-throttle-and-debounce/</link><pubDate>Sun, 04 Aug 2019 00:00:00 +0000</pubDate><guid>https://blog.atusy.net/2019/08/04/shiny-throttle-and-debounce/</guid><description>&lt;p>入力から一定時間の経過を待ってプログラムを実行するには &lt;code>debounce&lt;/code> や &lt;code>throttle&lt;/code> を使う．&lt;/p>
&lt;p>&lt;img src="../images/posts/2019-08-04-shiny-debounce-and-throttle/numericInput.gif">&lt;/p></description></item><item><title>DT::datatable の行番号を並べ変え可能にする (Shiny / 非Shiny)</title><link>https://blog.atusy.net/2019/08/03/dt-ordered-by-row-numbers/</link><pubDate>Sat, 03 Aug 2019 00:00:00 +0000</pubDate><guid>https://blog.atusy.net/2019/08/03/dt-ordered-by-row-numbers/</guid><description>&lt;div id="TOC">
&lt;ul>
&lt;li>&lt;a href="#dtdatatable-">DT::datatable とは&lt;/a>&lt;/li>
&lt;li>&lt;a href="#section">行名 (行番号) で並べ変える&lt;/a>&lt;ul>
&lt;li>&lt;a href="#shiny">非 shiny&lt;/a>&lt;/li>
&lt;li>&lt;a href="#shiny-1">shiny&lt;/a>&lt;ul>
&lt;li>&lt;a href="#renderdtserver-false-">renderDT(server = FALSE) にする&lt;/a>&lt;/li>
&lt;li>&lt;a href="#section-1">行番号相当の列を用意する&lt;/a>&lt;/li>
&lt;/ul>&lt;/li>
&lt;/ul>&lt;/li>
&lt;li>&lt;a href="#enjoy">Enjoy!&lt;/a>&lt;/li>
&lt;/ul>
&lt;/div>

&lt;div id="dtdatatable-" class="section level1">
&lt;h1>DT::datatable とは&lt;/h1>
&lt;p>&lt;code>DT::datatable&lt;/code> は jQuery 用の DataTables プラグインを R で使うための関数だ．これに &lt;code>iris&lt;/code> などのデータフレームを与えると，対話的な表を簡単に作れる．&lt;/p></description></item><item><title>Shiny でプロットの高さをブラウザ画面のサイズに合わせて変更する</title><link>https://blog.atusy.net/2019/08/01/shiny-plot-height/</link><pubDate>Thu, 01 Aug 2019 00:00:00 +0000</pubDate><guid>https://blog.atusy.net/2019/08/01/shiny-plot-height/</guid><description>&lt;img src="../images/posts/2019-08-01-shiny-plot-height/plot-full-height.gif"></description></item><item><title>Shiny で表示タブを変更するリンクを貼る</title><link>https://blog.atusy.net/2019/07/31/shiny-show-tab/</link><pubDate>Wed, 31 Jul 2019 00:00:00 +0000</pubDate><guid>https://blog.atusy.net/2019/07/31/shiny-show-tab/</guid><description>&lt;img src="../images/posts/2019-07-31-shiny-show-tab/tabset.gif"></description></item><item><title>R Markdown でコードの折り畳みをチャンクごとに選択可能にした (rmarkdown 1.15)</title><link>https://blog.atusy.net/2019/07/24/rmd-1-15-gh/</link><pubDate>Wed, 24 Jul 2019 00:00:00 +0000</pubDate><guid>https://blog.atusy.net/2019/07/24/rmd-1-15-gh/</guid><description>&lt;p>&lt;code>html_document&lt;/code> ではコードの折り畳みができる．使い方は簡単で，YAMLフロントマターにて &lt;code>code_folding&lt;/code> を指定するだけだ&lt;a href="#fn1" class="footnote-ref" id="fnref1">&lt;sup>1&lt;/sup>&lt;/a>．&lt;/p>
&lt;ul>
&lt;li>&lt;code>none&lt;/code>: &lt;code>code_folding&lt;/code> を無効化する．&lt;/li>
&lt;li>&lt;code>show&lt;/code>: デフォルトで全て表示する．&lt;/li>
&lt;li>&lt;code>hide&lt;/code>: デフォルトで全て非表示にする．&lt;/li>
&lt;/ul>
&lt;p>&lt;code>show&lt;/code>・&lt;code>hide&lt;/code>の場合は，後からソースコードごとにボタンで表示を切り替えることができる．&lt;/p></description></item><item><title>bookdown のコミッタになったのでこれまでの貢献を振り返る</title><link>https://blog.atusy.net/2019/07/07/bookdown-committer/</link><pubDate>Sun, 07 Jul 2019 00:00:00 +0000</pubDate><guid>https://blog.atusy.net/2019/07/07/bookdown-committer/</guid><description>&lt;p>bookdown のコミッタになった．ほんまにええんかいなと思いつつ，貢献を続けていく上で励みになるので，ありがたく頂戴した次第．&lt;/p>
&lt;p>私が過去に出した PR が Pandoc の仕様変更に巻き込まれたので，どうするか相談していたところ，&lt;/p></description></item><item><title>Tidyr 1.0.0 で追加される pack を使えば見せる用の表が簡単に作れるかも</title><link>https://blog.atusy.net/2019/07/07/application-of-pack/</link><pubDate>Sun, 07 Jul 2019 00:00:00 +0000</pubDate><guid>https://blog.atusy.net/2019/07/07/application-of-pack/</guid><description>&lt;img src="../images/posts/2019-07-07-application-of-pack/iris-gt.png"></description></item><item><title>knitr はチャンクが掃き出すコードブロックにもっとクラス属性を与えるべきと思ったが PR を断念した</title><link>https://blog.atusy.net/2019/07/05/gave-up-pr-to-knitr/</link><pubDate>Fri, 05 Jul 2019 00:00:00 +0000</pubDate><guid>https://blog.atusy.net/2019/07/05/gave-up-pr-to-knitr/</guid><description>&lt;p>R Markdown ではチャンクオプションを利用して，ソースコード，出力，メッセージ，警告，エラーに対して，クラス属性などを付与できる．&lt;/p>
&lt;p>だったら最初から &lt;code>chunk-source&lt;/code>, &lt;code>chunk-output&lt;/code>, …って感じのクラス持たせておいた方がよくない？って思った．&lt;/p></description></item><item><title>Pandoc 2.7.3 を使うと bookdown におけるコードブロックの行番号がちょっと楽になりそう</title><link>https://blog.atusy.net/2019/07/03/rmd-line-num-in-pandoc-2-7-3/</link><pubDate>Wed, 03 Jul 2019 00:00:00 +0000</pubDate><guid>https://blog.atusy.net/2019/07/03/rmd-line-num-in-pandoc-2-7-3/</guid><description>Pandoc 2.7.3 を使うと bookdown におけるコードブロックの行番号がちょっと楽になりそうな一方で問題もあるのでメモ．bookdown に依存している pagedown や blogdown も関係しうる．</description></item><item><title>R Markdown + Honoka の実用化は険しい</title><link>https://blog.atusy.net/2019/07/03/honokadown/</link><pubDate>Wed, 03 Jul 2019 00:00:00 +0000</pubDate><guid>https://blog.atusy.net/2019/07/03/honokadown/</guid><description>&lt;code>rmarkdown::html_document&lt;/code> に Honoka という 日本語表示を最適化した Bootstrap テーマをあてたかった． 今のところ，まともに使おうとすると本家と Honoka の &lt;code>bootstrap.min.css&lt;/code> を両方取り込むことになって非効率．</description></item><item><title>雑訳vignette: Pivoting (tidyr 1.0.0)</title><link>https://blog.atusy.net/2019/06/29/pivoting-tidyr-1-0-0/</link><pubDate>Sat, 29 Jun 2019 00:00:00 +0000</pubDate><guid>https://blog.atusy.net/2019/06/29/pivoting-tidyr-1-0-0/</guid><description>tiydr 1.0.0 で追加される pivot_longer() と pivot_wider() の使い方を紹介する vignette の雑な訳</description></item><item><title>CRAN にパッケージを初投稿する手順</title><link>https://blog.atusy.net/2019/06/28/cran-submission/</link><pubDate>Fri, 28 Jun 2019 00:00:00 +0000</pubDate><guid>https://blog.atusy.net/2019/06/28/cran-submission/</guid><description>R のヘルプをもっと便利にする &lt;a href="https://felp.atusy.net">felp&lt;/a> パッケージが CRAN&lt;br>
からリリースされた．この経験を踏まえ，CRAN 投稿を初挑戦する人向けの情報を纏めた．</description></item><item><title>dplyr::mutate_all と purrr::modify の比較</title><link>https://blog.atusy.net/2019/06/13/mutate-all-vs-modify/</link><pubDate>Thu, 13 Jun 2019 00:00:00 +0000</pubDate><guid>https://blog.atusy.net/2019/06/13/mutate-all-vs-modify/</guid><description>&lt;p>&lt;code>dplyr::mutate_all&lt;/code> はデータフレーム中の各変数 (列) に対して関数を適用する。&lt;/p>
&lt;p>&lt;code>purrr::modify&lt;/code> はリストライクなオブジェクトの各要素に対して関数を適用するが、返り値は入力したオブジェクトと同じクラスになる。このため、データフレームを入力するとデータフレームを返すので、 &lt;code>dplyr::mutate_all&lt;/code> のように振る舞うことができる。&lt;/p></description></item><item><title>行列を行/列ごとのリストに変換する関数の紹介とベンチマーク (base::asplit, purrr::array_tree, purrr::array_branch)</title><link>https://blog.atusy.net/2019/06/01/asplit-r-3-6-0/</link><pubDate>Sat, 01 Jun 2019 00:00:00 +0000</pubDate><guid>https://blog.atusy.net/2019/06/01/asplit-r-3-6-0/</guid><description>&lt;div id="TOC">
&lt;ul>
&lt;li>&lt;a href="#base">base&lt;/a>&lt;ul>
&lt;li>&lt;a href="#asplit">asplit&lt;/a>&lt;ul>
&lt;li>&lt;a href="#asplit-1">asplit(行列)&lt;/a>&lt;/li>
&lt;li>&lt;a href="#asplit-2">asplit(配列)&lt;/a>&lt;/li>
&lt;/ul>&lt;/li>
&lt;/ul>&lt;/li>
&lt;li>&lt;a href="#purrr">purrr&lt;/a>&lt;ul>
&lt;li>&lt;a href="#array_tree">array_tree&lt;/a>&lt;ul>
&lt;li>&lt;a href="#array_tree-1">array_tree(行列)&lt;/a>&lt;/li>
&lt;li>&lt;a href="#array_branch">array_branch(配列)&lt;/a>&lt;/li>
&lt;li>&lt;a href="#array_tree-2">array_tree(ベクトル)&lt;/a>&lt;/li>
&lt;/ul>&lt;/li>
&lt;li>&lt;a href="#array_branch-1">array_branch&lt;/a>&lt;/li>
&lt;/ul>&lt;/li>
&lt;li>&lt;a href="#section">ベンチマーク&lt;/a>&lt;/li>
&lt;/ul>
&lt;/div>

&lt;p>R 3.6.0 では行列や配列を &lt;code>MARGIN&lt;/code> に応じたリストに分割する &lt;code>asplit&lt;/code> 関数が追加された．既に purrr パッケージが同様の機能として &lt;code>array_tree&lt;/code> や &lt;code>array_branch&lt;/code> を実装していたので，挙動とベンチマーク結果を比較してみる．&lt;/p></description></item><item><title>Ghostscript (> 9.15) を使って PDF 中の文字列をアウトライン化する</title><link>https://blog.atusy.net/2019/05/23/outline-pdf-glyphs-by-gs/</link><pubDate>Thu, 23 May 2019 00:00:00 +0000</pubDate><guid>https://blog.atusy.net/2019/05/23/outline-pdf-glyphs-by-gs/</guid><description>&lt;p>HTML + CSS で作ったポスターをちゃんと印刷したくて調べたメモ．&lt;/p>
&lt;p>どうやら Ghostscript (&amp;gt; 9.15) で以下のような呪文を唱えればいいようだ．&lt;/p>
&lt;pre>&lt;code>gs -o output.pdf -dNoOutputFonts -sDEVICE=pdfwrite input.pdf&lt;/code>&lt;/pre>
&lt;p>手元で試した分にはうまくいってそう (gs 9.27-1)．&lt;/p></description></item><item><title>R Markdown でコードブロックに行番号を表示する 〜最終章〜</title><link>https://blog.atusy.net/2019/05/19/rmd-line-num-pr/</link><pubDate>Sun, 19 May 2019 00:00:00 +0000</pubDate><guid>https://blog.atusy.net/2019/05/19/rmd-line-num-pr/</guid><description>Rmd で様々な HTMLフォーマット に出力した時にコードブロックに行番号を表示する機能 +α を PR したので使い方の紹介と PR の記録，</description></item><item><title>RStudio 1.2.x では install.packages する時にパッケージ名を補完してくれる</title><link>https://blog.atusy.net/2019/05/18/auto-complete-when-install-package/</link><pubDate>Sat, 18 May 2019 00:00:00 +0000</pubDate><guid>https://blog.atusy.net/2019/05/18/auto-complete-when-install-package/</guid><description>&lt;p>&lt;a href="//www.rstudio.com/products/rstudio/release-notes/">リリースノート&lt;/a>にも載っていない RStudio 1.2.x の世界&lt;/p>
&lt;blockquote>
&lt;p>ん？install.packagesするとき、ライブラリ名が補完される・・・？？？&lt;/p>
&lt;/blockquote>
&lt;p>という &lt;a href="//twitter.com/niszet0">@niszet0&lt;/a> 氏の &lt;a href="https://x.com/niszet0/status/1129251313668173827">投稿&lt;/a> を発端に確認．&lt;/p>
&lt;p>なぜか私が纏めることに．&lt;/p>
&lt;p>&lt;img src="images/2019-05-18-install-packages-by-rstudio-1-2.gif" />&lt;/p>
&lt;p>上の画像のように，パッケージ名を引用符で&lt;strong>囲わずに&lt;/strong>入力し始め，tab キーを押すと幸せになれる．&lt;/p></description></item><item><title>R Markdown + XeLaTeX で日本語含め好きなフォントを使って PDF を出力する</title><link>https://blog.atusy.net/2019/05/14/rmd2pdf-any-font/</link><pubDate>Tue, 14 May 2019 00:00:00 +0000</pubDate><guid>https://blog.atusy.net/2019/05/14/rmd2pdf-any-font/</guid><description>&lt;p>これまでに度々 Rmd で日本語 PDF を出力する系の記事を書いてきました．&lt;/p>
&lt;ul>
&lt;li>RMarkdown + XeLaTeX + Noto フォントで日本語 PDF を出力する&lt;br />
&lt;a href="https://blog.atusy.net/2019/04/29/notocjkjp-on-rmd/" class="uri">https://blog.atusy.net/2019/04/29/notocjkjp-on-rmd/&lt;/a>&lt;/li>
&lt;li>Rmarkdownで日本語PDFを出力する&lt;br />
&lt;a href="https://qiita.com/Atsushi776/items/9ef1e5d744e2b91c61eej" class="uri">https://qiita.com/Atsushi776/items/9ef1e5d744e2b91c61eej&lt;/a>&lt;/li>
&lt;/ul>
&lt;p>両記事は共に IPA(ex) フォントを使ってきました．&lt;/p></description></item><item><title>knitr をフォークする時は knitr-examples もフォークした方がいい</title><link>https://blog.atusy.net/2019/05/13/forking-knitr/</link><pubDate>Mon, 13 May 2019 00:00:00 +0000</pubDate><guid>https://blog.atusy.net/2019/05/13/forking-knitr/</guid><description>&lt;p>R Markdown のコードブロックで行番号を便利に使えるよう，関連パッケージに働きかけています．&lt;/p>
&lt;ul>
&lt;li>&lt;code>bookdown::html_document2&lt;/code> に &lt;code>clean_highlight_tags&lt;/code> を追加
(&lt;a href="https://github.com/rstudio/bookdown/pull/706">#706&lt;/a>; merged)&lt;/li>
&lt;li>&lt;code>pagedown&lt;/code> の &lt;code>default.css&lt;/code> を編集して出力の見た目を修正
(&lt;a href="https://github.com/rstudio/pagedown/pull/100">#100&lt;/a>; approved)&lt;/li>
&lt;li>&lt;code>knitr&lt;/code> のコードブロックに Pandoc の
&lt;a href="https://www.pandoc.org/MANUAL.html#fenced-code-blocks">fenced code attributes&lt;/a>
をフルサポートさせる
(&lt;a href="https://github.com/yihui/knitr/pull/1710">#1710&lt;/a>)&lt;/li>
&lt;/ul>
&lt;p>詳細は全てがマージされたら報告しようかなと．&lt;/p></description></item><item><title>Hugo テーマを更新して UX 向上を狙ってみた</title><link>https://blog.atusy.net/2019/05/11/simplified-hugo-bootstrap/</link><pubDate>Sat, 11 May 2019 00:00:00 +0000</pubDate><guid>https://blog.atusy.net/2019/05/11/simplified-hugo-bootstrap/</guid><description>&lt;p>当 blog は 静的サイトジェネレータの Hugo によって運用している．&lt;/p>
&lt;p>テーマは長らく &lt;a href="//github.com/Xzya/hugo-bootstrap">Xzya/hugo-bootstrap&lt;/a> だ&lt;br>
(&lt;a href="//themes.gohugo.io/theme/hugo-bootstrap">デモサイト&lt;/a>)．&lt;/p>
&lt;p>しかし，目立つ青が随所に散らばるテーマであることなど，イマイチ読み難いように感じていた．&lt;/p></description></item><item><title>Hugo で KaTeX</title><link>https://blog.atusy.net/2019/05/09/katex-in-hugo/</link><pubDate>Thu, 09 May 2019 19:00:00 +0000</pubDate><guid>https://blog.atusy.net/2019/05/09/katex-in-hugo/</guid><description>MathJax より軽量で高速な KaTeX に乗り換えた</description></item><item><title>Hugo (blogdown) で MathJax</title><link>https://blog.atusy.net/2019/05/09/how2mathjax/</link><pubDate>Thu, 09 May 2019 18:00:00 +0000</pubDate><guid>https://blog.atusy.net/2019/05/09/how2mathjax/</guid><description>Hugo (blogdown) で MathJax を利用する方法を紹介．ただし，2019-05-09 以降は KaTeX を採用しているため，数式のレンダリングは KaTeX によるもの．</description></item><item><title>RMarkdown + XeLaTeX + Noto フォントで日本語 PDF を出力する</title><link>https://blog.atusy.net/2019/04/29/notocjkjp-on-rmd/</link><pubDate>Mon, 29 Apr 2019 00:00:00 +0000</pubDate><guid>https://blog.atusy.net/2019/04/29/notocjkjp-on-rmd/</guid><description>&lt;div id="section" class="section level1">
&lt;h1>はじめに&lt;/h1>
&lt;p>過去に 「&lt;a href="//qiita.com/Atsushi776/items/9ef1e5d744e2b91c61ee">Rmarkdownで日本語PDFを出力する&lt;/a>」という記事を書いた．&lt;/p>
&lt;p>ここでは以下のような YAML フロントマターを用いて， IPA フォントによる日本語 PDF を出力した．&lt;/p>
&lt;pre class=".yaml">&lt;code>---
output:
 pdf_document: 
 latex_engine: xelatex 
header-includes: 
 - \usepackage{bookmark} 
 - \usepackage{xltxtra} 
 - \usepackage{zxjatype} 
 - \usepackage[ipa]{zxjafont} 
---&lt;/code>&lt;/pre>
&lt;p>&lt;code>\usepackage[ipa]{zxjafont}&lt;/code> という部分で IPA フォントを指定しているが，ここには他のフォントも指定できる&lt;a href="#fn1" class="footnote-ref" id="fnref1">&lt;sup>1&lt;/sup>&lt;/a>．&lt;/p></description></item><item><title>rocker/verse でも Rmd → PDF 時に必要なパッケージが自動インストールできるようになった</title><link>https://blog.atusy.net/2019/04/27/tlmgr-install-on-rocker/</link><pubDate>Sat, 27 Apr 2019 00:00:00 +0000</pubDate><guid>https://blog.atusy.net/2019/04/27/tlmgr-install-on-rocker/</guid><description>rocker/verse における Tex Live 関連の権限が更新され， &lt;code>tlmgr install&lt;/code> や Rmd → PDF 時に必要なパッケージの自動インストールが可能になった．Dockerfile 編集時には注意点あり．</description></item><item><title>highlightjs と highlightjs-line-numbers プラグインで Rmarkdown のコードブロックに行番号をつける</title><link>https://blog.atusy.net/2019/04/22/rmd-line-num-with-highlightjs/</link><pubDate>Mon, 22 Apr 2019 00:00:00 +0000</pubDate><guid>https://blog.atusy.net/2019/04/22/rmd-line-num-with-highlightjs/</guid><description>&lt;code>highlightjs&lt;/code> と &lt;code>highlightjs-line-numbers&lt;/code> プラグインによって， 様々な html フォーマットにおいてコードブロックに番号付けできるようにする方法を紹介する． &lt;br>
&lt;img src="../images/covers/rmd-line-num-with-highlightjs.png"></description></item><item><title>Rmarkdown でチャンクとその出力に行番号を付ける</title><link>https://blog.atusy.net/2019/04/18/rmd-line-num/</link><pubDate>Thu, 18 Apr 2019 00:00:00 +0000</pubDate><guid>https://blog.atusy.net/2019/04/18/rmd-line-num/</guid><description>&lt;code>html_document&lt;/code> と &lt;code>pdf_document&lt;/code> でチャンクとその出力に行番号を付ける方法が判ったので，紹介します．出力例と詳解は&lt;a href="../submodules/rmd-line-num/index.html">英語版&lt;/a>をご覧下さい． &lt;br>
&lt;img src="../images/covers/rmd-line-num.png"></description></item><item><title>rocker で使える便利コマンド install2.r とその仲間たち powered by littler</title><link>https://blog.atusy.net/2019/04/16/littler-on-rocker/</link><pubDate>Tue, 16 Apr 2019 00:00:00 +0000</pubDate><guid>https://blog.atusy.net/2019/04/16/littler-on-rocker/</guid><description>rocker で使える &lt;code>install2.r&lt;/code> や &lt;code>installGithub.r&lt;/code> は，シェル上から CRAN や GitHub 上の R パッケージをインストールするコマンドです．これらの正体や TIP を纏めました．</description></item><item><title>xonsh 始めました + xonshrc 弄って oh-my-fish/yimmy inspired な見た目にする</title><link>https://blog.atusy.net/2019/04/14/xonsh-debut/</link><pubDate>Sun, 14 Apr 2019 00:00:00 +0000</pubDate><guid>https://blog.atusy.net/2019/04/14/xonsh-debut/</guid><description>Python が動いちゃうシェルこと xonsh を導入しました．早速最低限の設定としてばんくし氏の xonshrc を撮み食いしつつ，Look &amp;amp; Feel を oh-my-fish/theme-yimmy inspired なものにしました．</description></item><item><title>ggplot2 をもっとカンタンに plotly 化する</title><link>https://blog.atusy.net/2019/03/22/ggplotly-asif-layer/</link><pubDate>Fri, 22 Mar 2019 00:00:00 +0000</pubDate><guid>https://blog.atusy.net/2019/03/22/ggplotly-asif-layer/</guid><description>&lt;code>ggplot(mtcars, aes(wt, mpg)) + geom_point() + gginteractive()&lt;/code> といった感じで，ggplot に優しい文法で ggplot を plotly 化できるようにしてみました．gghighlight との組み合わせも便利です．</description></item><item><title>CNAME ファイルだけで GitHub pages から301リダイレクトする</title><link>https://blog.atusy.net/2019/03/11/use-cname-to-redirect-from-gh-pages/</link><pubDate>Mon, 11 Mar 2019 00:00:00 +0000</pubDate><guid>https://blog.atusy.net/2019/03/11/use-cname-to-redirect-from-gh-pages/</guid><description>GitHub pages を利用していたレポジトリに転送先のドメインを記述したファイルを作成すると user.github.io/repository/* へのアクセスが指定したドメインに転送されるようになります．</description></item><item><title>git でプレゼン資料を纏めるなら各資料は submodule 化しとくとよさげ</title><link>https://blog.atusy.net/2019/02/14/submodulize-presentations/</link><pubDate>Thu, 14 Feb 2019 00:00:00 +0000</pubDate><guid>https://blog.atusy.net/2019/02/14/submodulize-presentations/</guid><description>&lt;p>私はプレゼン資料を &lt;a href="https://github.com/atusy/presentation">atusy/presentation&lt;/a> に纏めて公開している．&lt;/p>
&lt;p>プレゼンの機会なんて無制限にあるので色々面倒が生じる気がしてきた．&lt;/p>
&lt;h2 id="資料ごとに-git-log-を分けたい">資料ごとに git log を分けたい&lt;/h2>
&lt;p>submodule ならできる&lt;/p>
&lt;h2 id="振り返る気のない資料は適宜-local-から消したい">振り返る気のない資料は適宜 local から消したい&lt;/h2>
&lt;p>ディスク容量節約&lt;/p></description></item><item><title>RStudio daily builds な rocker/verse をビルド時間短かめに作る</title><link>https://blog.atusy.net/2019/02/12/dockerfile-rocker-verse-daily/</link><pubDate>Tue, 12 Feb 2019 00:00:00 +0000</pubDate><guid>https://blog.atusy.net/2019/02/12/dockerfile-rocker-verse-daily/</guid><description>&lt;p>&lt;strong>※&lt;/strong>&lt;br>
&lt;strong>この記事は元々，Rstudio 1.2.x preview版を利用したい人向けの記事でした.&lt;/strong> &lt;br>
&lt;strong>2019-04-08 に Rstudio 1.2.1335 が正式リリースされたので，&lt;/strong> &lt;br>
&lt;strong>daily builds を使いたい人向けに改題しました．&lt;/strong>&lt;/p></description></item><item><title>hugo_bootstrap のサイドバーにシェアボタンを追加</title><link>https://blog.atusy.net/2019/02/08/sns-buttons/</link><pubDate>Fri, 08 Feb 2019 00:00:00 +0000</pubDate><guid>https://blog.atusy.net/2019/02/08/sns-buttons/</guid><description>やっぱり Share ボタンは欲しいよねということで雑に実装した．</description></item><item><title>専用パッケージを導入せず GitHub 上の R パッケージをインストールする</title><link>https://blog.atusy.net/2019/02/07/stand-alone-remotes-install-github/</link><pubDate>Thu, 07 Feb 2019 00:00:00 +0000</pubDate><guid>https://blog.atusy.net/2019/02/07/stand-alone-remotes-install-github/</guid><description>&lt;h1 id="tldr">TL;DR&lt;/h1>
&lt;p>GitHub上の R パッケージのインストールは以下のようにコマンド一発でできる．&lt;br>
ブランチの指定や &lt;code>force = TRUE&lt;/code> による強制インストールなどいろいろできる．&lt;/p></description></item><item><title>pkgdown で作った Webサイトを引越ししたら algolia/docsearch-configs に設定変更を PR しよう</title><link>https://blog.atusy.net/2019/01/25/url-change-for-algolia/</link><pubDate>Fri, 25 Jan 2019 00:00:00 +0000</pubDate><guid>https://blog.atusy.net/2019/01/25/url-change-for-algolia/</guid><description>&lt;p>docsearch を利用すると，pkgdown で作ったページの全文検索機能を簡単に設定できる (&lt;a href="https://pkgdown.r-lib.org/articles/pkgdown.html#search">https://pkgdown.r-lib.org/articles/pkgdown.html#search&lt;/a>)．&lt;/p>
&lt;p>先日 pkgdown サイトの URL を qntmap.atusy.net に変更したので，algolia も変えなきゃと思って改めて新規申し込みしてしまった．&lt;/p></description></item><item><title>Warnning: newer than the core を放置せずに pacman -Syuu しとこう (Manjaro linux)</title><link>https://blog.atusy.net/2019/01/24/pacman-syuu-when-pkg-is-newer-than-core/</link><pubDate>Thu, 24 Jan 2019 00:00:00 +0000</pubDate><guid>https://blog.atusy.net/2019/01/24/pacman-syuu-when-pkg-is-newer-than-core/</guid><description>&lt;p>&lt;code>pacman -Syu&lt;/code> でアップグレードした際に，&lt;code>Warnning: newer than the core&lt;/code>といった警告が出ることがあります．&lt;/p>
&lt;p>特に systemd などシステムに深く関連するパッケージが警告を貼っする時は &lt;code>pacman -Syuu&lt;/code> して新しすぎるパッケージをダウングレードしましょう．&lt;/p></description></item><item><title>GitHub pages から Netlify に移行 + 独自ドメイン化</title><link>https://blog.atusy.net/2019/01/23/test-netlify/</link><pubDate>Wed, 23 Jan 2019 00:00:00 +0000</pubDate><guid>https://blog.atusy.net/2019/01/23/test-netlify/</guid><description>&lt;p>これまで blog を GitHub pages 上で公開してきたが，思い立って独自ドメインで Netlify に移行した．&lt;/p>
&lt;p>移行のメリットは &lt;a href="https://bookdown.org/yihui/blogdown/netlify.html#fn34">Yi Hui が語っている&lt;/a>けれど，以下に自分にとっての理由と手順の概略を書き留めておく．&lt;/p></description></item><item><title>べき演算のベンチマーク</title><link>https://blog.atusy.net/2019/01/22/power-calc-bench/</link><pubDate>Tue, 22 Jan 2019 00:00:00 +0000</pubDate><guid>https://blog.atusy.net/2019/01/22/power-calc-bench/</guid><description>&lt;div id="TOC">
&lt;ul>
&lt;li>&lt;a href="#section">確認のための準備&lt;/a>&lt;/li>
&lt;li>&lt;a href="#benchmark">bench::mark&lt;/a>&lt;/li>
&lt;li>&lt;a href="#benchpress">bench::press&lt;/a>&lt;ul>
&lt;li>&lt;a href="#section-1">手動ベンチプレス&lt;/a>&lt;ul>
&lt;li>&lt;a href="#section-2">100乗: * の負け&lt;/a>&lt;/li>
&lt;li>&lt;a href="#section-3">90乗: * の勝ち&lt;/a>&lt;/li>
&lt;li>&lt;a href="#section-4">1000乗: 工夫すれば * も勝てる&lt;/a>&lt;/li>
&lt;/ul>&lt;/li>
&lt;li>&lt;a href="#section-5">ベクトルを長くしてみる @ 90乗: * が勝てる&lt;/a>&lt;/li>
&lt;li>&lt;a href="#section-6">ベクトルを短かくしてみる @ 90乗: : * が負ける&lt;/a>&lt;/li>
&lt;li>&lt;a href="#section-7">底をデカくしてみる @ 90乗: * が勝つ&lt;/a>&lt;/li>
&lt;/ul>&lt;/li>
&lt;li>&lt;a href="#enjoy">Enjoy&lt;/a>&lt;/li>
&lt;/ul>
&lt;/div>

&lt;p>べき演算をするには &lt;code>^&lt;/code> を使うか &lt;code>*&lt;/code> を使えばいいけれど，条件次第ではなんと &lt;code>*&lt;/code> が勝つらしいことが分かった．&lt;/p></description></item><item><title>ggplot で scale = free な facet の軸を調整する</title><link>https://blog.atusy.net/2019/01/20/control-axes-in-faceted-plots/</link><pubDate>Sun, 20 Jan 2019 00:00:00 +0000</pubDate><guid>https://blog.atusy.net/2019/01/20/control-axes-in-faceted-plots/</guid><description>&lt;div id="TOC">
&lt;ul>
&lt;li>&lt;a href="#intro">はじめに&lt;/a>&lt;ul>
&lt;li>&lt;a href="#facet-basics">facet の基本的な例&lt;/a>&lt;ul>
&lt;li>&lt;a href="#pkg">パッケージのロード&lt;/a>&lt;/li>
&lt;li>&lt;a href="#compare-scales-args">scales 引数を変えた時の様子を比較&lt;/a>&lt;/li>
&lt;/ul>&lt;/li>
&lt;/ul>&lt;/li>
&lt;li>&lt;a href="#include-origin">全 facet 共通で xmin = ymin = 0 にしてみる&lt;/a>&lt;/li>
&lt;li>&lt;a href="#facet-">任意の facet で軸の範囲をコントロールする．&lt;/a>&lt;/li>
&lt;li>&lt;a href="#enjoy">Enjoy!&lt;/a>&lt;/li>
&lt;/ul>
&lt;/div>

&lt;p>前に Tokyo.R で「&lt;a href="https://atusy.github.io/presentation/tokyor073/tokyor073-multi-ggplot2.html?raw#/">ggplot2で図を並べる&lt;/a>」と題して色々話させてもらいました．時間や難易度の都合で話し切れていない部分も多々あるのですが，今日はその中の1つを補足したいと思います．&lt;/p>
&lt;div id="intro" class="section level1">
&lt;h1>はじめに&lt;/h1>
&lt;p>ggplot2 で facet を使って図を並べる時， &lt;code>scales&lt;/code> 引数を指定することで
facet ごとの軸の範囲を可変にできます．軸の範囲は ggplot2 がそれっぽく決めてくれるのですが，特定の facet について自分でコントロールしたい時はどうすればいいでしょうか．&lt;/p></description></item><item><title>ggplot の facet ごとに共通なプロットを盛り込む</title><link>https://blog.atusy.net/2019/01/20/share-data-in-facets/</link><pubDate>Sun, 20 Jan 2019 00:00:00 +0000</pubDate><guid>https://blog.atusy.net/2019/01/20/share-data-in-facets/</guid><description>&lt;div id="TOC">
&lt;ul>
&lt;li>&lt;a href="#section">はじめに&lt;/a>&lt;/li>
&lt;li>&lt;a href="#facet-">facet で表示されない部分のデータをグレーでプロットしてみる&lt;/a>&lt;/li>
&lt;li>&lt;a href="#versicolor--virginica--facet--facet--setosa-">versicolor と virginica だけで facet してそれぞれの facet に setosa を表示する&lt;/a>&lt;/li>
&lt;li>&lt;a href="#enjoy">Enjoy!&lt;/a>&lt;/li>
&lt;/ul>
&lt;/div>

&lt;div id="section" class="section level1">
&lt;h1>はじめに&lt;/h1>
&lt;p>facet を使うと以下のようにグループごとにプロットを分けることができます．しかし，グループ間の比較を行うのがちょっと辛いですね．こんな時，どうすればいいのでしょうか．&lt;/p></description></item><item><title>base にパイプはないといつ言った？</title><link>https://blog.atusy.net/2019/01/19/yet-another-pipe/</link><pubDate>Sat, 19 Jan 2019 00:00:00 +0000</pubDate><guid>https://blog.atusy.net/2019/01/19/yet-another-pipe/</guid><description>&lt;p>時はパイプ戦国時代．
Tidyverse が覇権を握る世界線において pipe とは &lt;code class="r">magrittr::`%&amp;gt;%`&lt;/code> のことでしょうか．私は &lt;code class="r">pipeR::`%&amp;gt;&amp;gt;%`&lt;/code> 派ですね．他にも &lt;code class="r">wrapr::`%.&amp;gt;%`&lt;/code> など，色々な宗派があります．&lt;/p>
&lt;p>pipe の成り立ちを探る神学者たちも続々と表れております．&lt;/p></description></item><item><title>一度に複数の変数を force する</title><link>https://blog.atusy.net/2019/01/18/force-many-vars-at-once/</link><pubDate>Fri, 18 Jan 2019 00:00:00 +0000</pubDate><guid>https://blog.atusy.net/2019/01/18/force-many-vars-at-once/</guid><description>&lt;h1 id="concl">結論&lt;/h1>
&lt;p>&lt;code>force(list(a, b, c, ...))&lt;/code> とすればいい．&lt;/p>
&lt;pre tabindex="0">&lt;code>f &amp;lt;- function(a, b, c, ...) {
 force(list(a, b, c, ...)) # 先に評価したいものから list に入れる
 10
}

f() 
#&amp;gt; Error in force(list(a, b, c, ...)) : argument &amp;#34;a&amp;#34; is missing, with no default

f(stop(&amp;#34;a でエラー&amp;#34;))
#&amp;gt; Error in force(list(a, b, c, ...)) : a でエラー

f(a = 1) 
#&amp;gt; Error in force(list(a, b, c, ...)) : argument &amp;#34;b&amp;#34; is missing, with no default

f(a = 1, b = 1)
#&amp;gt; Error in force(list(a, b, c, ...)) : argument &amp;#34;c&amp;#34; is missing, with no default

f(a = 1, c = 1)
#&amp;gt; Error in force(list(a, b, c, ...)) : argument &amp;#34;b&amp;#34; is missing, with no default

# OK
f(a = 1, b = 1, c = 1)
f(a = 1, b = 1, c = 1, d = 1)
&lt;/code>&lt;/pre>&lt;h1 id="bg">背景&lt;/h1>
&lt;p>Rでは関数の引数が遅延評価されるため，引数は使わない限り評価されない&lt;br>
(参考: &lt;a href="http://adv-r.had.co.nz/Functions.html#lazy-evaluation">&amp;ldquo;Adv. R: Lazy evaluation&amp;rdquo;&lt;/a>)．&lt;br>
明示的に使うには &lt;code>force&lt;/code> 関数を使う．&lt;br>
単に &lt;code>x&lt;/code>&lt;br>
だけの行を入れても強制評価できるが，&lt;code>force&lt;/code> を使うことで開発者の意図を盛り込もう．&lt;/p></description></item><item><title>captioner を魔改造してみた</title><link>https://blog.atusy.net/2019/01/17/enhance-captioner/</link><pubDate>Thu, 17 Jan 2019 00:00:00 +0000</pubDate><guid>https://blog.atusy.net/2019/01/17/enhance-captioner/</guid><description>&lt;div id="TOC">
&lt;ul>
&lt;li>&lt;a href="#section">はじめに&lt;/a>&lt;/li>
&lt;li>&lt;a href="#section-1">実装&lt;/a>&lt;ul>
&lt;li>&lt;a href="#captioner-">captioner を初期化&lt;/a>&lt;/li>
&lt;li>&lt;a href="#id-">キャプションを振る時は相互参照に利用する名前を &lt;code>id&lt;/code> に流用&lt;/a>&lt;/li>
&lt;li>&lt;a href="#section-2">参照する時は相互参照に利用する名前をリンクにする&lt;/a>&lt;/li>
&lt;/ul>&lt;/li>
&lt;li>&lt;a href="#figures">図をテスト&lt;/a>&lt;ul>
&lt;li>&lt;a href="#plot">&lt;code>plot()&lt;/code>&lt;/a>&lt;/li>
&lt;/ul>&lt;/li>
&lt;li>&lt;a href="#tables">表をテスト&lt;/a>&lt;ul>
&lt;li>&lt;a href="#kable">&lt;code>knitr::kable()&lt;/code>&lt;/a>&lt;/li>
&lt;li>&lt;a href="#gt">&lt;code>gt::gt()&lt;/code>&lt;/a>&lt;ul>
&lt;li>&lt;a href="#bad1">id付け失敗&lt;/a>&lt;/li>
&lt;li>&lt;a href="#good1">id付け成功例1&lt;/a>&lt;/li>
&lt;li>&lt;a href="#good2">id付け成功例2&lt;/a>&lt;/li>
&lt;li>&lt;a href="#gt-crossref">gt は相互参照未対応であることを確認&lt;/a>&lt;/li>
&lt;/ul>&lt;/li>
&lt;/ul>&lt;/li>
&lt;/ul>
&lt;/div>

&lt;div id="section" class="section level1">
&lt;h1>はじめに&lt;/h1>
&lt;p>captioner を使うと相互参照に未対応な Rmd フォーマットも相互参照できるようになる
(&lt;code>rmarkdown::html_document&lt;/code> とか &lt;code>pkgdown&lt;/code> とか……)．
詳しくはテラモナギさんの記事を参照
(&lt;a href="https://teramonagi.hatenablog.com/entry/20160923/1474591330">captionerパッケージで図・表に対する参照(レファレンス)を取得する&lt;/a>)．&lt;/p></description></item><item><title>S3総称関数の引数の既定値はメソッドに渡らない</title><link>https://blog.atusy.net/2019/01/16/s3-generics-dont-pass-default-params-to-methods/</link><pubDate>Wed, 16 Jan 2019 00:00:00 +0000</pubDate><guid>https://blog.atusy.net/2019/01/16/s3-generics-dont-pass-default-params-to-methods/</guid><description>&lt;div id="error-" class="section level1">
&lt;h1>Error と周辺の挙動&lt;/h1>
&lt;pre class="r">&lt;code>f &amp;lt;- function(x, n = 1, ...) UseMethod(&amp;quot;f&amp;quot;)
f.default &amp;lt;- function(x, n, ...) n
f(NULL)&lt;/code>&lt;/pre>
&lt;pre>&lt;code>## Error in f.default(NULL): argument &amp;quot;n&amp;quot; is missing, with no default&lt;/code>&lt;/pre>
&lt;p>てっきり &lt;code>f(NULL)&lt;/code> を実行すると，既定で &lt;code>n = 1&lt;/code> だから，
&lt;code>f.default(x = NULL, n = 1)&lt;/code> が呼び出されるとばかり思っていた．
メソッドに渡される引数は明示的に値を与えたものだけらしい．&lt;/p></description></item><item><title>group_map などの data frame を要約する関数をベンチマーク (dplyr > 0.8.x)</title><link>https://blog.atusy.net/2019/01/04/benchmarks-on-summarizing-with-dplyr/</link><pubDate>Fri, 04 Jan 2019 00:00:00 +0000</pubDate><guid>https://blog.atusy.net/2019/01/04/benchmarks-on-summarizing-with-dplyr/</guid><description>&lt;div id="TOC">
&lt;ul>
&lt;li>&lt;a href="#pkg">パッケージ読み込み&lt;/a>&lt;/li>
&lt;li>&lt;a href="#bench">ベンチマーク&lt;/a>&lt;ul>
&lt;li>&lt;a href="#section">結果&lt;/a>&lt;ul>
&lt;li>&lt;a href="#section-1">表&lt;/a>&lt;/li>
&lt;li>&lt;a href="#ridgeline">Ridgeline 図&lt;/a>&lt;/li>
&lt;li>&lt;a href="#boxplot">箱ひげ図&lt;/a>&lt;/li>
&lt;/ul>&lt;/li>
&lt;/ul>&lt;/li>
&lt;li>&lt;a href="#kanso">感想と補足&lt;/a>&lt;/li>
&lt;li>&lt;a href="#enjoy">Enjoy!&lt;/a>&lt;/li>
&lt;/ul>
&lt;/div>

&lt;p>&lt;code>tidyverse&lt;/code> において，grouped data frame に対して grouping variables
以外の各列に関数を適用する方法は種々ある．&lt;/p>
&lt;ul>
&lt;li>&lt;code>summarize&lt;/code>: 関数の返り値が長さ1の時&lt;/li>
&lt;li>&lt;code>group_map&lt;/code>: 関数の返り値がデータフレームの時&lt;/li>
&lt;li>&lt;code>nest %&amp;gt;% map&lt;/code>: 関数の返り値が複雑な時&lt;/li>
&lt;/ul>
&lt;p>基本は上述の使い分けのようだが (&lt;code class="r">help(dplyr::group_map)&lt;/code>)，
一応， &lt;code>summarize&lt;/code> も返り値を &lt;code class="r">list()&lt;/code> してやると複雑な処理に対応できる
(&lt;a href="#bench">後述&lt;/a>)．&lt;/p></description></item><item><title>pacman でパッケージのインストール・ロードを簡単にする</title><link>https://blog.atusy.net/2018/12/15/pacman/</link><pubDate>Sat, 15 Dec 2018 00:00:00 +0000</pubDate><guid>https://blog.atusy.net/2018/12/15/pacman/</guid><description>&lt;script src="../rmarkdown-libs/kePrint/kePrint.js">&lt;/script>

&lt;div id="TOC">
&lt;ul>
&lt;li>&lt;a href="#about-pacman">pacman パッケージとは&lt;/a>&lt;/li>
&lt;li>&lt;a href="#pacman-funs">pacman パッケージの関数&lt;/a>&lt;ul>
&lt;li>&lt;a href="#section">インストール / 読み込みを行うもの&lt;/a>&lt;/li>
&lt;li>&lt;a href="#else">その他便利関数10選&lt;/a>&lt;/li>
&lt;/ul>&lt;/li>
&lt;li>&lt;a href="#needs">needs パッケージとの比較&lt;/a>&lt;ul>
&lt;li>&lt;a href="#prioritize-on-pacman">pacman でも needs::prioritize したい？&lt;/a>&lt;/li>
&lt;/ul>&lt;/li>
&lt;li>&lt;a href="#ideas">改善案&lt;/a>&lt;ul>
&lt;li>&lt;a href="#NSE-p-load-gh">GitHub 上のパッケージも NSE で指定したい&lt;/a>&lt;/li>
&lt;li>&lt;a href="#mix-cran-and-gh">CRAN 上のパッケージも GitHub 上のパッケージも同じ関数で指定したい&lt;/a>&lt;/li>
&lt;li>&lt;a href="#p-load-at-ver">CRAN 上のパッケージも &lt;code>@&lt;/code> でバージョン指定したい&lt;/a>&lt;/li>
&lt;li>&lt;a href="#p-temp-gh">GitHub 上のパッケージも一時的な利用をしたい&lt;/a>&lt;/li>
&lt;li>&lt;a href="#gattai">上記を合体させたい&lt;/a>&lt;/li>
&lt;/ul>&lt;/li>
&lt;/ul>
&lt;/div>

&lt;div id="about-pacman" class="section level1">
&lt;h1>pacman パッケージとは&lt;/h1>
&lt;p>R におけるパッケージ管理ツール．&lt;a href="#fn1" class="footnote-ref" id="fnref1">&lt;sup>1&lt;/sup>&lt;/a>&lt;/p></description></item><item><title>furrr パッケージで R で簡単並列処理</title><link>https://blog.atusy.net/2018/12/06/furrr/</link><pubDate>Thu, 06 Dec 2018 00:00:00 +0000</pubDate><guid>https://blog.atusy.net/2018/12/06/furrr/</guid><description>&lt;div id="TOC">
&lt;ul>
&lt;li>&lt;a href="#install-furrr">インストール&lt;/a>&lt;/li>
&lt;li>&lt;a href="#library-furrr">読み込み&lt;/a>&lt;/li>
&lt;li>&lt;a href="#howto">使い方&lt;/a>&lt;ul>
&lt;li>&lt;a href="#single">シングルスレッド (strategy = sequential)&lt;/a>&lt;/li>
&lt;li>&lt;a href="#multi">マルチスレッド (strategy = multiprocess)&lt;/a>&lt;ul>
&lt;li>&lt;a href="#cores">コア数を変更&lt;/a>&lt;/li>
&lt;li>&lt;a href="#seeds">乱数を固定&lt;/a>&lt;/li>
&lt;li>&lt;a href="#progress">プログレスバーを表示&lt;/a>&lt;/li>
&lt;/ul>&lt;/li>
&lt;li>&lt;a href="#output-type">出力の型&lt;/a>&lt;/li>
&lt;/ul>&lt;/li>
&lt;/ul>
&lt;/div>

&lt;p>&lt;code>furrr&lt;/code> パッケージを使うと
&lt;code>purrr&lt;/code> パッケージのノリでモダンに並列処理ができるぞ!&lt;/p>
&lt;p>&lt;code>purrr&lt;/code> パッケージを使ったことがない人は下記のリンクを参考して欲しい．&lt;/p></description></item><item><title>furrr パッケージで ggplot のリストの表示を高速化する</title><link>https://blog.atusy.net/2018/12/05/accelerate-list-of-ggplot-with-furrr/</link><pubDate>Wed, 05 Dec 2018 00:00:00 +0000</pubDate><guid>https://blog.atusy.net/2018/12/05/accelerate-list-of-ggplot-with-furrr/</guid><description>&lt;div id="TOC">
&lt;ul>
&lt;li>&lt;a href="#intro">はじめに&lt;/a>&lt;/li>
&lt;li>&lt;a href="#impl">実装とテスト&lt;/a>&lt;/li>
&lt;li>&lt;a href="#bench">ベンチマーク&lt;/a>&lt;/li>
&lt;li>&lt;a href="#note">感想&lt;/a>&lt;/li>
&lt;/ul>
&lt;/div>

&lt;div id="intro" class="section level1">
&lt;h1>はじめに&lt;/h1>
&lt;p>&lt;a href="https://atusy.github.io/blog/2018/10/16/accelerate-list-of-ggplot/">前に&lt;/a>
&lt;code>hoxo-m/pforeach&lt;/code> パッケージを利用して，
&lt;code>ggplot&lt;/code> のリストを並列処理し，描写の高速化を行いました．&lt;/p>
&lt;p>しかし， &lt;code>hoxo-m/pforeach&lt;/code> パッケージの霊圧が消えてしまったので，
&lt;code>furrr&lt;/code> パッケージを試してみることにしました．&lt;/p></description></item><item><title>Japan.R 2018 感想</title><link>https://blog.atusy.net/2018/12/02/japanr2018-joined/</link><pubDate>Sun, 02 Dec 2018 00:00:00 +0000</pubDate><guid>https://blog.atusy.net/2018/12/02/japanr2018-joined/</guid><description>&lt;div id="TOC">
&lt;ul>
&lt;li>&lt;a href="#japanr2018">Japan.R 2018 に参加しました&lt;/a>&lt;/li>
&lt;li>&lt;a href="#presentations">発表の感想&lt;/a>&lt;ul>
&lt;li>&lt;a href="#long">Long Talk&lt;/a>&lt;ul>
&lt;li>&lt;a href="#kos59125">R によるシステム開発入門 by &lt;span class="citation">@kos59125&lt;/span>&lt;/a>&lt;/li>
&lt;li>&lt;a href="#kazutan">R Markdown テンプレートの作り方 by &lt;span class="citation">@kazutan&lt;/span>&lt;/a>&lt;/li>
&lt;li>&lt;a href="#efprime-jp">GUI で簡単！モダンなデータ解析 by &lt;span class="citation">@efprime_jp&lt;/span>&lt;/a>&lt;/li>
&lt;li>&lt;a href="#Med-KU">Shiny 完全に理解した by &lt;span class="citation">@Med_KU&lt;/span>&lt;/a>&lt;/li>
&lt;/ul>&lt;/li>
&lt;li>&lt;a href="#lightning">Lightning Talk&lt;/a>&lt;ul>
&lt;li>&lt;a href="#gepuro">gepuro task views 2nd by &lt;span class="citation">@gepuro&lt;/span>&lt;/a>&lt;/li>
&lt;li>&lt;a href="#ohta">条件付き相互作用の分析 by 太田博三&lt;/a>&lt;/li>
&lt;li>&lt;a href="#yakibeh">DID 分析の説明 by やぎべゑ&lt;/a>&lt;/li>
&lt;li>&lt;a href="#housecat442">contextual パッケージでバンディットアルゴリズムの検証 by &lt;span class="citation">@housecat442&lt;/span>&lt;/a>&lt;/li>
&lt;li>&lt;a href="#Kinoshita">スポーツチームでの R 活用の可能性 (ラグビーでの例を通して) by Koichi Kinoshita&lt;/a>&lt;/li>
&lt;li>&lt;a href="#doradora09">分析屋が福岡に移住して２年経った話 by &lt;span class="citation">@doradora09&lt;/span>&lt;/a>&lt;/li>
&lt;li>&lt;a href="#hiratake55">SagemakeR by &lt;span class="citation">@hiratake55&lt;/span>&lt;/a>&lt;/li>
&lt;li>&lt;a href="#kaneko">Rによる分位点処置効果推定の話 by Yusuke Kaneko&lt;/a>&lt;/li>
&lt;li>&lt;a href="#kankore">なんかやる（高速化周りかも） by かんこれ&lt;/a>&lt;/li>
&lt;li>&lt;a href="#hana-orin">アラサーエンジニア シティボーイ化計画 - 都会のお得物件を統計的に探してみる - by &lt;span class="citation">@hana_orin&lt;/span>&lt;/a>&lt;/li>
&lt;li>&lt;a href="#heavywatal">Rcpp パッケージで外部 C++ ライブラリを使う by &lt;span class="citation">@heavywatal&lt;/span>&lt;/a>&lt;/li>
&lt;li>&lt;a href="#chengvt">digdag で R をバッチり回す by &lt;span class="citation">@chengvt&lt;/span>&lt;/a>&lt;/li>
&lt;li>&lt;a href="#igjit">R で書く R コンパイラ by &lt;span class="citation">@igjit&lt;/span>&lt;/a>&lt;/li>
&lt;li>&lt;a href="#nakamichi">（仮）深層学習か画像認識で何かやります by nakamichi&lt;/a>&lt;/li>
&lt;li>&lt;a href="#atusy">関数魔改造講座 (formals編) by atusy&lt;/a>&lt;/li>
&lt;li>&lt;a href="#shrrt">Player Rating with R by shrrt&lt;/a>&lt;/li>
&lt;li>&lt;a href="#kawashima">量子化学 (フラグメント分子軌道法) でも R したい(薬) 川嶋裕介&lt;/a>&lt;/li>
&lt;li>&lt;a href="#tanaka-marimo">ぼくの町の不安定 by tanaka_marimo&lt;/a>&lt;/li>
&lt;li>&lt;a href="#ito-yan">この IR のグラフがすごい! 上場企業2018 &lt;span class="citation">@ito_yan&lt;/span>&lt;/a>&lt;/li>
&lt;/ul>&lt;/li>
&lt;/ul>&lt;/li>
&lt;/ul>
&lt;/div>

&lt;div id="japanr2018" class="section level1">
&lt;h1>Japan.R 2018 に参加しました&lt;/h1>
&lt;p>今回も多種多様でハイレベルな発表でしたね。個人的には自称 BeginneR 達の躍進が嬉しかったです。短期間に &lt;code>ggplot2&lt;/code> パッケージや &lt;code>leaflet&lt;/code> パッケージを使えるようになって LT してくれる、これはコミュニティの情報共有の目醒ましい成果だと思います。&lt;/p></description></item><item><title>viridisの色数</title><link>https://blog.atusy.net/2018/11/25/size-of-viridis-color-palette/</link><pubDate>Sun, 25 Nov 2018 00:00:00 +0000</pubDate><guid>https://blog.atusy.net/2018/11/25/size-of-viridis-color-palette/</guid><description>&lt;p>&lt;a href="https://bids.github.io/colormap/">viridis&lt;/a> や &lt;a href="https://github.com/marcosci/cividis">cividis&lt;/a> は、色の変化が知覚的に一様となるよう調整された、連続的なカラースケール。白黒印刷するとグレースケールになるので、プリンタにも優しい。&lt;/p>
&lt;p>viridis は論文がなさそうだが、 cividis は論文にもなっているようだ (&lt;a href="https://arxiv.org/ftp/arxiv/papers/1712/1712.01662.pdf" class="uri">https://arxiv.org/ftp/arxiv/papers/1712/1712.01662.pdf&lt;/a>)。&lt;/p></description></item><item><title>書評 「R MarkdownでWord文書を作ろう」</title><link>https://blog.atusy.net/2018/11/25/rmd-de-word/</link><pubDate>Sun, 25 Nov 2018 00:00:00 +0000</pubDate><guid>https://blog.atusy.net/2018/11/25/rmd-de-word/</guid><description>&lt;p>RmdでWord本の再販が間近に迫っていますね．これは献本頂いた時にしたレビューの約束を果たす時!!&lt;/p>
&lt;p>Rmdでこんなに完成したWordドキュメントを作れるんだ……! と感動できるので是非．&lt;/p></description></item><item><title>`ggplot2::coord_cartesian(xlim = c(0, NA))` できるようにしてみた</title><link>https://blog.atusy.net/2018/11/22/strange-coord-functions-ggplot2/</link><pubDate>Thu, 22 Nov 2018 00:00:00 +0000</pubDate><guid>https://blog.atusy.net/2018/11/22/strange-coord-functions-ggplot2/</guid><description>&lt;div id="TOC">
&lt;ul>
&lt;li>&lt;a href="#problem">問題&lt;/a>&lt;/li>
&lt;li>&lt;a href="#implementation">実装&lt;/a>&lt;ul>
&lt;li>&lt;a href="#original">オリジナル&lt;/a>&lt;/li>
&lt;li>&lt;a href="#fix">修正版&lt;/a>&lt;/li>
&lt;/ul>&lt;/li>
&lt;li>&lt;a href="#test">実験&lt;/a>&lt;ul>
&lt;li>&lt;a href="#fine">他のcoord_系列も問題なさそう&lt;/a>&lt;/li>
&lt;/ul>&lt;/li>
&lt;li>&lt;a href="#note">感想&lt;/a>&lt;/li>
&lt;/ul>
&lt;/div>

&lt;p>PRに向けての試験的な実装．&lt;/p>
&lt;p>&lt;a href="https://github.com/atusy/ggplot2/commit/26c1b7a478585889947d265d691e375e399637c3" class="uri">https://github.com/atusy/ggplot2/commit/26c1b7a478585889947d265d691e375e399637c3&lt;/a>&lt;/p>
&lt;p>なぜかxlimやylimに長さ3以上の連続値を取れてしまうので，本来はscale_*_continuousやxlimに合わせて長さ2までに制限すべきだと思う&lt;/p></description></item><item><title>CSSでヘッダの行間を調整してみた</title><link>https://blog.atusy.net/2018/11/21/mod-css-margin/</link><pubDate>Wed, 21 Nov 2018 00:00:00 +0000</pubDate><guid>https://blog.atusy.net/2018/11/21/mod-css-margin/</guid><description>&lt;h1 id="h1">h1&lt;/h1>
&lt;p>から&lt;/p>
&lt;h2 id="h2">h2&lt;/h2>
&lt;p>そして&lt;/p>
&lt;h3 id="h3">h3&lt;/h3>
&lt;p>までの余白が&lt;br>
詰め詰めで読み難かったので、修正しました。&lt;/p>
&lt;h1 id="以前はこんな感じで辛かった">以前はこんな感じで辛かった&lt;/h1>
&lt;h2 style="margin:0"> h2 &lt;/h2>
h2の内容
&lt;h3 style="margin:0"> h3 &lt;/h3>
h3の内容
&lt;h2 style="margin:0"> h2 &lt;/h2>
h2の内容
&lt;h3 style="margin:0"> h3 &lt;/h3>
h3の内容
&lt;h1 id="余白であって行間ではないので長い見出しを書いても大丈夫です">余白であって、行間ではないので、長い見出しを書いても大丈夫です&lt;/h1>
&lt;h1 id="やりかた">やりかた&lt;/h1>
&lt;p>hugoを使っているので、テーマが保存されているディレクトリの&lt;/p></description></item><item><title>Shinyでggplot2の選択領域を拡大 (brushOpts)</title><link>https://blog.atusy.net/2018/11/21/shiny-brushopts/</link><pubDate>Wed, 21 Nov 2018 00:00:00 +0000</pubDate><guid>https://blog.atusy.net/2018/11/21/shiny-brushopts/</guid><description>&lt;p>Shinyでplotly.jsを使わずにインタラクティブな図を作れるのかなと思ったら、&lt;/p>
&lt;p>「Shiny 100本ノック」の&lt;/p>
&lt;p>&lt;a href="http://www.randpy.tokyo/entry/shiny_26">【Shiny小技】グラフをダブルクリックすると情報が取得できる、dblclickOptsの紹介&lt;/a>&lt;/p>
&lt;p>を見つけました。&lt;/p>
&lt;p>どうやら、 &lt;code>brushOpts&lt;/code> なるものを使えば、 &lt;code>plot&lt;/code> (&lt;code>ggplot2&lt;/code> を含む)&lt;br>
の拡大ができるようなので試してみました。&lt;/p></description></item><item><title>ヒストグラムのビンの色をx軸に応じて変える</title><link>https://blog.atusy.net/2018/11/20/histogram-fill-along-x/</link><pubDate>Tue, 20 Nov 2018 00:00:00 +0000</pubDate><guid>https://blog.atusy.net/2018/11/20/histogram-fill-along-x/</guid><description>&lt;div id="TOC">
&lt;ul>
&lt;li>&lt;a href="#section">ヒストグラムをヒートマップの凡例 + αにしたい&lt;/a>&lt;/li>
&lt;li>&lt;a href="#trials">試行錯誤の歴史&lt;/a>&lt;ul>
&lt;li>&lt;a href="#tidy">データ整形&lt;/a>&lt;/li>
&lt;li>&lt;a href="#hist">ヒストグラム&lt;/a>&lt;ul>
&lt;li>&lt;a href="#fill-x-no">&lt;code>fill = x&lt;/code> ではダメ&lt;/a>&lt;/li>
&lt;li>&lt;a href="#fill-stat-x-yes">&lt;code>fill = stat(x)&lt;/code> ならOK&lt;/a>&lt;/li>
&lt;/ul>&lt;/li>
&lt;/ul>&lt;/li>
&lt;li>&lt;a href="#src">ソース&lt;/a>&lt;/li>
&lt;li>&lt;a href="#add">追記&lt;/a>&lt;/li>
&lt;/ul>
&lt;/div>

&lt;div id="tldr" class="section level4">
&lt;h4>tl; dr&lt;/h4>
&lt;p>&lt;code>geom_histogram(aes(fill = stat(x)))&lt;/code> すればいい。&lt;/p>
&lt;/div>
&lt;div id="section" class="section level1">
&lt;h1>ヒストグラムをヒートマップの凡例 + αにしたい&lt;/h1>
&lt;p>から、ヒストグラムのビンの色をx軸に応じて変えたいと思った。&lt;/p></description></item><item><title>felp 0.1.3</title><link>https://blog.atusy.net/2018/11/18/felp-0-1-3/</link><pubDate>Sun, 18 Nov 2018 00:00:00 +0000</pubDate><guid>https://blog.atusy.net/2018/11/18/felp-0-1-3/</guid><description>&lt;p>felp 0.1.3 を &lt;a href="https://github.com/atusy/felp">公開&lt;/a> しました．&lt;/p>
&lt;p>ようやく実用レベルになったかと思います．&lt;/p>
&lt;p>関数のソースとヘルプを同時に見たい人のためのパッケージです．&lt;/p>
&lt;p>ソースの読解が捗りますね!&lt;/p>
&lt;p>&lt;img src="https://atusy.github.io/blog/images/felp0-1-2.jpg">&lt;/p>
&lt;h1 id="インストール方法">インストール方法&lt;/h1>
&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-r" data-lang="r">&lt;span class="line">&lt;span class="cl">&lt;span class="n">devtools&lt;/span>&lt;span class="o">::&lt;/span>&lt;span class="nf">install_github&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="s">&amp;#34;atusy/felp&amp;#34;&lt;/span>&lt;span class="p">)&lt;/span>
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;h1 id="使い方">使い方&lt;/h1>
&lt;p>&lt;code>?print&lt;/code> や &lt;code>print?.&lt;/code> と打つだけ．&lt;/p></description></item><item><title>Rmdのfig.capを図を生成するチャンク内にglueで書く</title><link>https://blog.atusy.net/2018/11/11/glue-for-fig-cap-in-rmd/</link><pubDate>Sun, 11 Nov 2018 00:00:00 +0000</pubDate><guid>https://blog.atusy.net/2018/11/11/glue-for-fig-cap-in-rmd/</guid><description>&lt;p>Rmdのchunkオプションである &lt;code>fig.cap&lt;/code> の評価は，チャンクの評価が終わってからです．この性質を利用すると，チャンク内にキャプションと図を同居させることが簡単になります．&lt;/p></description></item><item><title>ggplot2のレジェンド位置を調整</title><link>https://blog.atusy.net/2018/11/10/ggplot2-legend-pos-n-just/</link><pubDate>Sat, 10 Nov 2018 00:00:00 +0000</pubDate><guid>https://blog.atusy.net/2018/11/10/ggplot2-legend-pos-n-just/</guid><description>&lt;div id="TOC">
&lt;ul>
&lt;li>&lt;a href="#ggplot2">ggplot2のレジェンド位置を変えるには&lt;/a>&lt;/li>
&lt;li>&lt;a href="#try">Let’s try!&lt;/a>&lt;ul>
&lt;li>&lt;a href="#pkg">パッケージ&lt;/a>&lt;/li>
&lt;li>&lt;a href="#base">基本となる図を用意&lt;/a>&lt;/li>
&lt;li>&lt;a href="#num">レジェンド位置を数値で指定する&lt;/a>&lt;/li>
&lt;li>&lt;a href="#char">レジェンド位置を文字列で指定する&lt;/a>&lt;ul>
&lt;li>&lt;a href="#legend.position">&lt;code>legend.position&lt;/code>&lt;/a>&lt;/li>
&lt;li>&lt;a href="#legend.justification">&lt;code>legend.justification&lt;/code>&lt;/a>&lt;/li>
&lt;/ul>&lt;/li>
&lt;/ul>&lt;/li>
&lt;li>&lt;a href="#enjoy">Enjoy!&lt;/a>&lt;/li>
&lt;/ul>
&lt;/div>

&lt;div id="ggplot2" class="section level1">
&lt;h1>ggplot2のレジェンド位置を変えるには&lt;/h1>
&lt;p>Cookbookの
&lt;a href="http://www.cookbook-r.com/Graphs/Legends_(ggplot2)/#changing-the-position-of-the-legend">Changing the position of the legend&lt;/a>
が参考になる．&lt;/p>
&lt;p>要は &lt;code>theme()&lt;/code> を使って&lt;/p>
&lt;p>&lt;code>legend.position&lt;/code> を長さ2の数値ベクトルないし&lt;code>"none"&lt;/code> , &lt;code>"left"&lt;/code> , &lt;code>"right"&lt;/code> , &lt;code>"bottom"&lt;/code> , &lt;code>"top"&lt;/code> の文字列で与え，&lt;/p></description></item><item><title>geom_histogramのビン幅を動的に決定する</title><link>https://blog.atusy.net/2018/11/09/binwdith-for-geom-histogram/</link><pubDate>Fri, 09 Nov 2018 00:00:00 +0000</pubDate><guid>https://blog.atusy.net/2018/11/09/binwdith-for-geom-histogram/</guid><description>&lt;div id="TOC">
&lt;ul>
&lt;li>&lt;a href="#tl-dr">TL; DR&lt;/a>&lt;/li>
&lt;li>&lt;a href="#default">ggplot2のヒストグラムはビン数30が既定&lt;/a>&lt;/li>
&lt;li>&lt;a href="#autobw">ビン幅を動的に決めたい&lt;/a>&lt;ul>
&lt;li>&lt;a href="#autobw-by-function">&lt;code>geom_histogram(binwidth = )&lt;/code> に関数を指定&lt;/a>&lt;ul>
&lt;li>&lt;a href="#define">ビン幅を決める関数を定義&lt;/a>&lt;/li>
&lt;li>&lt;a href="#test">テスト&lt;/a>&lt;/li>
&lt;/ul>&lt;/li>
&lt;/ul>&lt;/li>
&lt;li>&lt;a href="#enjoy">Enjoy!&lt;/a>&lt;/li>
&lt;/ul>
&lt;/div>

&lt;div id="tl-dr" class="section level1">
&lt;h1>TL; DR&lt;/h1>
&lt;p>&lt;code>geom_histogram(binwidth = )&lt;/code> はデータを受け取ってビン幅を返す関数を受け付けるよ。&lt;/p>
&lt;/div>
&lt;div id="default" class="section level1">
&lt;h1>ggplot2のヒストグラムはビン数30が既定&lt;/h1>
&lt;p>なぜ……。調整するには &lt;code>bins&lt;/code> でビン数を変えるか、 &lt;code>binwidth&lt;/code> でビン幅を変える。両方指定すると &lt;code>binwidth&lt;/code> が優先される。&lt;/p></description></item><item><title>R起動時に不足パッケージを導入しつつ読み込む</title><link>https://blog.atusy.net/2018/11/06/defaultpackages-rprofile/</link><pubDate>Tue, 06 Nov 2018 00:00:00 +0000</pubDate><guid>https://blog.atusy.net/2018/11/06/defaultpackages-rprofile/</guid><description>&lt;h1 id="rprofileを使って">.Rprofileを使って&lt;/h1>
&lt;h2 id="いつも使うパッケージはr起動時に読み込む">いつも使うパッケージはR起動時に読み込む&lt;/h2>
&lt;p>例えば， &lt;code>tidyverse&lt;/code> を読み込みたいなら，&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-r" data-lang="r">&lt;span class="line">&lt;span class="cl">&lt;span class="nf">options&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="n">defaultPackages&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="nf">c&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="nf">getOption&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="s">&amp;#39;defaultPackages&amp;#39;&lt;/span>&lt;span class="p">),&lt;/span> &lt;span class="s">&amp;#39;tidyverse&amp;#39;&lt;/span>&lt;span class="p">))&lt;/span>
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>とする．&lt;/p>
&lt;p>&lt;code>library&lt;/code> ではなく &lt;code>options&lt;/code> を利用することで，&lt;code>filter()&lt;/code> で &lt;code>dplyr::filter()&lt;/code> を呼ぶつもりが &lt;code>stats::filter()&lt;/code> を呼んでしまうような事故を防げる．&lt;/p>
&lt;h2 id="不足パッケージをインストールしたい">不足パッケージをインストールしたい&lt;/h2>
&lt;p>これは一筋縄ではいかず，私は &lt;code>callr::r()&lt;/code> を使うことで解決した．&lt;/p></description></item><item><title>ggplot2で$TeX$を利用する</title><link>https://blog.atusy.net/2018/11/03/tex-in-ggplot2/</link><pubDate>Sat, 03 Nov 2018 00:00:00 +0000</pubDate><guid>https://blog.atusy.net/2018/11/03/tex-in-ggplot2/</guid><description>&lt;div id="TOC">
&lt;ul>
&lt;li>&lt;a href="#intro">はじめに&lt;/a>&lt;ul>
&lt;li>&lt;a href="#install">インストール&lt;/a>&lt;/li>
&lt;/ul>&lt;/li>
&lt;li>&lt;a href="#try">使ってみる&lt;/a>&lt;ul>
&lt;li>&lt;a href="#title">タイトルなどで &lt;span class="math inline">\(TeX\)&lt;/span>&lt;/a>&lt;/li>
&lt;li>&lt;a href="#geom">&lt;code>geom_text&lt;/code> で &lt;span class="math inline">\(TeX\)&lt;/span>&lt;/a>&lt;/li>
&lt;li>&lt;a href="#facet">&lt;code>facet_wrap&lt;/code> や &lt;code>facet_grid&lt;/code> で &lt;span class="math inline">\(TeX\)&lt;/span>&lt;/a>&lt;/li>
&lt;/ul>&lt;/li>
&lt;li>&lt;a href="#enjoy">Enjoy!&lt;/a>&lt;/li>
&lt;/ul>
&lt;/div>

&lt;div id="intro" class="section level1">
&lt;h1>はじめに&lt;/h1>
&lt;p>&lt;code>ggplot2&lt;/code> で &lt;span class="math inline">\(TeX\)&lt;/span> 記法が使えると嬉しいですよね．一応，そういう人たちのための入口としては &lt;code>expression&lt;/code> だとか &lt;code>bquote&lt;/code> だとかがあるんですが，ここでは紹介しません．いえ，毎度使い方を忘れてしまい，紹介できないというのが正しいです．&lt;/p></description></item><item><title>patchworkの表示を高速化したかった……</title><link>https://blog.atusy.net/2018/11/03/accelarate-patchwork/</link><pubDate>Sat, 03 Nov 2018 00:00:00 +0000</pubDate><guid>https://blog.atusy.net/2018/11/03/accelarate-patchwork/</guid><description>&lt;p>失敗の記録．&lt;/p>
&lt;div id="section" class="section level1">
&lt;h1>目的&lt;/h1>
&lt;p>&lt;a href="https://atusy.github.io/blog/2018/10/16/accelerate-list-of-ggplot/">ggplotのリストの表示を高速化する&lt;/a>で紹介した通り，
ggplotオブジェクトはprintされる段になって，プロットに必要な計算を行っているため，大量のggplotを行うならば，計算部分を並列化し，表示を順次行うのが効率的だ．
patchworkを使ってggplotオブジェクトを並べる時も同様では……？ と思い，実験したが，何故かそうはならなかった．&lt;/p></description></item><item><title>ggplot2とpatchworkで周辺分布</title><link>https://blog.atusy.net/2018/11/02/marginal-patchwork/</link><pubDate>Fri, 02 Nov 2018 00:00:00 +0000</pubDate><guid>https://blog.atusy.net/2018/11/02/marginal-patchwork/</guid><description>&lt;p>patchworkパッケージを使えばあんな図やこんな図が簡単に，と思い馳せた人も多いのではなかろうか．&lt;/p>
&lt;p>参考: &lt;a href="https://atusy.github.io/presentation/tokyor073/tokyor073-multi-ggplot2.html?raw#/patchwork-">TokyoR 73での発表スライド&lt;/a>&lt;/p>
&lt;p>中でも周辺分布を自由に綺麗に，と思ったのは私だけではないはず．&lt;/p></description></item><item><title>RmarkdwonのYAMLフロントマターで
titleとか
authorとか
改行する</title><link>https://blog.atusy.net/2018/10/27/linbreaks-in-yaml-front-matter-of-rmd/</link><pubDate>Sat, 27 Oct 2018 00:00:00 +0000</pubDate><guid>https://blog.atusy.net/2018/10/27/linbreaks-in-yaml-front-matter-of-rmd/</guid><description>&lt;p>@niszet0 さん著「R MarkdownでWord文書を作ろう」を読んでます。&lt;br>
Rmdを扱った商業誌にも、同書ほどRmdファイルのYAMLフロントマターの書式を丁寧に書いている本はないのではないだろうか。&lt;br>
使えれば良いというスタンスだったのもあって、YAMLのフロースタイルとか、始めて学びました。&lt;br>
しかし、これだけ詳しく書いてあるのに改行のことに触れられていないな、とふと。&lt;/p></description></item><item><title>Plotlyで軸比を1:1に固定する</title><link>https://blog.atusy.net/2018/10/26/plotly-fixed-axes/</link><pubDate>Fri, 26 Oct 2018 00:00:00 +0000</pubDate><guid>https://blog.atusy.net/2018/10/26/plotly-fixed-axes/</guid><description>&lt;script src="../rmarkdown-libs/htmlwidgets/htmlwidgets.js">&lt;/script>
&lt;script src="../rmarkdown-libs/plotly-binding/plotly.js">&lt;/script>
&lt;script src="../rmarkdown-libs/typedarray/typedarray.min.js">&lt;/script>
&lt;script src="../rmarkdown-libs/jquery/jquery.min.js">&lt;/script>
&lt;link href="../rmarkdown-libs/crosstalk/css/crosstalk.css" rel="stylesheet" />
&lt;script src="../rmarkdown-libs/crosstalk/js/crosstalk.min.js">&lt;/script>
&lt;link href="../rmarkdown-libs/plotly-htmlwidgets-css/plotly-htmlwidgets.css" rel="stylesheet" />
&lt;script src="../rmarkdown-libs/plotly-main/plotly-latest.min.js">&lt;/script>


&lt;p>今迄Plotly.jsを使いたい時は、元の図を &lt;code>ggplot2&lt;/code> パッケージで作成し、 &lt;code>plotly::ggplotly()&lt;/code> で変換していた。しかし、どうもパフォーマンスが悪い気がするので、Plotlyネイティブに書いてみようと思った。&lt;/p></description></item><item><title>R Markdown で PlantUML</title><link>https://blog.atusy.net/2018/10/25/plantuml-on-rmd/</link><pubDate>Thu, 25 Oct 2018 00:00:00 +0000</pubDate><guid>https://blog.atusy.net/2018/10/25/plantuml-on-rmd/</guid><description>&lt;p>&lt;span class="citation">@niszet0&lt;/span> さんの “R MarkdownでWord文書を作ろう” を摘み食いしてます (以下RmdでWord本)．ちゃんとしたいずれレビューはいずれするとして，気付いたところを少しずつメモしていきたい．&lt;/p></description></item><item><title>結婚式で使った楽曲</title><link>https://blog.atusy.net/2018/10/22/bridal-music/</link><pubDate>Mon, 22 Oct 2018 00:00:00 +0000</pubDate><guid>https://blog.atusy.net/2018/10/22/bridal-music/</guid><description>&lt;p>9/29に結婚式を挙げました。&lt;/p>
&lt;p>なんとこの日は私の愛すDo As Infinityのデビュー日。&lt;br>
ゆかりんが登場したことで、一部が騒然(？)としましたが、Do As Infinityメドレーなど、私の趣味全開です。&lt;/p></description></item><item><title>TokyoR 73 行ってきました</title><link>https://blog.atusy.net/2018/10/21/tokyor73/</link><pubDate>Sun, 21 Oct 2018 00:00:00 +0000</pubDate><guid>https://blog.atusy.net/2018/10/21/tokyor73/</guid><description>&lt;p>2018年10月20日はJuliaなんちゃらやらなんやらと沢山の勉強会が同時開催された日だったらしいですね。&lt;/p>
&lt;p>私はTokyoR 73を選んで「&lt;a href="https://atusy.github.io/presentation/tokyor073/tokyor073-multi-ggplot2.html?raw#/">ggplot2で図を並べる&lt;/a>」と題して &lt;code>facet_grid()&lt;/code> 、 &lt;code>facet_wrap()&lt;/code> 、 &lt;code>patchwork&lt;/code> パッケージについて作例交えて話してきました。&lt;/p></description></item><item><title>ggplotのリストの表示を高速化する</title><link>https://blog.atusy.net/2018/10/16/accelerate-list-of-ggplot/</link><pubDate>Tue, 16 Oct 2018 00:00:00 +0000</pubDate><guid>https://blog.atusy.net/2018/10/16/accelerate-list-of-ggplot/</guid><description>&lt;p>大きなデータを用いたggplotのリストや，大量のggplotのリストを高速に描写するための関数 &lt;code>print_gglist&lt;/code> を作りました．&lt;/p>
&lt;pre class="r">&lt;code>devtools::install_github(&amp;#39;atusy/ggAtusy&amp;#39;)&lt;/code>&lt;/pre>
&lt;p>で遊べます．&lt;/p>
&lt;div id="section" class="section level1">
&lt;h1>はじめに&lt;/h1>
&lt;p>ggplot2パッケージで作成したプロット (ggplotオブジェクト) はprintされる段になって，プロットに必要な計算を行っている．&lt;/p></description></item><item><title>Antergos導入</title><link>https://blog.atusy.net/2018/10/11/hello-antergosmd/</link><pubDate>Thu, 11 Oct 2018 00:00:00 +0000</pubDate><guid>https://blog.atusy.net/2018/10/11/hello-antergosmd/</guid><description>&lt;p>自宅用PCにAntergosを導入しました．&lt;/p>
&lt;p>ppaを足すも.debや.tar.gzを落とすもなんかかったるくなってAURが楽しそうなArchlinux系列を試すことにしました．&lt;/p></description></item><item><title>roxygen2タグまとめ</title><link>https://blog.atusy.net/2018/08/28/roxygen2matome/</link><pubDate>Tue, 28 Aug 2018 00:00:00 +0000</pubDate><guid>https://blog.atusy.net/2018/08/28/roxygen2matome/</guid><description>&lt;script src="../rmarkdown-libs/core-js/shim.min.js">&lt;/script>
&lt;script src="../rmarkdown-libs/react/react.min.js">&lt;/script>
&lt;script src="../rmarkdown-libs/react/react-dom.min.js">&lt;/script>
&lt;script src="../rmarkdown-libs/reactwidget/react-tools.js">&lt;/script>
&lt;script src="../rmarkdown-libs/htmlwidgets/htmlwidgets.js">&lt;/script>
&lt;script src="../rmarkdown-libs/reactable-binding/reactable.js">&lt;/script>

&lt;div id="TOC">
&lt;ul>
&lt;li>&lt;a href="#matome">まとめ&lt;/a>&lt;/li>
&lt;li>&lt;a href="#tips">Tips&lt;/a>&lt;ul>
&lt;li>&lt;a href="#title-description-details">&lt;code>@title&lt;/code>、&lt;code>@description&lt;/code>、&lt;code>@details&lt;/code> について&lt;/a>&lt;/li>
&lt;li>&lt;a href="#simple-form">&lt;code>@importFrom&lt;/code>、&lt;code>@seealso&lt;/code> について&lt;/a>&lt;/li>
&lt;li>&lt;a href="#dontrun-examples">&lt;code>@examples&lt;/code>をcheckしたくない時&lt;/a>&lt;ul>
&lt;li>&lt;a href="#if-interactive-でコードを囲む">&lt;code>if (interactive()) {}&lt;/code>でコードを囲む&lt;/a>&lt;/li>
&lt;li>&lt;a href="#dontrunでコードを囲む">&lt;code>\dontrun{}&lt;/code>でコードを囲む&lt;/a>&lt;/li>
&lt;/ul>&lt;/li>
&lt;li>&lt;a href="#and-more">その他&lt;/a>&lt;/li>
&lt;/ul>&lt;/li>
&lt;li>&lt;a href="#references">References&lt;/a>&lt;/li>
&lt;li>&lt;a href="#changelog">変更履歴&lt;/a>&lt;/li>
&lt;/ul>
&lt;/div>

&lt;p>Roxygen2のタグについての情報が複数箇所に分散していて調べるのが大変なのでまとめた。&lt;/p></description></item><item><title>欠損値の発生過程の類別</title><link>https://blog.atusy.net/2018/08/25/missing-value-type/</link><pubDate>Sat, 25 Aug 2018 00:00:00 +0000</pubDate><guid>https://blog.atusy.net/2018/08/25/missing-value-type/</guid><description>&lt;p>先日、欠損値の発生過程の例を図示してTweetしたところ、思ったより反響がよかったので、図をブラシュアップの上、記事に残すことにした。&lt;/p>
&lt;p>俄仕込みなので、間違いがあったらTwitterで指摘して下さい。&lt;/p></description></item><item><title>Rmdでchunkごとの実行時間を計測</title><link>https://blog.atusy.net/2018/08/18/time-each-chunk/</link><pubDate>Sat, 18 Aug 2018 00:00:00 +0000</pubDate><guid>https://blog.atusy.net/2018/08/18/time-each-chunk/</guid><description>&lt;p>Jupyter Notebookでは、コードブロック冒頭で &lt;code>%%timeit&lt;/code> と唱えると、ブロックの評価に要した時間を表示できる。&lt;br />
&lt;a href="https://jakevdp.github.io/PythonDataScienceHandbook/01.07-timing-and-profiling.html" class="uri">https://jakevdp.github.io/PythonDataScienceHandbook/01.07-timing-and-profiling.html&lt;/a>&lt;/p>
&lt;p>これをRmdでもできないかなー？ と思って &lt;code>knit_hooks()&lt;/code> を利用してみた。
&lt;code>knit_hooks()&lt;/code> の使い方の詳細は&lt;a href="https://github.com/yihui/knitr-examples/blob/master/045-chunk-hook.md">こちら&lt;/a>。&lt;/p></description></item><item><title>パラメータ付きRmdを試す</title><link>https://blog.atusy.net/2018/08/17/rmd-parameterized/</link><pubDate>Fri, 17 Aug 2018 00:00:00 +0000</pubDate><guid>https://blog.atusy.net/2018/08/17/rmd-parameterized/</guid><description>&lt;p>パラメータ付きRmdが便利そうだと思ったのでメモと実験&lt;/p>
&lt;div id="rmd" class="section level1">
&lt;h1>パラメータ付きRmdとは&lt;/h1>
&lt;p>YAMLヘッダーの &lt;code>params&lt;/code> で作成される変数のリストを用いたRmd&lt;/p>
&lt;p>うまく使えばYAMLヘッダーさえ弄ればOKな半自動レポーティングの助けになると思われる。&lt;/p></description></item><item><title>R3.5系ではファイル同期ソフトでパッケージを同期しないように</title><link>https://blog.atusy.net/2018/07/31/dont-sync-pkg-r3-5/</link><pubDate>Tue, 31 Jul 2018 00:00:00 +0000</pubDate><guid>https://blog.atusy.net/2018/07/31/dont-sync-pkg-r3-5/</guid><description>&lt;p>タイトル通り、R3.5系ではファイル同期ソフトでパッケージを同期しないようにしましょう。&lt;/p>
&lt;p>同期しておくとある環境にインストールしたパッケージを他の環境でもすぐさま利用できて便利だったのですが……。&lt;/p></description></item><item><title>xetexでunicode文字</title><link>https://blog.atusy.net/2018/07/09/xelatex%E3%81%A7utf8%E6%96%87%E5%AD%97/</link><pubDate>Mon, 09 Jul 2018 00:00:00 +0000</pubDate><guid>https://blog.atusy.net/2018/07/09/xelatex%E3%81%A7utf8%E6%96%87%E5%AD%97/</guid><description>&lt;p>$\LaTeX{}$ で μ や α など特殊文字を直打ちすると、&lt;br>
□になってしまうことがしばしば。&lt;/p>
&lt;p>XeTeXを使っている場合は、&lt;/p>
&lt;p>&lt;code>\setmainfont{IPAMincho}&lt;/code>&lt;/p>
&lt;p>など、ユニコードに対応したフォントを使うように指定する。&lt;/p></description></item><item><title>GitHub pages with Rmarkdown</title><link>https://blog.atusy.net/2018/07/05/github-pages-with-rmarkdown/</link><pubDate>Thu, 05 Jul 2018 00:00:00 +0000</pubDate><guid>https://blog.atusy.net/2018/07/05/github-pages-with-rmarkdown/</guid><description>&lt;p>遅蒔きながら、Rのblogdownパッケージを使ってblogを始めてみた。&lt;/p>
&lt;p>&lt;a href="https://qiita.com/masato_t/items/7bbfa74f8de0dc06c91c">&amp;ldquo;Rとblogdownでかんたんにgithub.io上にブログを使ってみよう！！&amp;rdquo;&lt;/a>&lt;/p>
&lt;p>を参考にしたのだが、何点かハマったところがあったのでメモ。&lt;/p>
&lt;ul>
&lt;li>&lt;code>baseurl = &amp;quot;/&amp;quot;&lt;/code>&lt;/li>
&lt;li>トップページが404の時はもう一度pushしてみる&lt;/li>
&lt;li>記事の規定拡張子はoptionで指定
&lt;ul>
&lt;li>&lt;code>option(blogdown.ext = '.Rmd')&lt;/code>&lt;/li>
&lt;li>参考URLにある &lt;code>option(blogdown.Rmd = TRUE)&lt;/code> は過去のもの?&lt;/li>
&lt;/ul>
&lt;/li>
&lt;/ul></description></item></channel></rss>