<rss xmlns:atom="http://www.w3.org/2005/Atom" version="2.0"><channel><title>fds-board</title><link>https://blog.fdsboard.com/</link><description>Discovery, Insight, and Bliss</description><generator>Hugo -- gohugo.io</generator><language>en</language><lastBuildDate>Mon, 02 Mar 2026 00:00:00 +0000</lastBuildDate><atom:link href="https://blog.fdsboard.com/index.xml" rel="self" type="application/rss+xml"/><item><title>Debugging Numpy/SciPy Segfaults: OpenBLAS ILP64/LP64 Conflict via Conda+Poetry</title><link>https://blog.fdsboard.com/devops/segfault-openblas-abi-conflict/</link><pubDate>Mon, 02 Mar 2026 00:00:00 +0000</pubDate><author>Jinze(Jerry) Zhou</author><guid>https://blog.fdsboard.com/devops/segfault-openblas-abi-conflict/</guid><description><![CDATA[<h2 id="the-symptoms">The Symptoms</h2>
<p>WavePy is a Python 3.12-based ocean wave data processing system running in a Conda environment called <code>wave312</code>. During recent development, the process started vanishing without warning. No Python traceback, no error logs, just gone.</p>
<p>The last line of the log always stopped at the memory monitor output for <code>scipy.interpolate.griddata</code>:</p>
<div class="code-block code-line-numbers open" style="counter-reset: code-block 0">
    <div class="code-header language-text">
        <span class="code-title"><i class="arrow fas fa-angle-right" aria-hidden="true"></i></span>
        <span class="ellipses"><i class="fas fa-ellipsis-h" aria-hidden="true"></i></span>
        <span class="copy" title="Copy to clipboard"><i class="far fa-copy" aria-hidden="true"></i></span>
    </div><div class="highlight"><pre tabindex="0" class="chroma"><code class="language-text" data-lang="text"><span class="line"><span class="cl">2026-03-02 01:23:43,251 - MemoryMonitor - INFO - [MEM][interpolate_unstruct_grid:hsig:20260302_060000] RSS: 1440.44 MB</span></span></code></pre></div></div>
<p>After that, nothing. No traceback, no exception. It was a classic C extension segfault.</p>]]></description></item><item><title>Keep SSH Connections Alive</title><link>https://blog.fdsboard.com/net/ssh2/</link><pubDate>Tue, 05 Jan 2021 13:31:50 -0500</pubDate><author>Jinze(Jerry) Zhou</author><guid>https://blog.fdsboard.com/net/ssh2/</guid><description><![CDATA[<p>SSH is an application-layer encrypted network protocol. It&rsquo;s used for remote login, remote command execution, and data transfer.</p>
<p>It consists of an SSH client and an SSH server. There are many implementations, with OpenSSH being the default on Ubuntu.
The client is <code>ssh</code>, and the server is <code>sshd</code>.</p>]]></description></item><item><title>Intranet Penetration via SSH Tunnel Forwarding</title><link>https://blog.fdsboard.com/net/ssh/</link><pubDate>Tue, 05 Jan 2021 13:23:51 -0500</pubDate><author>Jinze(Jerry) Zhou</author><guid>https://blog.fdsboard.com/net/ssh/</guid><description>&lt;h2 id="requirements">Requirements&lt;/h2>
&lt;p>I want to connect to my home PC from my iPad Pro anytime, anywhere.&lt;/p></description></item><item><title>Hello R Markdown</title><link>https://blog.fdsboard.com/rmd/hello/</link><pubDate>Tue, 01 Dec 2020 21:13:14 -0500</pubDate><author>Jinze(Jerry) Zhou</author><guid>https://blog.fdsboard.com/rmd/hello/</guid><description><![CDATA[<h1 id="r-markdown">R Markdown</h1>
<p>This is an R Markdown document. Markdown is a simple formatting syntax for authoring HTML, PDF, and MS Word documents. For more details on using R Markdown see <a href="http://rmarkdown.rstudio.com" target="_blank" rel="noopener noreffer ">http://rmarkdown.rstudio.com</a>.</p>
<p>You can embed an R code chunk like this:</p>
<div class="code-block code-line-numbers" style="counter-reset: code-block 0">
    <div class="code-header language-r">
        <span class="code-title"><i class="arrow fas fa-angle-right" aria-hidden="true"></i></span>
        <span class="ellipses"><i class="fas fa-ellipsis-h" aria-hidden="true"></i></span>
        <span class="copy" title="Copy to clipboard"><i class="far fa-copy" aria-hidden="true"></i></span>
    </div><div class="highlight"><pre tabindex="0" class="chroma"><code class="language-r" data-lang="r"><span class="line"><span class="cl"><span class="nf">summary</span><span class="p">(</span><span class="n">cars</span><span class="p">)</span>
</span></span><span class="line"><span class="cl"><span class="c1">##      speed           dist       </span>
</span></span><span class="line"><span class="cl"><span class="c1">##  Min.   : 4.0   Min.   :  2.00  </span>
</span></span><span class="line"><span class="cl"><span class="c1">##  1st Qu.:12.0   1st Qu.: 26.00  </span>
</span></span><span class="line"><span class="cl"><span class="c1">##  Median :15.0   Median : 36.00  </span>
</span></span><span class="line"><span class="cl"><span class="c1">##  Mean   :15.4   Mean   : 42.98  </span>
</span></span><span class="line"><span class="cl"><span class="c1">##  3rd Qu.:19.0   3rd Qu.: 56.00  </span>
</span></span><span class="line"><span class="cl"><span class="c1">##  Max.   :25.0   Max.   :120.00</span>
</span></span><span class="line"><span class="cl"><span class="n">fit</span> <span class="o">&lt;-</span> <span class="nf">lm</span><span class="p">(</span><span class="n">dist</span> <span class="o">~</span> <span class="n">speed</span><span class="p">,</span> <span class="n">data</span> <span class="o">=</span> <span class="n">cars</span><span class="p">)</span>
</span></span><span class="line"><span class="cl"><span class="n">fit</span>
</span></span><span class="line"><span class="cl"><span class="c1">## </span>
</span></span><span class="line"><span class="cl"><span class="c1">## Call:</span>
</span></span><span class="line"><span class="cl"><span class="c1">## lm(formula = dist ~ speed, data = cars)</span>
</span></span><span class="line"><span class="cl"><span class="c1">## </span>
</span></span><span class="line"><span class="cl"><span class="c1">## Coefficients:</span>
</span></span><span class="line"><span class="cl"><span class="c1">## (Intercept)        speed  </span>
</span></span><span class="line"><span class="cl"><span class="c1">##     -17.579        3.932</span></span></span></code></pre></div></div>
<h1 id="including-plots">Including Plots</h1>
<p>You can also embed plots. See Figure <a href="#fig:pie">1</a> for example:</p>]]></description></item><item><title>A Plain Markdown Post</title><link>https://blog.fdsboard.com/rmd/math/</link><pubDate>Fri, 30 Dec 2016 21:49:57 -0700</pubDate><author>Jinze(Jerry) Zhou</author><guid>https://blog.fdsboard.com/rmd/math/</guid><description><![CDATA[<p>This is a post written in plain Markdown (<code>*.md</code>) instead of R Markdown (<code>*.Rmd</code>). The major differences are:</p>
<ol>
<li>You cannot run any R code in a plain Markdown document, whereas in an R Markdown document, you can embed R code chunks (<code>```{r}</code>);</li>
<li>A plain Markdown post is rendered through <a href="https://gohugo.io/overview/configuration/" target="_blank" rel="noopener noreffer ">Blackfriday</a>, and an R Markdown document is compiled by <a href="http://rmarkdown.rstudio.com" target="_blank" rel="noopener noreffer "><strong>rmarkdown</strong></a> and <a href="http://pandoc.org" target="_blank" rel="noopener noreffer ">Pandoc</a>.</li>
</ol>
<p>There are many differences in syntax between Blackfriday&rsquo;s Markdown and Pandoc&rsquo;s Markdown. For example, you can write a task list with Blackfriday but not with Pandoc:</p>]]></description></item></channel></rss>