Samuel Huang's Portfolio

尽心,知性,知天

Our first solution is using dictionary. This has a \(O(1)\) complexity for setting and \(O(n)\) for getting, as we have to perform linear search. There are two tricks:

  • Extending the defaultdict class.
  • Chaining the .get(key, {}).items() expressions to make code looks more elegant.
class TimeMap(defaultdict):
def __init__(self):
super().__init__(dict)

def set(self, key: str, value: str, timestamp: int) -> None:
self[key][timestamp] = value

def get(self, key: str, timestamp: int) -> str:
max_time = 0
res = ""
for time, val in super().get(key, {}).items():
if max_time < time <= timestamp:
max_time = time
res = val
return res

However, the runtime exceeded limit when testing on LeetCode.

Read more »

Netlify Status

A small React frontend project. The webapp is deployed at hexagram.netlify.app, with code open-sourced on GitHub.

Tools I used:

  • React
  • React Query (for handling API caching)
  • Framer Motion
  • Tailwind CSS (for quick prototyping and responsive design)
  • Vite
  • Netlify (for deployment)
  • ESLint
  • Prettier

This post proposes a Pythonic implementation of Trie data structure, with insert, search, and starts_with methods. With careful design, the Pythonic improvements reduced the lines of code from 27 lines to 8 lines.

class Trie(dict):
def insert(self, word: str) -> None:
reduce(lambda node, c: node.setdefault(c, {}), word, self)['$'] = True

def search(self, word: str) -> bool:
return self.starts_with(word + '$')

def starts_with(self, prefix: str) -> bool:
node = self
return all(node := node.get(char) for char in prefix)
Read more »

An efficient solution to this problem that beats 99.92% solutions in runtime and 98.79% in memory usage.

start = min_start = 0
end = -1
min_w = len(s) + 1

table = [0] * 128
count = len(t)

for c in t:
table[ord(c)] += 1

for c in s:
end += 1
if table[ord(c)] > 0:
count -= 1
table[ord(c)] -= 1

if count == 0:
while table[ord(s[start])] < 0:
table[ord(s[start])] += 1
start += 1

if end - start + 1 < min_w:
min_w = end - start + 1
min_start = start

return "" if min_w == len(s) + 1 else s[min_start:][:min_w]
Read more »

First, the general criteria is defined as follows:

  • Widely used.
  • Actively maintained.
  • Comprehensive extensions support.
  • Appealing appearance.
    • Responsive.
    • Mobile friendly.
    • Dark mode.

This solution beats 98.90% solutions on LeetCode by runtime and 98.03% by memory usage. My notes for this problem can be found at here.

1
2
3
4
5
6
7
8
9
substr = ""
for c in s:
index = substr.rfind(c)
if index == -1:
substr += c
else:
substr = substr[index + 1 :] + c
max_len = len(substr) if len(substr) > max_len else max_len
return max_len
Read more »

When migrating older posts to new website system, the images stored in my Gitee repo were not loading. Interestingly, these images were accessible directly through the browser. My first thought was that the loading process was timing out since Gitee's servers are in China. However, this didn't make sense as the images loaded in a reasonable amount of time in browser.

After an unsuccessful search in English, I switched to searching in Chinese. This instantly led to the solution. There's a large Hexo community in China and a specific Chinese term for this type of image storage, "figure bed" (图床), which helped me find the solution efficiently

Read more »

Background

I have two domains registered:

  • sghuang.com, with my initials for English and Chinese first names and last name.
  • guanchao.pro, with my first name in Chinese.

Since my portfolio is oriented towards English speakers (for now,) I want to point the secondary domain to the primary one while ensuring URLs with paths can still be accessed. The primary domain is used for this website hosted on GitHub Pages.

Cloudflare is used as the nameserver and provides simple proxy features.

Read more »

What a longstanding issue in the history of web! Traditionally, when rendering HTML, a soft line break would be treated as a space. This makes sense for European languages consist of words, but not for CJK languages -- there are no spaces in CJK languages!

Solution

Here are three links that lead to the solution to this issue in Hexo:

  • hexo.io/news/2019/12/15/hexo-renderer-markdown-it-4
  • github.com/hexojs/hexo-renderer-markdown-it
  • github.com/markdown-it/markdown-it-cjk-breaks

You just need to follow two steps:

  1. Replace default marked renderer with markdown-it

    npm r --save hexo-renderer-marked
    npm i --save hexo-renderer-markdown-it
  2. Enable the CJK breaks plugin:

    markdown:
    plugin: [markdown-it-cjk-breaks]
Read more »

This is the project for course CSE 60467 Data Science. In this project, I led a team of three students to conduct analysis on the sentiments of comments related to climate change on Reddit. I was responsible for clustering analysis and project management. The dataset we used can be found on SocialGrep For more details, view our project report.

Here are some of the interesting insights we found from the dataset.

The longer the comment, the stronger the sentiment.

Sentiment vs Comment Length

There are more discussions on climate change in summers and winters.

Number of Comments by Month

This project is for course CSE 40373 Embedded System Development in 2024 Spring semester.

In this project, I created a system that employs a motion sensor to detect nearby movements, triggering a camera to capture an image when motion is detected. This image is then processed using the YOLOv8 model for object recognition. If the object is an animal of interest, users receive a push notification on their iPhone via the Bark API, and the image is uploaded to Google Drive.

The source code of this project is hosted here.

梦中

我和她「相识」是在 2020 年的春节前,也就是新冠疫情快要爆发的那段时间。

那年冬天,在结束了在南科大的第一个学期之后,我带着南科大招生办的寄托,以及我自己 一腔为后辈们的人生抉择产生一点影响的社会责任感,我回到了母校郴州一中。那些在校园 里的慷慨陈词和强装出来的意气风发,这里按下不表。

后来,我收到了一条 QQ 的好友申请。这个女生叫做「蔌心」。正像大多数梦一样,我是如 何在交谈中渐渐得知她的一些基本信息的已经无从回忆,这里先简单列举一下:她称自己并 非是湖南本地人,而是举家从东北搬到这里;她有个外号叫「盼盼」;她有一个弟弟,名唤 「蔌然」;她不在本年级的重点班;根据她分享的故事,似乎她是个类似校花的复杂人物。

总之,我不得不有点羞愧的承认,彼时内心匮乏无比的我,将这个素未谋面的女生当成了某 种救命稻草,寄托我内心的躁动。在很短的时间窗口里,我们在线上聊天许多。

Read more »

Project for course SME306 Advanced Digital CMOS IC Design in Spring 2023 semester. We designed and simulated a 180nm process 4x4 bit array multiplier using Cadence. The layout is displayed below.

Multiplier

During the summer of 2022, I had the fantastic opportunity to work at the Cooperative Computing Lab (CCL) under the guidance of Prof. Douglas Thain. I was involved in developing the Cooperative Computing Tools (cctools), an open-source toolkit for HPC entirely built in C.

This summer research stint was packed with collaboration and hands-on experience, especially with Git and GitHub. Our Senior Software Engineer initially helped us tidy up our Git history, setting a solid foundation for the work ahead. I also dove into the book Pro Git to deepen my understanding. By summer's end, I was the go-to person for resolving Git issues among my peers!

Visit here to view a all my pull requests. The two major contributions I made are described in the following sections.

Transaction Log Visualization

I developed a Python tool to designed to visualize the transaction logs generated by work_queue in order to identify performance bottlenecks in the distributed computing system. Recognizing that matplotlib alone was inadequate for this task, I conducted research on alternatives and decided to utilize the Bokeh library.

To know more about this tool, see:

The following are examples of generated visualization.

Viz-1
Viz-2

It's incredibly rewarding to see my work make a lasting impact! After my first stint at CCL, I was thrilled to learn that:

  • This visualizer is actively used in research, the graphs it created were featured in the research papers.
  • CCL is in the process of developing a new online dashboard, which continues to use Bokeh for interactive visualizations. It’s great to see that my choice of technology has been well-received and adopted for ongoing projects!

"Draining" a Work Queue Factory

A feature request was raised on Jan 15, 2016:

I'm not sure if this is even a sensible request, but it would be really nice if you could "drain" a work queue factory--in other words, tell a factory that it should reduce the number of connected workers, but only by removing workers after they complete their current tasks.

6 years after this feature request is proposed, I claimed this issue and implemented a mechanism to reduce the number of distributed workers without compromising task progress.

For more details see the Pull Request #2912. I quote from it the way I design this system:

  • Work Queue Factory includes FACTORY_NAME to indicate where the workers come from.
    • A command line argument for work_queue_factory to specify factory_name.
    • A command line argument --from-factory <factory_name> for work_queue_worker.
    • In read_config_file, work_queue_factory launches the workers with --from-factory=.. argument.
  • Factory reports this workers_max to the catalog server.
  • Manager reads the info and take actions.
    • Manager reads workers_max from the catalog server.
    • Manager maintains a dictionary of factory structs.
    • Manager sends shutdown signal to excessive workers in the factory that are not running any tasks.
    • Do not dispatch tasks to workers until currently connected workers is less then workers_max.
    • Whenever the last task on the worker is returned, shut down that worker.

This post describes my project for course CSE 40932 Exotic Computing in Spring 2022. In this project, I developed a UTM with text interface using Python. It supports several command line options, takes input and rules from files, and display the steps as the emulator runs.

To know more about this project, visit the GitHub repo and read the project report.

As a side-note, during the course, I helped Prof. Kogge fix many typos and errors from the book he was writing, The Zen of Exotic Computing and was included in the acknowledgement section.

This post details my project for SME309 Microprocessor Design in Fall 2021 semester. In this project, I wrote a microprocessor that implements basic instructions of AMRv3 along with a multi-cycle multiplier. As a side-note, I achieved a score of 98/100 for this course, and ranked the first in the final exam.

Read more »

This project is for course SME307 CMOS Analog Integrated Circuit Design in 2021 Fall semester. We designed and simulated this amplifier with Cadence.

To know more about this project, read our report, which is written in IEEE conference format. The following figures are from the report.

Schematic of the amp:

Schematic

Frequency response of the amp:

Freq Resp

这篇文章最后并没有完成

笔者是南方科技大学致仁书院 2121 班大学长,与同学们短暂相处了一学期之后,我便要赴 美交换一学期了。临行之际,感时伤事,写下本文,既是对同学们的嘱托,又是我自己的 深切反思。我相信,本文涵盖的思考,不仅对 2121 班同学有价值,对致仁书院同学有价 值,对南科大同学有价值,也对所有追寻梦想之路上摸索着的人们有帮助。

Read more »

在目前的调试中,选择了最新的 YOLO-v5 网络,但不排除后期根据需求进行替换。

华为的 Atlas 200DK 开发板,其功能极不全面,文档极不完善,其前后端、代码、文 档、环境,甚至于简单的版本号等都极为混乱,软硬件兼容性、泛用性都极差,其广告 语 "30 分钟快速搭建 AI 开发环境" 恐有所失实,我们极其不建议使用这款产品进行 AI 开发。

Read more »

昨日 “文化人类学导论” 课程结课,一位同学向大家分享了关于读书之调查,今天又被问及 自己关于读书的故事,于是回忆起这几件事情记录下来。当然,虽然此处关于笔者父母的 几件事情都是 “坏事”,但在与其他人相处中,“好事” 也是有的,否则今天还喜欢阅读也不 太说得过去 —— 只不过,这些好事,也多半和父母没什么关系了。

Read more »

This course project for Digital Image Processing integrates LSB steganography in images with Hamming Code error correction. I chose this topic because I was fascinated by the video made by 3Blue1Brown explaining Hamming Code, and I have a strong interest in bit operations.

You can learn more about this project by reading the comprehensive project report.

Challenges Encountered

accuracy
  • Hamming Code cannot recover from excessive bit errors caused by significant damage to the image file.
  • I wasn’t familiar with Git at the time, the commit history was unclear.

Successes Achieved

  • Several elegant code snippets were developed, which I’m proud of.
  • The code is fairly Pythonic, many builtin features are utilized.
  • The code is well documented with docstrings.
  • The final report is comprehensive.

安装 WSL

配置 WSL 的 GUI 环境

samuel@RYZEN-3800X-SAM:~$ firefox
Error: no DISPLAY environment variable specified

https://x410.dev/cookbook/

https://x410.dev/cookbook/wsl/setting-up-wsl-for-linux-gui-apps/

https://x410.dev/cookbook/wsl/using-x410-with-wsl2/

export DISPLAY=$(cat /etc/resolv.conf | grep nameserver | awk '{print $2; exit;}'):0.0

配置 TensorFlow 环境

https://docs.docker.com/engine/install/ubuntu/

curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg

这是笔者在南方科技大学 2021 年春季学期公选课 “深圳的改革开放与现代化进程” 中的课程 作业。笔者并非社会科学专业学生,也非深圳本地人,更没有真切的在深圳工作的经验, 而只是于深圳求学两年,本文的完成也较为仓促,因此若出现事实错误疏漏,还恳请指 正。

如无特别说明,本文中援引的深圳市数据均来 自深圳统计年鉴 2020, 全国统计数据均来 自中国统计年鉴 2020

长久以来,我国的互联网社会上流传着一句话:“深圳赚钱深圳花,一分别想带回家”,这一 观点虽然在一定程度上反映的是深圳高物价高房价,生活成本过高的现实,但我们仍需注意 到,其背后隐藏着的是对改革开放以及作为社会主义先行示范区的深圳的挑衅和不满。因 此,我们必须正视并正面回答这一问题:在深圳赚钱,究竟有几分能带回家?

Read more »

本报告由深港微电子学院黄冠超(学号 11912309)贡献,所有相关的资源,包括源代码、数 据集与报告可在我的 GitHub 仓库获取

基于 [@abeardear](https://github.com/abeardear) 提交 在 abeardear/pytorch-YOLO-v1 仓库中 的源代码,利用 YOLO-v1 网络,实现对零件的主体、边缘、中心的预测与定位。

合并标注文件(缺少预处理)

依照原本的要求,物体及其位置标注应当从 labels 目录下的.txt 文件中合并后读取, 但随后证实其中的数据与网络训练不匹配,需要进行预处理,否则将导致模型完全失效, 无法进行预测。

前期调试时,所使用的无效的标注数据可能导致诸如数值错误等未可预料的异常, 在源代码调试中,部分错误可能实际上由错误的标注数据所引发。

通过文件读写合并标注数据文件。

path = 'labels/'
with open(path + 'label_train.txt', 'w') as fw:
for i in range(1, 201):
file_name = path + str(i).rjust(7, '0') + '.txt'
with open(file_name, 'r') as fr:
for line in fr.readlines():
fw.write(line.strip() + ' ')
fw.write('\n')

此处标注数据的组成形式为 c, x, y, x2, y2,因此需要对应修 改 dataset.pyyoloDataset 类下的__init__() 方法:

x = float(split[1 + 5 * i])
y = float(split[2 + 5 * i])
x2 = float(split[3 + 5 * i])
y2 = float(split[4 + 5 * i])
c = split[0 + 5 * i]
Read more »

前言

首先要向关注我的读者们(假如有)道个歉,因为学业繁忙,一直都没有时间撰写新的文 章。咕咕的日子里我也学到许多东西,近段时间尤其多,特别是环境的配置涉及到许许多多 细枝末节的问题,而且其中有很多灵光一现的 debug 思维我觉得特别有价值且值得玩味。如 果不写点东西记下来了话,大概将来就都忘了吧。综上,我更深刻地认识到写博客是开发者 最好的学习方式,所以要陆陆续续地重新开始写文章了!

也正因此,今后的技术类文章会着重于记录调试、配置的细节,力求还原脑力劳动的思路, 希望将来的我会感谢努力的自己!

Read more »

自 2020 年中以来,越来越多的人以及自媒体开始意识到、提起和关注内卷(involution)这 一话题。内卷到底是什么,它对我们和我们所生活的世界造成了怎样的深远影响?我们应该 如何对待内卷?而本文所尤其关注的是,2021 年的准大学生又应该如何面对社会竞争内卷化 这一浪潮?

本文为笔者为 2021 年湖南省郴州市第一中学的返校宣讲活动 “Dating Future” 所录制的演 讲的讲稿。笔者并非社会科学专业,文中所涉内容若有疏忽谬误,或对某些群体有所冒 犯,还恳请读者及时指正。

对于在各个平台关注了我的读者,首先十分感谢你们对我的肯定。发出这篇文章之前久无 更新,一来是因为我学业和科研事务繁重,实在无从抽身;二来也是因为写文章纯粹随 缘,并无长期创作的习惯。不够高产,还望海涵。

Read more »

This post details my project for the CSE203B course, Design and Analysis of Algorithms B1, in which I led a team of four students. Our main task was to implement Strassen algorithm, a classic example of recursion. To fully embrace this challenge, we opted to develop our own matrix library rather than relying on NumPy. This project was my first taste of Python OOP and magic methods -- and it was enjoyable!

Read more »

This document is intended for the reviewing of the course Fundamentals of Electric Circuits.

Preface

Current

Current is the rate of charge flow past a given point in a given direction.

\[ i = \frac{\mathop{dq}}{\mathop{dt}} \]

Voltage

Voltage is the energy required to move 1 C of charge through an element.

\[ v = \frac{dw}{dq} \]

Power

Power is the energy supplied or absorbed per unit time.

\[ p = \frac{dw}{dt} = vi \]

Passive Sign Convention

Passive sign convention is satisfied if the direction of current is selected such that current enters through the terminal that is more positively biased.

Law of Energy Conservation

\[ \sum p = 0 \]

Sources

  • An ideal voltage source has zero internal resistance and is capable of producing any amount of current.
  • An ideal current source has infinite resistance. It is able to generate any voltage to establish the desired current through it.
  • Ideal dependent source
Read more »

Ch. 21 Coulomb's Law

Charge

  • Plastic rod rubbed on fur: negatively charged
  • Glass rod rubbed on silk: positively charged

The total (net) electric charge of an isolated system is conserved.

  • Charging by induction (without losing its own charge)

\[ e=1.60\times10^{-19}\rm C \]

  • Quantized Charge
  • Millikin Oil-Drop Experiment

Coulomb's Law

\[ F=k\frac{|q_1q_2|}{r^2} \]

\[ k= \frac{1}{4\pi\epsilon_0} = 8.99\times10^9 \rm N\cdot m^2/C^2 \]

\[ \epsilon_0 = 8.85\times10^{-12}\rm C^2/N\cdot m^2 \]

  • \(k\) is the electromagnetic constant
  • \(\epsilon_0\) is the permittivity constant
  • Principle of Superposition
Read more »

16.4 平面上的格林定理 1

对于保守场上的线积分,既可以直接通过在路径上积分计算,也可以找到势函数再计算。这 一节有关于一种在平面上的封闭路径上,将非保守场的路径积分转化为二重积分来计算的方 法。

Read more »

之前提到的平面上的曲线定义有以下几种形式

名称 数学表达
显式 \(y=f(x)\)
隐式 \(F(x,y)=0\)
参数化矢量形式 \(\mathbf{r}(t)=f(t)\mathbf{i}+g(t)\mathbf{j},\quad a\le t\le b.\)

空间中的曲线也有几种表达形式

名称 数学表达
显式 \(z=f(x,y)\)
隐式 \(F(x,y,z)=0\)
Read more »

有时为了计算出空间中一条曲线形状的线条的质量,或者是计算变力沿着某条曲线的做工, 需要对这条曲线而非某个区间进行积分。于是我们引入线积分的概念(实际上路径积分这个 词更准确)。

Read more »

这一节介绍包含在坐标系变换中的简化多重积分的 idea。这样的方法通过简化积分式,或是 积分上下限,或是两者都简化来监护多重积分的计算。

详细的逻辑推导则是数学分析课程的内容。

Read more »

15.5 直角坐标系下的三重积分 1

相比于单积分,三重积分让我们可以处理一些更加 general 情况下的问题,如三维形状的体 积,三维区域上的平均值等。三重积分还引出了矢量场 2 和流量 3 的问题,在 16 章中介 绍。

Read more »

这一节将会讨论二重积分更 general 的形式,而非仅是在矩形区域上进行积分。


在有界、非矩形区域上的积分

与上一章节中的矩形区域情况下一样,我们依然取很多的 partition,但这一次由于区域边 界并不规则,必然出现有些 partition 部分在区域内部分在区域外的情况,我们只考虑完 全在区域内的 partition

Fig. 15.8
Read more »

15.1 矩形上的二重与累次积分 1

在 Calculus Ⅰ 里,通过黎曼和 2 定义了一元函数定积分的概念,对于二元函数也类似。

二重积分

考虑函数 \(f(x,y)\) 在一个矩形的区域上:

\[ R:\quad a\le x\le b,\quad c\le y \le d \]

可以分别沿 \(x\) \(y\) 方向把这个矩形区域分成很多小矩形,每一块称为一 个 partition,宽 \(\Delta x\),高 \(\Delta y\),有面 积 \(\Delta A=\Delta x \Delta y\)。长宽中较大的那个,称为这一个 partition 的 norm,记为 \(||P||\)

Read more »

自近代以来,由于一系列历史与现实的原因,我们的对待西方的政治、经济、社会制度与文 化的看法经常步入极端,或在群众中有较大的意见分歧。曾经有过对西方的敌视和鄙夷,认 为西方一定是万恶和一无是处的;也曾有过盲目的崇洋媚外,鼓吹西方的一切都是好的,但 这都并非我们对待另一种文化和制度的正确态度。

Read more »

鼓笛队

献给瓦列里・米哈伊洛维奇・哈利洛夫中将
以及所有不幸牺牲的亚历山德罗夫红旗歌舞团团员

你们的名字无人知晓,你们的功绩与世长存
Имя твоё неизвестно, подвиг твой бессмертен.

1941 年,纳粹德国发动巴巴罗萨行动,入侵苏维埃社会主义共和国联盟,伟大的卫国战争 就此打响。苏联军民历经四年浴血奋战,以 2700 万生命的惨痛代价,最终击败法西斯侵略 者,捍卫了神圣的苏维埃土地。

1945 年 6 月 24 日,从苏联红军前线北冰洋到黑海的十个方面军抽调的最优秀的士兵组成 的混成团乘着列车开往首都,他们将在莫斯科红场参加一场史无前例的盛大阅兵。

1945 年胜利日阅兵

当天莫斯科的天气并不晴朗,天空中下着小雨,但士兵们胸前挂满的勋章依然闪闪发亮。50 门礼炮在莫斯科鸣放,1400 名乐手组成的庞大乐团奏响军乐,红军战士们将缴获的纳粹军 旗投掷在列宁墓前……

1945 年胜利日阅兵

如今,于每年的 5 月 9 日胜利日举行的纪念伟大的卫国战争胜利阅兵式已经成为惯例,它 不仅是俄罗斯爱国主义精神的一座灯塔,也是苏联人民奋勇抵抗法西斯的见证,更象征全人 类对自由与和平的向往。本文将从另一个方面 —— 胜利日阅兵中的军乐艺术,对这一世界军 事、文化和艺术上的奇观进行剖析。

Read more »

民主:概念与模式

民主概念

目的论定义:根据权威的来源和目的(来自人民的同意)程序性定义:权威产生的方式和程 序(选举)

两者都是对民主的界定。

  • 民主必须有制度的保障,符合民主的程序
  • 民主本身必须有限制,得到制约
  • 民主的程序要符合民主的目的,反之则是民粹
Read more »

政治发展概述

政治发展的概念

一个政治系统在历史演进过程中,其结构渐趋于分化,组织渐趋于制度化,人民的动员参 与支持渐趋于增强,社会渐趋于平等,政治系统的执行能力也随之加强,并能渡过转变期 的危机,使政治系统之发展过程构成一种连续现象。

—— 陈鸿榆

Read more »

利益集团的界定

利益集团是由共享利益或共同态度公民个人和组织所组成的、通常是正式组织起 来并将其集体资源投入政治行动的集合体,是自立于政府或政党之外试图影响公 共政策的组织,是特殊的政策参与者。

  • 具有一定程度的、相对稳定的关系结构
  • 具有一定的影响力和社会地位,并为政府和社会所认可
  • 对自身利益有清晰把握,并将维护自身利益作为组织设定的目标
  • 利用合法手段向政府和公众表达利益
Read more »

在世界近现代史上,政党既是西方宪政民主和议会民主的产物,也是宪政民主和议会民主的 重要标志。现代政党随着选举权的普及和政治参与的大众化而逐步发展起来,又是选举权普 及和政治参与扩大进程的主要推动者。

Read more »

二阶导数判定的推导

二阶导数判定也就是用于判断、一个两个方向偏导数都为零的 critical point 是否是极值点 的方法。

假设 \(f(x, y)\) 在区域 \(R\) 上一点 \(P(a,b)\) 附近有连续的偏导数,并且满 足 \(f_x + f_y = 0\)(是一个 critical point)。取一段微小的 increment \(h\) \(k\),使得 点 \(S(a+h, b+k)\) 仍然落在区域 \(R\) 内,再把线段 \(PR\) 参数化,得到

Read more »

前言

2019 年末到 2020 年初爆发,并迅速蔓延至全球范围持续至今的新型冠状病毒肺炎疫情,是全 国、全世界人民所面临的一场严峻的、全新的挑战。在这场整个中华民族以至全人类的灾难 中,我们可以通过观察政府的应对措施以及全会面对疫情的反应,进一步深刻地认识人民在 社会主义建设中,乃至整个历史发展进程中的中心地位。

Read more »

前面的话

写完之后又仔细读了一遍,发现其实真的写的不怎么样,很不全面,有些地方还带了我很 强的个人色彩,如果想要有更多的了解,我还是建议去看看别的文章,或者是去和前辈直 接交流,这篇文章只能说算是一些小小的 Tips 吧。

今天是 6 月 21 日,最近在复习,夏季学期也开始了,也有几篇其他的其他的文章要写,但是 考虑到马上就要高考了,决定还是先完成这篇文章。

上大学这一年来,有很多感想,看到自己也看到别人做了很多成功的事,也遇到了很多挫 折。曾经我觉得自己在大学有明确的方向,不会感到迷茫,但现在看来迷茫是一个必然的阶 段,没有迷茫就不会有对学习、工作和生活的深刻认知。曾经的豪言壮语和许多不成熟的想 法,或多或少都沾点无知的成分。希望把这些东西记下来,可以帮到一些人。在我的价值 观,但凡能够改变一个人,就可称得上是功德圆满了。

曾经有一个偶遇的学姐告诉我,高中的生活是黑白两色的,而高考结束之后,整个世界就会 变得五彩斑斓。这段话在高中最后的时间里一直激励着我。但是我发现,对于不少人而言, 也许高考完之后的生活同样单调和欠缺意义,只是从黑白两色变成了灯红酒绿而已。我以为 我能完全避开这种窠臼,但事情总是没有那么简单,我们都要努力,让自己的颜色尽量地更 加饱满。

Read more »

政治文化与政治学研究

一部政治学史,也基本上是一部政治文化研究史

研究的学术渊源

柏拉图:国家不会超出生活于其中的人性范围。

雅典为什么能实现民主政体?斯巴达为何是寡头政体?这些都与政治文化有关

孟德斯鸠:法的精神(体制结构、文化精神和自然环境)

法国人为什么对集权政治、王权政治情有独钟?为什么英国人喜爱自治?

托克维尔《论美国的民主》

美国的 “民情”,如喜欢结社,社团活动,个体主义社会与高度组织化的社会等

布林特《政治文化的谱系》:法国社会学传统、德国文化哲学传统和美国政治文化理论

法国社会学有整体主义的视角,要理解一个社会,需要理解它的文化;德国文化哲学对人的 精神层次进行了深入的讨论;美国的政治文化传统是政治科学的传统,因其采用调查研究的 定量方法,而非文献研究

Read more »

超越于情色的身体崇拜

—— 体态美

体育也是身体崇拜,但其崇拜的对象是身体内在所蕴含的力量

音乐虽然具有很强的形式性,但是,它是属于听觉的形式性艺术,而且,比之于舞蹈,音乐 的形式性显得更为抽象,更加数学化。

如果说音乐的形式性更多的是见诸于人的精神,那么,舞蹈的形式性更多的是见诸于人的肉 体。音乐的逻辑,是灵魂的逻辑;舞蹈的逻辑则是身体的逻辑,因为,舞蹈说到底是一 种身体修辞

与其他艺术形式相比,舞蹈的鉴赏相当独特,可以说是来自于人类对身体的秘密和身体的美 探索的欲望。

和其他艺术的审美相比,舞蹈的审美更多些感官因素,但是,是一种超越于色情的情色性 审美,如果有情色,一定是一种高雅的,超越不纯的欲念的情色

舞蹈鉴赏中,对身体的鉴赏,其实是对人类自我的一种肯定,一种品味,一种礼赞。

Read more »

音乐原本是并不需要舞蹈的一种独立的艺术形式,但是当今的媒体化使音乐变得日益扩 张或者不如说是猖狂起来,给人一种感觉,似乎音乐没有舞蹈相伴,音乐就掉了魂似的。舞 蹈压根儿变成了音乐的小跟班,似乎失去了主体性,这绝对是很反常的。

Read more »

自由主义

西班牙自由党最早采用了自由主义这个词 1812 西班牙自由党 - 1848 革命 - 自由民主政 体 - 资本主义

古典自由主义:消极自由

“守夜人政府” 个人独立 - 社会契约 - 竞争(社会达尔文主义)

现代自由主义:积极自由

  • 兑现平等的价值承诺:人格平等到社会经济平等
  • 政府干预、凯恩斯主义、福利国家
  • 社会责任 — 大公而有私

自由主义的核心价值

  • 个体主义
  • 自由与有限政府
  • 理性与进步
  • 多样性和政教分离

现在的少数派,将来可能会变成多数 派。如果将少数派彻底扼杀,人类就失去了进步的机会。

Read more »

起源与背景

拉斯韦尔《政治学》

一种公认的意识形态是能够自己长期存在下去的,不需要那些受益最多的人去进行什么 有计划的宣传当有人为了寻求传播某种信念的方法而煞费苦心的时候,就表明该信 念早已奄奄一息了,社会的基本前景已经衰败了;要不就是一种新的胜利的前景还没 有获得男女老少各色人等的自发的忠诚

一个对自己的国家感到毫无忧虑的人多么幸福啊!至少少数几个从普遍默认中得到主要好 处的人多么幸福啊!在群众受着信心的驱使,而精英又满怀自信的情况下,那些将特殊利 益给予他人的生活制度是没有必要去搞什么阴谋诡计之类的活动的。

意识形态的特点:生活在自己所信服的主流意识形态中的人会感到十分幸福,而生活在自己 不信服的意识形态中的人会很痛苦。

Read more »

武装力量及其特征

武装力量是国家或政治集团的各种武装组织的总称,一般以军队为主体,由军队和其他正规 的、非正规的武装组织组成,并由国家或政治集团的最高领导人统率。

国家是对使用暴力的合法垄断,只有国家可以合法地垄断性地使用暴力 —— 韦伯

Read more »

司法权

立法、行政权是主动权力,而司法权是消极权力

亚历山大・汉密尔顿《联邦党人文集》 “司法是最软弱的权力,是最容易受伤害的权 力,它没有军队和财政的保护”

Read more »

绘画的审美特征

写实的精确性

绘画的产生,初期可能与仪式和游戏相关,后来,主要受到宗教的巨大推动,中外皆 然。

在人类文明的早期,在宗教需要传播的年代,也正是文盲成堆的年代,宗教要获得传 播,最佳手段,自然是绘画和雕塑。但是绘画比雕塑更灵便,表现手法更灵活更自由,表现 的空间也更大。也正是由于宗教需要的这种庄严性和严肃性,以及当时那种严格的模仿论美 学的强制性,绘画没有别的选择,唯有走精细写实,具象写实一途。

凡・艾克兄弟 根特祭坛画 1415-1432

凡·艾克兄弟 根特祭坛画 1415-1432
Read more »

鉴赏和欣赏的区别

鉴赏是对文物、艺术品等的鉴和赏。人们对艺术形象进行感受、理解和批判的思维活 动过程。

在这个过程中,主体运用自己的视觉感知、过去已经有的生活经验和文化知识,对美术作 品进行感受、体验、联想、分析和判断,获得审美享受。

Read more »

行政权与现代国家

行政权:执行法律之权

洛克(两权分立)

国家一方面解释自然法并宣布其意义,起立法作用;应用法律和使已经确定的法律具体 化,起执行作用

孟德斯鸠提出完善的三权分立,后在美国得到成功实施

Read more »

政治学概论系列课程第三讲,民族国家的形成、国家起源理论、国家的形式与国家和社会间的关系

Read more »

政治学概论系列课程第二讲

历史视野中的政治学研究方法

洛克林:十九世纪下半叶的知识分化

“在 19 世纪,我们可以看到斯密的宏大研究计划被分割开来,而政治、经济、历史、哲学 和法律都变成了限定在拥有严格技术性边界的各自领地之内的独立学科。这一过程所导致 的一个结果是,越来越多的精力被投入到单个学科之中,而这些学科都试图使其范围和方 法制度化。”

Read more »

14.8 拉格朗日乘子 1

拉格朗日乘子是一种用来找到限制条件下函数的最值的方法。

受约束的 2 最大值与最小值

例题 1

求平面 \(2y-z-5=0\) 上离原点最近的点。

这个很简单,就是把 \(z=2y-5\) 代入 \(\sqrt{x^2+y^2+z^2}\),转化为二元函数,再利用之前的 知识求解就行。但是代换法并不是每次都能使用得很 smooth.

另一个例子则能很好说明代换法的局限性。

Read more »

14.6 切平面 1 与 Differential

切平面很好理解,但是 Differential 翻译起来有点困难,记得高数 Ⅰ 的时候教授说 Differential 有点像线性化 2?(实际上就是线性化的增量)。可能应该翻译成微分吧, 前一节里的 “全微分” 可能应该叫做全导数更好。


切平面与法线 3

先回顾一下上一节最后的那个结论。

假定 \(\mathbf{r}(t) = x(t)\mathbf{i} + y(t)\mathbf{j} + z(t)\mathbf{k}\) 是 level surface \(f(x,y,z) = c\) 上的一条光滑曲线,,根据上一节的最后一部分路径链式法则的 公式,有

\[ \frac{d}{dt}f(\mathbf{r}(t)) = \nabla f(\mathbf{r}(t))\cdot\mathbf{r}'(t). \]

REMARK:这个公式感觉有点 tricky,要注意一下

Read more »

14.7 极值 1 与鞍点 2

区域极值 3 的导数判别

在一元函数中,通过水平切线来找到区域最大值 4、区域最小值 5 和 inflection 点;对 应在多元函数中,通过水平切面来找到区域最大值、区域最小值和鞍点。

定义

若对于以 \((a,b)\) 为中心的一个 open disk 内的任意定义域内的点 \((x,y)\),都 有 \(f(a,b)\ge f(x,y)\),则称 \((a,b)\) \(f\) 的区域最大值反之为区域最小值

Read more »

14.5 方向导数与梯度向量 1

(先从正在复习的部分开始吧,前面的内容如果有机会再去填坑)


引入平面上的方向导数 2

前一个章节里把多元函数的导数(全微分)定义为了 \(f(x,y)\) 沿着两条特殊的方向,也 即 \(x=g(t)\) \(y=h(t)\) 的参数方程方向上的导数的和。这本教材里只给出了一个说明,详细 的的证明需要数学分析的知识

\[ \frac{df}{dt} = \frac{\partial f}{\partial x}\frac{dx}{dt}+\frac{\partial f}{\partial y}\frac{dy}{dt} \]

对应于任一点 \(P(g(t),h(t))\),也即由 \(t\) 的参数方程确定的整个区域上的每一点。

既然如此,我们就可以找一个方向 \(\mathbf{u}=u_1\mathbf{i}+u_2\mathbf{j}\)(注意 是单位向量),去研究这个方向上的导数,而这条线上的点就可以对应表示为

\[x=x_0+su_1,\quad y=y_0+su_2\]

Read more »

是时候学一点 Markdown 了!

为什么要学习 Markdown

其实很早之前就有学 Markdown 和 LaTeX 的想法。今年年初由于疫情,不得不在电脑上完成作 业,起初是采用 Surface Pen 手写,效果也还不错,后来体验了 Word 自带的 Unicode Math 公 式编辑器,瞬间爱不释手,这效率可比手写高多了(并且我也特别享受这样的创作过程), 于是又进而萌生了学习 Markdown 和 LaTeX 的想法。一拖再拖到暑假,来认认真真地学习一下 吧!

Markdown 有很多的优点,以下是一些简单的介绍。

Read more »