Long Luo's Life Notes

每一天都是奇迹

By Long Luo

一、 Math

1.1 PreCalculus

PreCalculus

1.2 Calculus

《Calculus Better Explained: A Guide to Developing Lasting Intuition》,力荐

《Calculus》 James Stewart版

《Calculus》Ron Larson版

1.3 Algebra

《线性代数及其应用》

《线性代数应该这样学》

《Algebra and Trigonometry》

1.4 视频教程

3Blue1Brown的部分数学教学视频:

微积分的本质 - 系列合集

线性代数的本质 - 系列合集

二、 Physics

物理是我很喜欢的一门课程,是认识这个世界的一门学科。 这段时间相当于重新复习及学习了下大学物理

看完了下列视频:

2.1 曹则贤先生讲座

  1. 曹则贤2020跨年开讲:什么是量子力学?【新年悟理】

  2. 曹则贤2021跨年开讲:什么是相对论?【新年悟理】

  3. 曹则贤:工业革命的物理基础——兼论对工业4.0的启发

2.2 中科院 学不分科 系列讲座

总共有10期,时间精力关系目前只看了其中几期:

物理学终极迷思:时间是什么?【学不分科第1期】

“情感大师”曹则贤:谁引诗·情到碧霄【学不分科第3期】

曹则贤:从数学方程到大自然的花样【学不分科第6期】

曹则贤:花叶序背后的数学物理【学不分科第8期】

2.3 中国科学院《云里·悟理》系列物理微课【悟理学院】

总共30期,重点看了其中几期:

【云里·悟理05】生命体系里的物理——生物物理初步

【云里·悟理09】时间和空间——物质的“舞台”

【云里·悟理14】闻声识人——声音的物理

【云里·悟理15】如汤探冷热——热的历史与热力学第零定律

【云里·悟理21】物理?生理?心理?——光与视觉

【云里·悟理27】时间的箭头——热力学第二定律

阅读全文 »

By Long Luo

之前个人网站文章阅读次数存储一直在Leancloud上,由于去年国内版要求网站必须备案才能使用之后,个人网站的浏览次数一直是不可用状态。几个月前切换到国际版,但是切换之后浏览次数一直是空白null值,正常应该是0,数据也不会更新。

后台查看Counter数据,也一直是没有数据的状态。当时花费了时间去检查,试图找到问题所在,当时还是怀疑LeanCloud国际版后台接口API的问题,但一直没能解决这个问题。

今天下午从原理入手,分析每个可能的步骤,找到了问题原因,在此记录下解决问题的过程。

如何显示阅读次数?

网站使用的是Hexo + Next主题,可以使用3种方式显示阅读次数:1. Leancloud; 2. FireStore; 3. Busuanzi

FireStore由于需要翻墙,尝试过发现不可行;

Busuanzi虽然也可以,设置之后发现首页数据显示紊乱,而且不准,使用了一段时间之后放弃;

LeanCloud是最合适的,数据也可以很方便的进行迁移。

在Next主题配置_config.yml文件中,可以设置使用哪种计数方式。注意文章阅读次数只能设置一个为true,否则页面会显示多个阅读次数。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
leancloud_visitors:
enable: true
app_id: # <your app id> hdPFnwkCdbHRj5Q3OQk5vNJQ-gzGzoHsz
app_key: # <your app key> p2mNUdDbqxrxOYMjs1xiS0zM

# Another tool to show number of visitors to each article.
# Visit https://console.firebase.google.com/u/0/ to get apiKey and projectId.
# Visit https://firebase.google.com/docs/firestore/ to get more information about firestore.
firestore:
enable: false
collection: articles # Required, a string collection name to access firestore database
apiKey: # Required
projectId: # Required

# Show Views / Visitors of the website / page with busuanzi.
# For more information: http://ibruce.info/2015/04/04/busuanzi/
busuanzi_count:
enable: true
total_visitors: true
total_visitors_icon: fa fa-user
total_views: true
total_views_icon: fa fa-eye
post_views: false
post_views_icon: fa fa-eye

如何读写阅读次数的?

这里以LeanCloud为例来说明阅读次数是如何读写的。首先打开网站首页,查看源代码:

1
2
3
4
5
<span class="post-meta-item-icon">
<i class="far fa-eye"></i>
</span>
<span class="post-meta-item-text">阅读次数:</span>
<span class="leancloud-visitors-count"></span>

可以看出,阅读次数是通过leancloud-visitors-count这个class的值来显示的,搜索leancloud-visitors-count可以在网页的js代码中找到:

1
2
3
4
function leancloudSelector(url) {
url = encodeURI(url);
return document.getElementById(url).querySelector('.leancloud-visitors-count');
}

那么这段js代码在哪里呢?

阅读全文 »

By Long Luo

Hugo vs. Hexo

目前我的个人网站使用的是: Hexo + Next Theme ,这也是目前很多个人网站的配置。

Hugo 官网号称是最快的网站框架,构建速度快,因为我的文章数比较多,以后考虑切换成 Hugo,今天花了点时间来学习了下。

以下是学习过程:

Hugo使用指南

下载Hugo

因为是Windows 10系统,先去下载:https://github.com/gohugoio/hugo/releases

选择Windows版本,下载之后解压,解压可以得到 hugo.exe ,将 hugo.exe所在文件路径添加到Windows的Path变量中:

1
2
E:\Website>hugo version
hugo v0.82.0-9D960784+extended windows/amd64 BuildDate=2021-03-21T17:28:04Z VendorInfo=gohugoio

创建站点项目

以我为例, 假设要创建站点存放在 F:\Hugo\Website\ 目录中,在命令行中切换到该目录下执行:

1
2
E:\Website>hugo new site mywebsite
Congratulations! Your new Hugo site is created in E:\Website\mywebsite.

出现上述信息,创建出了mywebsite站点项目,其文件列表如下:

1
2
3
4
5
6
7
8
9
10
2021/03/28  15:52    <DIR>          .
2021/03/28 15:52 <DIR> ..
2021/03/28 15:51 <DIR> archetypes
2021/03/28 16:09 103 config.toml
2021/03/28 16:12 <DIR> content
2021/03/28 15:51 <DIR> data
2021/03/28 15:51 <DIR> layouts
2021/03/28 15:52 <DIR> resources
2021/03/28 15:51 <DIR> static
2021/03/28 16:08 <DIR> themes

添加主题

有了文件之后,还无法构建网站,因为hugo默认是没有主题文件的。这里选取一个简洁的主题

1
git clone https://github.com/yihui/hugo-prose.git themes/prose

当前项目目录内打开 config.toml 配置文件,在最后添加一行 theme = "prose" ,即将这个网站设置为 prose 主题。

运行站点

在站点项目内执行命令 hugo server -D

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
E:\Website\mywebsite>hugo server -D
Start building sites …

| EN
-------------------+-----
Pages | 10
Paginator pages | 0
Non-page files | 0
Static files | 4
Processed images | 0
Aliases | 1
Sitemaps | 1
Cleaned | 0

Built in 30 ms
Watching for changes in E:\Website\mywebsite\{archetypes,content,data,layouts,static,themes}
Watching for config changes in E:\Website\mywebsite\config.toml
Environment: "development"
Serving pages from memory
Running in Fast Render Mode. For full rebuilds on change: hugo server --disableFastRender
Web Server is available at http://localhost:1313/ (bind address 127.0.0.1)
Press Ctrl+C to stop

然后在浏览器界面中输入:http://localhost:1313/

如果顺利打开之后,出现了Hugo网站界面,那说明安装好了!

不过这个时候还是没有内容的,因为我们还没有添加内容:-)

阅读全文 »

晚上在水木社区一篇帖子上看到一篇文章《难忘那夜的秋雨》,写的非常真挚感人,看完深受感动,没想到作者居然是 吴官正 。作为一名农民的儿子,曾经有过同样的感受,我想他能从一个赤贫小子成为常委之一,这种骨气和自强不息的精神内核才是根本吧!

《难忘那夜的秋雨》摘自吴官正退休后写的一本书 《闲来笔潭》 ,于是我按图索骥,去读了这本书里的其他文章,有些文章也很精彩。尤其是第一部分:岁月难忘,让我们得以一窥他的年少成长史。从他的经历中获取力量。

下面摘录几篇《闲来笔潭》里我觉得写的很好的文章:


难忘那夜的秋雨

文 / 吴官正

1950年深秋,我母亲到亲戚家赊了头小猪来养。大约过了不到十天,亲戚家的掌门人来到我家,对母亲说:“我是来看弟弟的,顺便来收你赊的猪崽钱。”

母亲说:“现在确实没钱,等筹到钱一定给您送去。”这位掌门人没有说行还是不行。接着,她指着我家的破屋说:“我的亲戚现在住的都不错,就是你还住牛栏,这么破,这么矮,狗都跳得过去。

晚上,父亲知道了,大发脾气。好像猪崽也听懂了似的,不停地叫。父亲骂母亲没骨气,怨亲戚无情,也恨自己没用,坚决要把小猪送还人家,宁愿饿死,也不低三下四

母亲没办法,要我同她一起在小猪脖子上绑了根绳,牵着赶回亲戚家。

已是凌晨二时许,秋风瑟瑟,细雨绵绵。

我在前面牵着小猪,母亲在后面吆喝。快走到村西两棵大樟树旁时,想到这里曾枪毙过一个恶霸、一个反革命,那个恶霸被步枪打穿了胸脯,血肉模糊;那个反革命被手枪打碎了脑壳,脑浆迸溢。因曾亲眼目睹,感觉十分恐怖。顿时我双腿发软,走不动了,吓得哭了起来。

母亲也难过地哭了,安慰我说:“不要怕,哪里有鬼?就是有鬼,也不会吓我们这样的穷人,我活了四十多岁,受过人的欺侮,没有受过鬼的欺侮!”我心里好像得到了一种从未有过的安慰,又好像吃了一颗壮胆药。

再往前走了约一百米,又看见村里一个被邻村杀死的人放在棺材里,并用砖垒了一个小屋,说是报了仇才能下葬。我又害怕起来,但还是硬着头皮,牵拉着小猪往前走。这家伙不停地叫,好像是为我们壮胆,为我们叫苦,抑或是抨击人情太薄

再往前,要翻过一座山,走二里多长的山路,这时雨下得更大了,身上也湿透了。走在山路上,忽然窜出一只动物,不知是狼是狗,吓得我胆战心惊。母亲说:“不要怕,你是个大孩子了,畜生不会伤害我们。”

快到西北边山脚下时,看到一大片坟墓,大大小小的坟堆,好像大大小小的土馒头。母亲说:“再走一会儿就出山了,有我在,你不要怕。”

我想到母亲可怜,又呜呜地哭起来。

大约又过了半个多小时,终于把小猪送到亲戚家,这时天才蒙蒙亮。掌门人淡淡地说:“把猪关到栏里去,你们吃过早饭回去吧?”

我们全身湿透了,像落汤鸡,一夜折腾得够呛,连水都没喝一口,肚子早饿了。但母亲只轻轻地说了句:“谢谢,我们还要赶回去。”

在往回走的路上,天先是阴森森的,慢慢地亮了些,秋雨袭来,身上不时打寒噤。

回到家里,看到我们可怜的样子,父亲没做声,转过身去,不停用手抹眼泪。母亲赶紧把我的湿衣服换了下来,都是打补丁的旧土布衣服。父亲煮了一锅菜粥,桌上放了一碗咸芥菜,也没放油。父亲说:“哼,人穷盐钵里都会长蛆。”

母亲对我说:“你都十多岁了,家里人多,几亩地又打不到够全年吃的粮食,你爸爸也忙不过来,不要再去读书了,好吗?”

我没做声,放下碗,倒在床上哭。父母心软了,让步了,又说:“是同你商量,你硬要读就去读,反正我们穷。”我爬起来,饿着肚子就往学校跑,母亲把我追了回来。

这天傍晚,乌云密布,秋雨扑面,可晒场上的那棵松树,还是那样刚劲,不管严冬还是酷暑,总是那么挺拔。

吃晚饭时,父亲突然问:“你能读个出息来吗?今后能不能当上小学教师?”我说:“不知道,只要你们允许我读,我会努力的。”这时,母亲发现我发高烧,赶紧烧了一大碗开水,叫我全都喝下去,盖上被子把寒气逼出来。

窗外秋雨仍下个不停。秋风从船板做的墙壁缝中往里面灌,冷飕飕的。看到父母骨瘦如柴,岁月和苦难在脸上刻满了忧愁,我鼻子发酸,眼前一片漆黑。再看自己皮包骨头的手,像鸡爪子,皮肤像那两棵老樟树的皮

有人说:“求人比登天难,人情比纸还薄。” 这虽不是生活的全部,却也道出了世态炎凉。

童年经历的人间苦难,令我对生活在社会底层的人感同身受,格外关注弱势群体的生存状况。我自认为是个有情有义的人,尤其懂得知恩图报


阅读全文 »

By Long Luo

这是 Leetcode 525. 连续数组 的题解。

方法一:暴力

思路与算法:

首先想到的方法是暴力法,遍历数组,计算 \(0\)\(1\) 的数量,如果相等,则更新最大长度 \(\textit{maxLength}\)

代码如下所示:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
public int findMaxLength(int[] nums) {
if (nums == null || nums.length <= 1) {
return 0;
}

int ans = 0;
int len = nums.length;
for (int i = 0; i < len; i++) {
int zeroCnt = 0;
int oneCnt = 0;
for (int j = i; j < len; j++) {
zeroCnt += nums[j] == 0 ? 1 : 0;
oneCnt += nums[j] == 1 ? 1 : 0;

if (zeroCnt == oneCnt) {
ans = Math.max(ans, 2 * zeroCnt);
}
}
}

return ans;
}

复杂度分析:

  • 时间复杂度:\(O(N^2)\),其中 \(N\) 是数组 \(\textit{nums}\) 的长度。
  • 空间复杂度:\(O(1)\)
阅读全文 »
0%