Posts by Year


Comparison of Time-Frequency Transforms

Stefan Scholl made a nice comparison between different kinds of time-frequency transforms available: Fourier, Gabor, Morlet or Wigner. The paper on Arxiv is ...



R Notes

R is popular among statisticians and biologists. It is one of the most commonly used languages in data analysis.

Back to Top ↑



I am glad to see the evolving of modern shells. I enjoy using zsh, but now there are even fancier ones: nushell. It highlights three features:

Experiment Design

Any successful experiment requires careful design beforehand. There are systematic methods for ensuring the validity of test results.


The Intel profiler VTune and Trace Analyzer are now bundled in the OneAPI toolkit. It works best for C/C++ codes, and decent for Fortran. I have some good ti...


Matplotlib is a great library, but there are still issues. Over 20 years of development and 3 major version releases, Matplotlib has evolved into a giant lib...



Gravity Wave

Make analogies of what you don’t know to what you know.



Back to Top ↑


Blunt Body Problem in Hydrodynamics

At first sight, this seems to be an easy problem: there should be some kind of analytical solution given an ideal shape of the obstacle, say a cylinder in 2D...

Parallel Programming Concepts


Fourier Analysis

I hate it when people make simple things complicated, and complicated things impossible.

Wavelet Transform

There are already many nice introduction of wavelet transform, like here and the following video. This is my simple note on WT while reading those tutorials.

Cross-Wavelet Transform

Before we talk about cross-wavelet transform (CWT)1, we need to understand wavelet transform (WT). Before we learn wavelet transform, we’d better have a good...

Ubuntu Soundtrack

I’ve been using Ubuntu 18 for quite some time now. One thing that is frequently not working properly is the sound output switches. It happens from time to ti...

Linux Memory

Since I started working with Vlasiator, I have encountered many issues related to memory usage. Now it’s a good time to go over some basics in Linux’s memory...

Advanced Python

Good languages stop you from writing stupid codes; bad languages allow you to write more stupid codes. Do not live on ancient code until death!



Evolution of Programming

In the 20th century as a programmer, you have to learn and write machine code. In the 21st century, it is no longer the case.

N-Body Simulation

N体问题是力学中的著名基础问题,当\( N \ge 3 \)时的解析解迄今依旧是个问题,仅在某些特殊情况下(比如其中若干个粒子/物体的质量相对极小)有解析解。 N体问题也是粒子模拟中的经典问题,分子动力学的入门例子就是一个势场中粒子的相互作用问题。


作报告的时候,我们可以尝试加入电影一样的运镜方法。这方面比较亮眼的产品是一款叫Prezi的在线编辑器。 用它做出来的展示品不仅可以实现运镜效果,还可以在视频及视频会议中达成类似动态展示的效果。官方支持里面竟然没有中文,这是有点令人意想不到的。

Geometric Algebra

“A unified mathematical language for the whole of physics.” - David Hestenes “The most powerful and general language available for the development of m...

Kalman Filter

The first time I’ve heard about Kalman filter is during my exploration of image feature extraction. A MATLAB demo shows how Kalman filter can be used to trac...



Internet Connection

Since I have moved to the new apartment, the intermittent internet interruption has been bothering me. However, this provides me a good opportunity to learn ...

GDB Debugger

One way of debugging segmentation fault is using GDB. It is such a deep learning curve that no one ever claims he or she fully understands the complete usage...

IO Hardwares

Data access speed is important. In many applications, it is more important to have faster data access speed than higher CPU frequency.



Compiler Flags

As programmers, we tend to be smarter than compilers. More often than not, we can’t. Nowadays, compilers comes with hundreds of flags to choose from. To make...

Chromium Browsers

When I bought a new laptop a few months ago, I decided to get a new Win10. Now the default browser on Win10 is Edge, which is built upon Google’s Chromium ke...

Linux Distros and WSL2

Being annoyed by the CENTOS linux distro from Redhat, I’ve decided to take a look at some latest distros available. There are several amazing ones already! I...

Command Line Tools

When using properly, command line is often the easiest and fastest way to get tasks done, even though the same thing can be also accomplished in other ways l...

Back to Top ↑


Software Installation

The first thing to tell if one is familiar with codes is whether he or she can compile it. As I move to new group using a completely different code, this is ...



ARM-64 Architecture

There is probably a ongoing trend of adopting arm chips to commercial and even high performance computing world. I got a chance to try out the new Raspberry ...

Practicing C++

If scientists read coding standards and recommendations like C++ Core Guidelines in the first place, then it is less likely that science codes will be poor i...

Mac Setup

Part of this post originates from Dan Welling’s article Your Mac as a Linux Box.

Passing Arguments

The design of high level program structures is very challenging. One common headache for me is how to pass arguments between function efficiently.

Git Version Control

I haven’t considered myself a programmer until very recent years. As a proof of that, 2017/08/28 is the first day I use Git. My experience of using a version...

PNG Compressor Permalink

I have tried an excellent PNG file compressor online: TinyPNG. Usually this can compress a figure by about 60% without lossing visually detectable quality! T...

Shared Library

This is a collection of knowledge about shared/dynamic libraries.

Behaviour of BibLaTeX

biblatex will display author’s first name to distinguish different authors with the same last name. You may accidentally have the same author but different s...

Plotting of Streamlines

The built-in streamline function of Matplotlib/MATLAB is not proper for scientifically visualizing field information. 一开始在MATLAB上开发VisAna的时候,记得Gabor就在说怎么这个磁力...

Back to Top ↑




Using latexdiff

Compare the differences between files is a tedious task. However, if you pick the right tool, it may become as easy as one line command.

Paraview Usage

Paraview is a powerful tool for visualization and postprocessing, but it requires some effort to get familiar with it. The learning curve suddenly becomes st...

Ole Solskjaer


Making Videos from Figures

An animation is simply frames of figures. It is pretty helpful to be proficient at generating a set of figures and combining them into a video.

Biostation Retreat







Madison离Ann Arbor不近也不远,六个多小时车程,除了在Chicago恼人的堵车之外,其他的行程还是惬意的。我原以为她就在密歇根湖边,实际上在湖边的是密尔沃基,而麦迪逊坐落于密尔沃基正西约一个半小时车程的地方。她市里面有两个湖,大到曾让我看着地图以为是五大湖。UW的校园正处于两湖之间,一片空阔,风景绝...

Back to Top ↑


DC 三番记






Back to Top ↑


Back to Top ↑