a lifelong journal with
undertanding and presenting

by Frank Lin
npm install, concerns for me
While learning node.js, install packages is a commonly operation. However, as a newbie, I might install the packages not in the right way. So taking this note to refresh my mind on the npm install.
read more
by Frank Lin
Fetch lyric from QQ music using Ajax, with simple example
Get lyric for music can be easily done by several 3rd-party services. Especially in Foobar, the ESLyric component makes it easy to auto-fetch .lrc by JavaScript. But sometimes it may fail to work for certain music or from a certain lyric provider. Recently, as I installed a newer version of foobox, I found the lyrics from QQ music is getting some problems with the built-in script. So I would like to know what happens and try to fix it.
read more
by Frank Lin
Contact form for a static site without a backend
For a static site like those on GitHub Pages, everything is done in the frontend. The user just downloads a bunch of static files that execute in their browser. But for a "Contact" form, to deal with the submissions we typically need a backend service, either self hosted or a third a third-party service.
read more
by Frank Lin
Get your anaconda ready with brew install
Just add the anaconda into PATH after installing it with Homebrew. If no .bash_profile, you can append the "/usr/local/anaconda3/bin" to the paths file as well.
read more
by Frank Lin
In-place swap
In-place swap is just a logic trick used to swap a content of two distinct variables without any temporary storage variable.
read more