<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:content="http://purl.org/rss/1.0/modules/content/"><channel><title>Posts on Yue Jiang | 姜岳</title><link>https://yuejiang.org/post/</link><description>Recent content in Posts on Yue Jiang | 姜岳</description><generator>Hugo</generator><language>en</language><lastBuildDate>Sat, 04 Jul 2026 00:00:00 +0000</lastBuildDate><atom:link href="https://yuejiang.org/post/index.xml" rel="self" type="application/rss+xml"/><item><title>Eight months into vibe coding</title><link>https://yuejiang.org/2026/07/04/eight-months-into-vibe-coding/</link><pubDate>Sat, 04 Jul 2026 00:00:00 +0000</pubDate><guid>https://yuejiang.org/2026/07/04/eight-months-into-vibe-coding/</guid><description>&lt;p&gt;Since last winter, I started using Claude Code, then Codex, for my work — my current setup is a
Claude Max 5x + ChatGPT Pro. They quickly became something I reach for every day. Below are a couple
of notes on customizations I&amp;rsquo;ve picked up along the way. The first two are for VS Code — I know the
CLI is where the bleeding edge lives and is the best supported, but for the analysis work I do I
prefer being able to quickly interact with files and plots (usually on a remote EC2 instance).&lt;/p&gt;</description></item><item><title>Very basic use of tidyverse in R packages</title><link>https://yuejiang.org/2018/11/18/using-tidyverse-tidyeval-in-r-packages/</link><pubDate>Sun, 18 Nov 2018 00:00:00 +0000</pubDate><guid>https://yuejiang.org/2018/11/18/using-tidyverse-tidyeval-in-r-packages/</guid><description>&lt;div id="TOC"&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="#tldr"&gt;tl;dr&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#why-bother"&gt;Why bother?&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#data"&gt;&lt;code&gt;.data&lt;/code&gt;&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#alternatives-and-problems"&gt;Alternatives and problems&lt;/a&gt;&lt;ul&gt;
&lt;li&gt;&lt;a href="#sym"&gt;&lt;code&gt;!!&lt;/code&gt; + &lt;code&gt;sym&lt;/code&gt;&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#filter_"&gt;&lt;code&gt;filter_&lt;/code&gt;&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;
&lt;div id="tldr" class="section level1"&gt;
&lt;h1&gt;tl;dr&lt;/h1&gt;
&lt;p&gt;90% of my usecases when putting a function that uses tidyverse with non-standard evaluation (NSE) into an R package can be resolved by &lt;code&gt;importFrom rlang .data&lt;/code&gt;. In these cases, I’m only looking for a way to be able to use tidyverse &lt;em&gt;internally&lt;/em&gt; in the package, and have it pass the R package check, rather than allowing the user to supply function arguments in the NSE form.&lt;/p&gt;</description></item><item><title>Reading Prism files into R</title><link>https://yuejiang.org/2018/08/02/pzfx/</link><pubDate>Thu, 02 Aug 2018 00:00:00 +0000</pubDate><guid>https://yuejiang.org/2018/08/02/pzfx/</guid><description>&lt;div id="TOC"&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="#example-prism-files"&gt;Example Prism files&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#main-functionality"&gt;Main functionality&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#additional-features"&gt;Additional features&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;
&lt;p&gt;&lt;img src="https://www.graphpad.com/www/graphpad/includes/themes/graphpad/images/mainpage-banner-graphpad-prism7.png" style="width:100.0%" /&gt;&lt;/p&gt;
&lt;p&gt;Back in the early days of grad school I used to use Prism GraphPad a lot before switching to R. Prism is a great piece of software and I’ve seen scientists using them a lot. Recently I wanted to import a Prism &lt;code&gt;.pzfx&lt;/code&gt; file into R, and as usual, I went to Google expecting there’ll be some &lt;code&gt;readxl&lt;/code&gt; or &lt;code&gt;readr&lt;/code&gt; equivalent for prism. Surprisingly, I didn’t find much more than &lt;a href="https://stackoverflow.com/questions/25506099/r-import-xml-from-graphpad-prism"&gt;this SO question&lt;/a&gt;. So, how do you import a prism file into R? The easiest way is probably exporting the prism file to a text file then read it into R. But this just doesn’t feel that good, right? So I started looking into the file structure of &lt;code&gt;.pzfx&lt;/code&gt; files and tried to parse it by myself. Starting from Prism5, in addition to the binary file it also stores the data table in XML format which is possible to parse. After some trials and errors I made a little R package (&lt;a href="https://github.com/Yue-Jiang/pzfx"&gt;github&lt;/a&gt;, &lt;a href="https://CRAN.R-project.org/package=pzfx"&gt;CRAN&lt;/a&gt;) to read &lt;code&gt;.pzfx&lt;/code&gt; files into R data frames. I’ll briefly document how it works here.&lt;/p&gt;</description></item><item><title>Show me what you got</title><link>https://yuejiang.org/2017/12/28/show-me-what-you-got/</link><pubDate>Thu, 28 Dec 2017 00:00:00 +0000</pubDate><guid>https://yuejiang.org/2017/12/28/show-me-what-you-got/</guid><description>&lt;script src="https://yuejiang.org/rmarkdown-libs/htmlwidgets/htmlwidgets.js"&gt;&lt;/script&gt;
&lt;script src="https://yuejiang.org/rmarkdown-libs/jquery/jquery.min.js"&gt;&lt;/script&gt;
&lt;link href="https://yuejiang.org/rmarkdown-libs/datatables-css/datatables-crosstalk.css" rel="stylesheet" /&gt;
&lt;script src="https://yuejiang.org/rmarkdown-libs/datatables-binding/datatables.js"&gt;&lt;/script&gt;
&lt;link href="https://yuejiang.org/rmarkdown-libs/dt-core/css/jquery.dataTables.min.css" rel="stylesheet" /&gt;
&lt;link href="https://yuejiang.org/rmarkdown-libs/dt-core/css/jquery.dataTables.extra.css" rel="stylesheet" /&gt;
&lt;script src="https://yuejiang.org/rmarkdown-libs/dt-core/js/jquery.dataTables.min.js"&gt;&lt;/script&gt;
&lt;link href="https://yuejiang.org/rmarkdown-libs/crosstalk/css/crosstalk.css" rel="stylesheet" /&gt;
&lt;script src="https://yuejiang.org/rmarkdown-libs/crosstalk/js/crosstalk.min.js"&gt;&lt;/script&gt;
&lt;script src="https://yuejiang.org/rmarkdown-libs/plotly-binding/plotly.js"&gt;&lt;/script&gt;
&lt;script src="https://yuejiang.org/rmarkdown-libs/typedarray/typedarray.min.js"&gt;&lt;/script&gt;
&lt;link href="https://yuejiang.org/rmarkdown-libs/plotly-htmlwidgets-css/plotly-htmlwidgets.css" rel="stylesheet" /&gt;
&lt;script src="https://yuejiang.org/rmarkdown-libs/plotly-main/plotly-latest.min.js"&gt;&lt;/script&gt;
&lt;div id="TOC"&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="#the-data"&gt;The data&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#make-some-plots"&gt;Make some plots&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#side-notes"&gt;Side Notes&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;
&lt;p&gt;&lt;img src="https://media.giphy.com/media/26DOs997h6fgsCthu/giphy.gif" /&gt;&lt;/p&gt;
&lt;p&gt;Alright, let’s see what we can do here. Too much &lt;code&gt;iris&lt;/code&gt; could be boring, so I thought I’d contribute some data by myself. Since my fitbit stopped working early this year, I’ve switched back to my old Garmin forerunner 10, and it turns out that you can downlowd .csv file of previous activities through Garmin connect. Now that’s pretty cool - I’ll just use this data.&lt;/p&gt;</description></item><item><title>Hello World</title><link>https://yuejiang.org/2017/12/27/hello-world/</link><pubDate>Wed, 27 Dec 2017 00:00:00 +0000</pubDate><guid>https://yuejiang.org/2017/12/27/hello-world/</guid><description>&lt;p&gt;Hello world! This is the end of 2017, and I’m on my winter break. So I thought I’d play with the &lt;code&gt;blogdown&lt;/code&gt; package and see if I can come up with some sort of site from within &lt;code&gt;R&lt;/code&gt;. So here I am.&lt;/p&gt;
&lt;p&gt;你好，世界&lt;/p&gt;</description></item></channel></rss>