0%

2024.2023.3.27

离婚 老舍

  • 除了北平人都是乡下佬. 天津, 汉口, 上海, 连巴黎, 伦敦, 都算在内, 通通是乡下

1984

  • 极权主义本质上与古代或中世纪的专制主义并无不同. 极权主义有过之而无不及的地方在于, 极权主义掌握了现代政治的统治手段, 包括政治组织, 社会生活, 舆论工具, 艺术创作, 历史编纂甚至个人思想和隐私, 无不在一个有形和无形的”老大哥”的全面严密控制下
  • 没有什么事情是不合法的, 因为早已不再有什么法律了
  • 果尔德史坦因是个叛徒, 变节分子, 他一度是党的领导人物之一, 几乎与老大哥本人平起平坐, 后来从事反革命活动, 被判死刑
  • 他在谩骂老大哥, 攻击党的专政, 要求立即同欧亚媾和, 主张言论自由, 新闻自由, 集会自由, 思想自由, 歇斯底里地嚷说革命被出卖了
  • 仇恨刚进行了三十秒钟, 屋子里一半人就爆发出不可控制的愤怒的呐喊, 电幕上洋洋自得的羊脸, 羊脸后面欧亚国可怕的威力,这一切使人无法忍受; 此外, 就凭果尔德史坦因的脸, 或者哪怕只想到它这个人, 就自动地产生愤怒和恐惧. 尽管这样, 他的影响似乎从来没有减弱过. 总有”傻瓜”上当受骗. 所以应该只重复他是反革命分子, 而不要提及他的言论
  • 因为每星期”泰晤士报”总有一条消息报道有个偷听父母讲话的小密探–一般都被称为”小英雄”–偷听到了父母的一些见不得人的话, 向思想警察作了揭发

BraveNewWorld

  • “and Delta Children wear khaki. Oh no, I don’t want to play with Delta children. And Epsilons are still worse. They’re too stupid to be able to read or write. Besides they wear black, which is such a beastly colour. I’m so glad I’m a Beta”
  • “Alpha children wear grey. They work much harder than we do, because they’are so frightfully clever. I’m really awfuly glad I’m a Beta, because I don’t work so hard . and then we are much better than the Gammas and Deltas. Gammas are stupid. They all wear green, and Delta Children wear khaki. Oh no, I don’t want to play with Delta children. And Epsilons are still worse. They’re too stupid to… “

长安的荔枝

  • 京中除了两市的柜坊之外,要属几座大伽蓝的放贷最为便捷,谓之“香积钱”——当然,佛法不可沾染铜臭,所以这香积钱的本金唤做“功德”,利息唤做“福报”
  • 既然路上有人管吃住,上林署支给的所谓“驿使钱”与“出食钱”,其实是用不着。使职的妙处就在这里,它超脱诸司流程之外,符宝司不会跟上林署对账,上林署也没办法问户部虚实,三处彼此并不联通
  • 一碗熬得恰到好处的粟米肉羹粥,里头拌了碎杏仁与蔗饧,三碟淋了鸭油的清酱菜,一枚鸡子蒸白果,还有一合海藻酒。至于水果,干脆堆在食处门口,随意取用
  • 韩承恨铁不成钢:“你把新鲜荔枝运来京城,可知道除了何履光之外,还会得罪多少人?那些衙署与何节帅一般心思,你做成了这件事,在圣人眼里,就是他们办事不得力。你那转运法是打他们的脸,人家又怎么会配合你做证呢
  • 韩承摇头道:“你若在呈上转运法之时,附上一份谢表,说明此事有岭南经略使着力推动、度支同仁大力支持、太府司、司农寺、尚食局助力良多,你猜鱼朝恩还敢不敢抢你的功——良元兄呐,做官之道,其实就三句话:和光同尘,好处均沾,花花轿子众人齐抬。一个人吃独食,是吃不长久的。
  • 小沙弥接过名刺看了眼,莫名其妙。幸亏韩承临走前提醒李善德,必要时可以故弄玄虚一下。他便鼓起勇气,冷着声音道:“把这名刺交给此间贵人便是,其他的你不要问
  • 李善德刚要回答,脑子里突然闪过韩承下午教诲的为官之道:“和光同尘,好处均沾,花花轿子众人齐抬。” 一霎时福至心灵,悟性大亮,连忙躬身答道: “下官德薄力微,何敢觍颜承此重任。愿献与卫国公,乐见族亲和睦,足慰圣心。
  • 李善德接了牌子,又讨问手书,以方便给相关衙署行去文牒。杨国忠一怔,不由得哈哈大笑:“你拿了我的牌子,还要照章发牒,岂不坏了本相的名声?——流程,是弱者才要遵循的规矩。
  • 两百贯对百姓来说,是一世积蓄,对招福寺来说,只是做一次人情的成本罢了。
  • 可这句解释听在苏谅耳朵里,根本就是欲盖弥彰。他一甩袖子,怒喝道:“好,好,大使你既如此,看来是小老自作多情了。就此别过!这寿辰礼物,就是丢海里好歹也能听个响!” 说完重新把锦盒抱在手里,转身离去。 李善德这才想起来,今天竟是自己生辰,真亏苏谅还记得。那个老胡商本是喜怒不形于色的老狐狸,这是把他当真朋友,才突然爆发出孩子似的脾气。
  • 这是来自京城的文牒,来自于杨国忠本人。李善德正为双层瓮的事忙得晕头转向,这个指示便转去赵欣宁手里。文书内要求:六月初一运抵京城的荔枝数量,要追加到三十丛。 怎么会这样?万事即将具备,怎么上头又改需求? 饶是李善德是个佛祖脾气,也差点破口大骂出来。他杨国忠知不知道,需求数量一变,所有的驿乘编组都得调整,所有的交接人马都得重配,工作量可不是一加一那么简单。
  • 李善德是做过冰政的人,很了解这个体系的秉性。每到夏日,上头说要一块冰,中间为求安全,会按十块来调拨。下头执行的人为了更安全,总得备出二十块才放心。层层加码,步步增量,至于是否会造成浪费,并没人关心。
  • 从岭南到长安之间的漫长驿路中,九成九的荔枝因为各种原因中途损毁了。从化出发的浩浩荡荡的队伍,最终抵达长安的,只有区区一骑、两坛。坛内应该摆放着各种竹节,节内塞满了荔枝
  • 没过多久,一阵悠扬的钟声也加入这场合奏,那是招福寺的大钟,这种事他们可是从不落人后的。随后钟鼓齐鸣,交相嗡鸣,所有的庙宇、道观,所有的坊市都加入庆祝行列,整个城市陷入喜庆的狂欢。 李善德低下头,依靠着上好坊的残碑,继续专心读着眼前的纸卷。他的魂魄已在漫长的跋涉中磨蚀一空,失去了对城墙内侧那个绮丽世界的全部想象
  • “反正日后也要你来管,不妨现在说说好了。” 杨国忠背起手来,缓缓踱步,“荔枝转运的费用,其实是颇有为难的。从太府寺的藏署出并不合适,国用虽丰,自有法度,总要量入为出;而从内帑大盈库里拿,等于是从圣人的锦袋里掏钱,也不是不行,但咱们做臣子的,非但不为陛下分忧,反而去讨债,不是为臣之道。” 李善德的姿势一动不动,听得十分专注。 “所以在你奔忙转运之时,中书门下也发下一道牒文:要求沿途的都亭驿馆,所领长行宽延半年;附地的诸等农户,按丁口加派白直庸,准以荔枝钱折免。
  • 御赐的这一篮子水果,虽不是什么紫衣金绶,可也比大唐律厉害多了。” “为什么?” “圣人刚打赏过的官员,你们转头就说他该判斩刑?是暗讽圣人识人不明么?

配置环境

pip install openai

列出模型

import os
import openai
openai.api_key = os.getenv("OPENAI_API_KEY")
openai.Model.list()

发送请求

Create completion

import os
import openai
openai.api_key = ''
openai.Completion.create(
  model="gpt-3.5-turbo",
  prompt="Say this is a test",
  max_tokens=7,
  temperature=0
)

response

{
  "id": "cmpl-uqkvlQyYK7bGYrRHQ0eXlWi7",
  "object": "text_completion",
  "created": 1589478378,
  "model": "text-davinci-003",
  "choices": [
    {
      "text": "\n\nThis is indeed a test",
      "index": 0,
      "logprobs": null,
      "finish_reason": "length"
    }
  ],
  "usage": {
    "prompt_tokens": 5,
    "completion_tokens": 7,
    "total_tokens": 12
  }
}

请求参数

  • model

  • prompt: 如果没有, the model will generate as if from the beginning of a new document.

  • suffix: 感觉没啥用

  • max_tokens integer Optional Defaults to 16

    gpt返回的最大tokens数量, 你的promt的tokens+max_tokens必须小于2048或4096(最新的model)

  • temperature number Optional Defaults to 1

    range from [0,2], 温度越高, 随机性越强

    官方建议, 温度和top_p值改变一个

  • top_p number Optional Defaults to 1 用温度吧, 别用他

  • n int Opt Defau 1

    对于每个prompt, 产生的completions的条数

chat

import os
import openai
openai.api_key = os.getenv("OPENAI_API_KEY")

completion = openai.ChatCompletion.create(
  model="gpt-3.5-turbo",
  messages=[
        {"role": "system", "content": "You are a helpful assistant."},
        {"role": "user", "content": "Who won the world series in 2020?"},
        {"role": "assistant", "content": "The Los Angeles Dodgers won the World Series in 2020."},
        {"role": "user", "content": "Where was it played?"}
    ]
)

print(completion.choices[0].message)

response

{
  "id": "chatcmpl-123",
  "object": "chat.completion",
  "created": 1677652288,
  "choices": [{
    "index": 0,
    "message": {
      "role": "assistant",
      "content": "\n\nHello there, how may I assist you today?",
    },
    "finish_reason": "stop"
  }],
  "usage": {
    "prompt_tokens": 9,
    "completion_tokens": 12,
    "total_tokens": 21
  }
}

在 Python 中,可以使用 提取助手的回复response[‘choices’][0][‘message’][‘content’]

一般来说,gpt-3.5-turbo-0301对系统消息的关注度不高,因此重要的说明往往放在用户消息中比较好。

edit

给定提示和指令,模型将返回提示的编辑版本。

import os
import openai
openai.api_key = os.getenv("OPENAI_API_KEY")
openai.Edit.create(
  model="text-davinci-edit-001",
  input="What day of the wek is it?",#用作编辑起点的输入文本。
  instruction="Fix the spelling mistakes"# it's like prompt
)

图像生成

建议用midjourney :)

import os
import openai
openai.api_key = os.getenv("OPENAI_API_KEY")
openai.Image.create(
  prompt="A cute baby sea otter",#最长1000个字符
  n=2,#生成的图像数量, 在1~10之间
  size="1024x1024"
)

图像编辑

在给定原始图像和提示的情况下创建编辑或扩展图像。

import os
import openai
openai.api_key = os.getenv("OPENAI_API_KEY")
openai.Image.create_edit(
  image=open("otter.png", "rb"),#要编辑的图像
  mask=open("mask.png", "rb"),#附加图像,可选
  prompt="A cute baby sea otter wearing a beret",#最长1000个字符
  n=2,
  size="1024x1024"
)

嵌入

这个感觉好高级, 留个坑

上传文件

所有文件最大1GB

用到了fine-tunes, 暂时不太懂

通过Midjourney我们可以通过输入文本, 让AI在短短一分钟之内生成图像, 功能非常强大. 我们来了解一下怎么使用它

Sintax: /image ImagePrompts TextPromts Parameters

语法非常简单易懂, ImagePrompts就是你想输入的图片的链接地址, 可以有多个, AI会采取你输入的图片的风格; TextPromts就是你的具体描述, 尽量使用更具体的词语

详细介绍一下参数

  • --iw 图像权重,可以使用图像权重参数--iw来调整图像 URL 与文本的重要性 ,默认是0.25, 0表示输入图像完全不起作用, 一般5就说明输入图像占很大权重了
  • --ar纵横比
  • --chaos <number 0–100>改变结果的多样性。较高的值会产生更多不寻常和意外的结果
  • --no负面提示,--no plants会尝试从图像中移除植物。
  • --quality <.25, .5, 1, or 2>,您要花费多少渲染质量时间。默认值为 1。值越高成本越高,值越低成本越低。
  • --stop <integer between 10–100>使用--stop参数在流程中途完成作业。以较早的百分比停止作业会产生更模糊、更不详细的结果。
  • --niji另一种模型专注于动漫风格的图像。

Focus on What you Want

It is better to describe what you want instead of what you don’t want. If you ask for a party with “no cake,” your image will probably include a cake. If you want to ensure an object is not in the final image, try advance prompting using the --no parameter.

Think About What Details Matter

Anything left unsaid may suprise you. Be as specific or vague as you want, but anything you leave out will be randomized. Being vague is a great way to get variety, but you may not get the specific details you want.

Try to be clear about any context or details that are important to you. Think about:

  • Subject: person, animal, character, location, object, etc.
  • Medium: photo, painting, illustration(插图), sculpture(雕塑), doodle(涂鸦), tapestry, etc.
  • Environment: indoors, outdoors, on the moon, in Narnia(纳尼亚), underwater, the Emerald City(翡翠城), etc.
  • Lighting: soft, ambient, overcast, neon(霓虹灯), studio lights(工作室照明), etc
  • Color: vibrant(充满活力), muted, bright, monochromatic单色, colorful, black and white, pastel柔和, etc.
  • Mood: Sedate稳重, calm, raucous喧闹, energetic, etc.
  • Composition: Portrait, headshot, closeup, birds-eye view, etc.
    • ​ 人像、爆头、特写、鸟瞰图等

Use Collective Nouns

Plural words leave a lot to chance. Try specific numbers. “Three cats” is more specific than “cats.” Collective nouns also work, “flock of birds” instead of “birds.”

Pick A Medium

Get Specific

Time Travel

Emote

Get Colorful

Enviromental Exploration

chatgpt是一个很强大的AI, 本文旨在解决如何提高提问效率, 来更好地让chatgpt解决问题

编码

  • ```
    优化[]中的文案, 扩充到500字
    [我国是一个美丽的国家]

    - 尽量使用英文提问
    - 设置简写: `接下来的对话, 如果我发送的内容是 again, 我的意思是 重新回答这一问题`
    - **编写代码**
    

    用 {编程语言} 实现:{描述需要实现的功能}

    
    - 要求越详细越好
    - **正则表达式**
    

    正则表达式:{描述需要实现的功能}

    
    - 例子:
    

    正则表达式:大于0的正整数

    - **评审代码**
    

    Review code and explain in Chinese

    - **检查代码出错原因**
    

    Check the cause of the code error and explain in Chinese

    - **重构/优化代码**
    
      - 重构代码
    

    refactor the code

    - 重构代码,以 vimdiff 格式展示更改的内容,并解释更改的内容
    

    Refactor the code to present the changes in vimdiff format and explain the changes in Chinese

    - **生成接口文档**
    

    Generate markdown API Chinese documentation

    
    ### 测试
    
    ---
    
    - **添加单元测试**
    

    Adding unit tests

    - **生成 Mock 数据**
    

    Generate data in json format

    
    - 例子:
    

    Generate data in json format

    interface AComponent {
    id: string;
    name: string;
    bComponent: BComponent;
    }
    interface BComponent {
    id: string;
    name: string;
    }

    
    下面举几个例子:
    
    ## 编程
    
    我们可以让chatgpt写各种常见不常见的算法题, 只要题目描述足够清楚, chatgpt大概率能够AC
    

c++编程题:对于一个长度为 n 的序列 a1,a2,…,an,所有前缀的中位数是多少?
第一行一个正整数 t(1≤t≤10),表示数据组数。
对于每组数据,第一行一个正奇数 n(1≤n≤100000),含义同题目描述。
第二行 n 个整数 a1, a2, …, an(0≤ai≤100000),含义同题目描述。
对于每组数据,输出一行 (n + 1)/2 个整数,第 i 个数表示长度为 2*i−1 的前缀的中位数。直接给出你的代码


下面是chatgpt的答案

```cpp
#include <bits/stdc++.h>
using namespace std;

const int N = 100005;
int n, t, a[N];
multiset<int> s;
multiset<int>::iterator it;

int main() {
    cin >> t;
    while (t--) {
        cin >> n;
        for (int i = 0; i < n; i++) {
            cin >> a[i];
            s.insert(a[i]);
            if (i & 1) {
                it = s.begin();
                advance(it, (i + 1) / 2 - 1);
                cout << *it << " ";
            } else {
                it = s.begin();
                advance(it, i / 2);
                int x = *it;
                it = s.end();
                advance(it, -i / 2 - 1);
                int y = *it;
                cout << (x + y) / 2 << " ";
            }
        }
        cout << endl;
        s.clear();
    }
    return 0;
}

修改代码

我们在上机的时候, 代码是会查重的<del>如果我们又想抄同学的代码, 又不想被查重</del>, 就可以让chatgpt修改代码. 需要注意的是, 小打小闹地改变量, for换成while是没用的. 如果代码里有很多函数, 我们可以让chatgpt把函数都写到main函数里, 反之亦然. 如果代码是递归的, 我们可以让chatgpt改成迭代的.

#include <bits/stdc++.h>
#define N 100010
using namespace std;
int t, n;
int a[N];
int tree[4 * N];
void add(int p, int l, int r, int x) {
    if (l == r) {
        tree[p]++;
        return;
    }
    int mid = (l + r) / 2;
    if (x <= mid) add(2 * p, l, mid, x);
    else add(2 * p + 1, mid + 1, r, x);
    tree[p] = tree[2 * p] + tree[2 * p + 1];
}
int query(int p, int l, int r, int x) { // 查第x大
    if (l == r) return l;
    int mid = (l + r) / 2;
    if (x <= tree[2 * p]) return query(2 * p, l, mid, x);
    else return query(2 * p + 1, mid + 1, r, x - tree[2 * p]);
}
int main() {
    scanf("%d", &t);
    while (t--) {
        scanf("%d", &n);
        memset(tree, 0, sizeof(tree));
        for (int i = 1; i <= n; i++) scanf("%d", &a[i]);
        for (int i = 1; i <= n; i++) {
            add(1, 0, 100000, a[i]);
            if (i % 2) {
                printf("%d ", query(1, 0, 100000, i / 2 + 1));
            }
        }
        printf("\n");

    }
    return 0;
}

我们想把其他代码都写入主函数, 或者把递归改成迭代

// 迭代
#include <bits/stdc++.h>
#define N 100010
using namespace std;
int t, n;
int a[N];
int tree[4 * N];
void add(int p, int l, int r, int x) {
while (l < r) {
int mid = (l + r) / 2;
if (x <= mid) {
r = mid;
p = 2 * p;
} else {
l = mid + 1;
p = 2 * p + 1;
}
tree[p]++;
}
tree[p]++;
}
int query(int p, int l, int r, int x) {
while (l < r) {
int mid = (l + r) / 2;
if (x <= tree[2 * p]) {
r = mid;
p = 2 * p;
} else {
l = mid + 1;
x -= tree[2 * p];
p = 2 * p + 1;
}
}
return l;
}
int main() {
scanf("%d", &t);
while (t--) {
scanf("%d", &n);
memset(tree, 0, sizeof(tree));
for (int i = 1; i <= n; i++) scanf("%d", &a[i]);
for (int i = 1; i <= n; i++) {
add(1, 0, 100000, a[i]);
if (i % 2) {
printf("%d ", query(1, 0, 100000,))

文案

  • 扩写一下这段话,加入一些例子和金句:我国是历史悠久的国家。要求提示越多越好
  • 把下面这段话,改写成100字以内的摘要
  • 校对下面这段话
  • 也可以让它检查你英语的语法和用词, 甚至可以让它对你的句子进行修改, 给出更高级地道的表达
  • 翻译: 感觉没有google translate好

阅读

这是一个神奇的功能, 我们可以通过chatgpt来阅读

作为一种在多样化的文本数据集上训练的语言模型,ChatGPT能够理解和总结 2021 年之前几乎所有书籍的内容。凭借其先进的自然语言处理能力,ChatGPT可以将冗长的作品压缩成易于消化的信息块,提供您可以快速轻松地学习一本书的要点。

这听起来很难理解, 我举一个例子:

比如我想阅读Yuval Noah Harari 的《智人:人类简史》, 该书全面概述了从非洲智人出现到今天的人类历史。但是这本书超过500也, 对注意力愈发缺失的现代人是一个不小的挑战

我们可以对chatgpt输入: 列出尤瓦尔·诺亚·哈拉里 (Yuval Noah Harari) 的《智人:人类简史》一书的所有章节

Chatgpt

《智人:人类简史》一共有十章:

起源
智人社会
智人革命
智人帝国
宗教革命
科学革命
工业革命
政治革命
知识革命
现代革命
请注意,本答案的知识截至日期为2021年,可能会存在更新版本。

比如我现在对”智人革命”一章感兴趣, 我可以让它展开说说

我:

深入研究“智人革命”一章并给出较长的内容描述,并提供该章的重点

Chatgpt

“智人革命”一章是《智人:人类简史》中的第三章,是关于智人(Homo sapiens)的起源和发展的重要章节。该章的重点包括:

1.智人的起源:作者在这一章中探讨了智人如何诞生并在非洲蔓延。

2.智人与其他人类物种的区别:作者在这一章中比较了智人与其他人类物种(如尼安德特人和半人猿)的差异,包括智力、语言和文化传承方面的差异。

3.智人的迁徙:作者在这一章中描述了智人如何从非洲迁徙到全球其他地区。

4.智人的文化创新:作者在这一章中探讨了智人如何创造了全新的文化,包括音乐、艺术、宗教和社会制度。

5.智人对环境的影响:作者在这一章中描述了智人对环境的影响,包括对动物种群的影响和对生态系统的影响。

总的来说,“智人革命”一章是一个关于智人起源、发展和影响的全面概述,是该书的重要章节之一。

比如我对第四点很有兴趣, 我就可以让它讲讲

我: 深入探讨“智人的文化创新”并给出较长的内容描述和要点

chatgpt

“智人的文化创新”是《智人:人类简史》中“智人革命”一章中的一个重要内容。该内容探讨了智人如何创造了全新的文化。下面是关于“智人的文化创新”的更详细的内容描述和要点:

智人的语言能力:智人的语言能力是其创造文化的关键因素。语言不仅允许智人将想法和信息传递给他人,还允许他们进行抽象思维。

智人的艺术:智人创造了各种形式的艺术,如音乐、绘画、雕塑和剧场。艺术不仅是智人表现自己的情感和思想的方式,还是他们建立起文化传承的重要工具。

智人的宗教:智人创造了各种不同的宗教,包括基督教、伊斯兰教、佛教和犹太教等。宗教不仅是智人对自然界和生活意义的探索,还是他们社会组织的重要因素。

智人的社会制度:智人创造了各种不同的社会制度,如皇权制度、共和制度和民主制度。社会制度不仅决定了智人的社会地位和权力关系,还是他们经济活动的重要框架。

总的来说,“智人的文化创新”一章讲述了智人如何通过语言、艺术、宗教和社会制度等创造了人类文化。这些文化创新是智人不断探索、表现和组织自己的生活的结果,是人类文化发展的重要标志。因此,“智人的文化创新”一章的重点是强调智人的创造力和创新能力。

除此之外, 如果我们在阅读过程中产生问题, 也可以用chatgpt进行提问

这样,我们就可以更深入地了解本书及其主要论点,而无需花费数小时通读整篇文章。

其实在上学期(2022年9月)我就成功申请了github学生认证, 拿到了免费使用copilot的机会. 但是那时copilot还不支持在代理服务器上使用, 于是体验AI编程的想法被搁置. 昨天心血来潮尝试了一下, 发现可以用代理服务器连接copilot了, 于是迫不及待开始学习体验

快捷键

Copilot 也提供了一些快捷键,可以很方便地使用。

  • 接受建议:Tab
  • 拒绝建议:Esc
  • 打开Copilot:Ctrl + Enter (会打开一个单独的面板,展示10个建议)
  • 下一条建议:Alt/Option + ]
  • 上一条建议:Alt/Option + [
  • 触发行内Copilot:Alt/Option + \ (copilot还没有给出建议或者建议被拒绝了,希望手工触发它提供建议)

HTTP代理

有些用户(几乎所有中国大陆用户)可能会遇到连接不上的问题, 报错信息 GitHub Copilot could not connect to server. Extension activation failed: "connect ETIMEDOUT xxx.xxx.xxx:443"

对于中国大陆用户, 首先你要有一个代理软件, 在设置中找得到代理地址和端口. 比如 127.0.0.1:7890

然后打开VSCode的设置, 搜索 http.proxy, 输入 127.0.0.1:7890(你的代理地址和端口)

然后就可以啦

copilot使用场景

解决算法问题

你可以先写出函数头, 然后在注释中解释函数的作用, 传入的参数和返回的参数, 然后copilot可以自动帮你生成代码

# 使用heap sort对数组排序                          (自己写的)
# 1. 将数组转换为最大堆
# 2. 将最大堆的根节点与最后一个节点交换
# 3. 将剩余的节点重新构造为最大堆
# 4. 重复2,3步骤直到剩余节点数为1
def heap_sort(arr):                              #(自己写的)   
    n = len(arr)
    # 将数组转换为最大堆
    for i in range(n//2-1, -1, -1):
        heapify(arr, n, i)
    # 将最大堆的根节点与最后一个节点交换
    # 将剩余的节点重新构造为最大堆
    for i in range(n-1, 0, -1):
        arr[i], arr[0] = arr[0], arr[i]
        heapify(arr, i, 0)
    return arr

def heapify(arr, n, i):							 #(自己写的)
    # 将数组转换为最大堆
    # n: 数组长度
    # i: 当前节点索引
    largest = i
    l = 2*i + 1
    r = 2*i + 2
    if l < n and arr[l] > arr[largest]:
        largest = l
    if r < n and arr[r] > arr[largest]:
        largest = r
    if largest != i:
        arr[i], arr[largest] = arr[largest], arr[i]
        heapify(arr, n, largest)
# 编写5组测试数据并进行测试                      #(自己写的)
test_data = [
    [1, 2, 3, 4, 5, 6, 7, 8, 9, 10],
    [10, 9, 8, 7, 6, 5, 4, 3, 2, 1],
    [1, 1, 1, 1, 1, 1, 1, 1, 1, 1],
    [10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0],
    [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11]
]
for data in test_data:
    print(heap_sort(data))

可以看到, 在这个样例中, 50行代码, 我只写了四行注释, 其他代码和注释还有测试样例都是一直按 Tab键生成的, 不要太爽

写注释

在行数上面一行写下 /**, copilot可以自动为你写下注释

# 使用heap sort对数组排序
# 1. 将数组转换为最大堆
# 2. 将最大堆的根节点与最后一个节点交换
# 3. 将剩余的节点重新构造为最大堆
# 4. 重复2,3步骤直到剩余节点数为1

   /**
    * @param {number[]} nums
    * @return {number}
    */

def heap_sort(arr):
    n = len(arr)
    # 将数组转换为最大堆
    for i in range(n//2-1, -1, -1):
        heapify(arr, n, i)
    # 将最大堆的根节点与最后一个节点交换
    # 将剩余的节点重新构造为最大堆
    for i in range(n-1, 0, -1):
        arr[i], arr[0] = arr[0], arr[i]
        heapify(arr, i, 0)
    return arr

 /**
    * @param {number[]} arr
    * @param {number} n
    * @param {number} i
    * @return {number}
    */
  
def heapify(arr, n, i):
    # 将数组转换为最大堆
    # n: 数组长度
    # i: 当前节点索引
    largest = i
    l = 2*i + 1
    r = 2*i + 2
    if l < n and arr[l] > arr[largest]:
        largest = l
    if r < n and arr[r] > arr[largest]:
        largest = r
    if largest != i:
        arr[i], arr[largest] = arr[largest], arr[i]
        heapify(arr, n, largest)
# 编写5组测试数据并进行测试
test_data = [
    [1, 2, 3, 4, 5, 6, 7, 8, 9, 10],
    [10, 9, 8, 7, 6, 5, 4, 3, 2, 1],
    [1, 1, 1, 1, 1, 1, 1, 1, 1, 1],
    [10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0],
    [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11]
]
for data in test_data:
    print(heap_sort(data))

lol 但是python的注释语法貌似不是 /**

Hope you have fun with copilot!

用了这么多年搜索引擎了, 现在才发现有这么多高级搜索技巧可以让我们搜到自己心中所想

精确搜索:双引号

完全的匹配你所要的词

站内搜索:site

site:后面加上你要搜索的网站地址, 表示在这个网站站内搜索

比如 site:stackoverflow.com就是在StackOverflow里搜索(但是感觉作用不大, 因为StackOverflow网站里本来就可以搜索lol)

比如搜索 python哈哈哈 site:stackoverflow.com

筛选语言\时间

点击Tools, 即可筛选

ps: 今天是Bubble Tea Day, Google的界面好好看

通配符搜索 *

这里的用法就很像正则表达式了

比如我想搜一句诗歌, 春眠不觉晓, “不觉”俩字忘了(这是可能的吗lol)

这时我就可以搜索 春眠**晓

排除关键字 -

假设你的搜索内容是 => how to write components in React -class(如何编写React组件 -class),返回的搜索结果会不包含“class”

文档搜索 filetype

返回你搜索的文档的相应格式

比如我想搜索三国演义这本书的pdf(如果有的话), 搜索 三国演义 filetype:pdf, 用这个命令搜索一些资料非常方便

搜索特定大小的图片 imagesize

尺寸仅以 pixels 为单位 – 例如:imagesize:500x500的搜索结果是尺寸为 500px x 500px的图片。 所以如果搜索查询是 => “cute dog images imagesize:500x600”(可爱小狗图片 imagesize:500*600)的搜索结果是尺寸为 500px x 600px的可爱小狗的图片

总结

Google高级搜索和命令行有点相似, 不过google是内容在前, 然后空格, 命令在后. Anyway, 这很容易就能掌握


PS: 有些人没有办法访问Google, 但是上述的命令对于baidu同样适用哦. 搜索愉快!

现在的说明并不全面,本文将在接触到更详细的知识之后随时更新

主题文件夹保存在 BLOG/themes/next

  • layout文件夹里保存了博客的布局

    • _custom里保存了博客的通用布局,主要有鼠标点击特效、禁止复制粘贴、节日弹窗、动态标题等代码

    • _macro是博客宏观布局

      • post.swig应该是对博文的排布
      • sidebar.swig是对侧边栏的布局,我自己在这里加了”欢迎来客, 显示地理位置”的功能和查看”访客地图”的功能
    • _partials是局部布局

      • head文件夹是左上角”一叶小屋”标题的显示
      • header掌管菜单
      • post掌管博文的版权、关注、脚注、打赏等功能的布局
      • search是本地搜索功能
      • sidebar是侧边栏
      • footer.swig是博客的最底部的内容, 比如有备案信息、版权、作者、访客、建站时间等信息
    • _scipts

    • _third-party第三方的一些插件

    • _layout.swig这个掌管了整体的布局,很重要

  • sourcce

    • js 网站自定义功能要用到的js代码主要保存在这
      • cursor/fireworks.js鼠标点击产生烟花效果
      • my-own-fun-code里面有禁止鼠标右键,腾讯地图插件两个文件
      • special-day特定日子弹窗提醒的代码

李文亮医生

谈到这三年的疫情,第一个关键词应该是”李文亮医生”。

2019年12月30日下午,李文亮在同学群里发信息:“华南水果海鲜市场确诊了7例SARS。在武汉市中心医院后湖院区急诊科隔离。”一个小时后,他又在群里补充,“最新消息是冠状病毒感染确定了,正在进行病毒分型”。

消息发出后,1月3日,武汉警方找到李文亮,要求他签下训诫书——“依法对你在互联网上发表不属实的言论的违法行为提出警示和训诫……”武汉警方事后称,当时进行了教育、批评,未给予警告、罚款、拘留的处罚。

后来李文亮医生被感染,医治无效而辞世, 引发大规模的人群悼念.

很遗憾, 我当时正处于高三的重压与疫情的心理折磨, 有关李文亮医生, 都是在他去世以后知道的.

我怀着一种怅然若失地感觉翻看了他的微博,他喜欢庆余年,转发各种抽奖微博,喜欢吃德克士炸鸡腿、鸡蛋灌饼、火锅、日料。有一天他下班去逛超市,看见158一斤的车厘子,他发微博半开玩笑地说“吃不起”。他的最后一条动态发布于2020年2月1日,说自己“尘埃落定,终于确诊”。但此后三年,无数的网友来到他的微博,留下细碎的句子,或是自己开心的不开心的经历、或是对李文亮医生的怀念,很快被淹没在留言中。

我想起那个时候的日子,在晚上,我站在阳台上,世界安静极了,没有一辆车的呼啸,连犬吠鸡鸣也听不见,更无人声,惟一排排矗立的路灯若无其事地散发暗黄色光。我那时想,这样的情形此生怕是仅此一次了。那时候,疫情于我而言,是远方飘渺的鬼厉,我沉浸与当时的安宁与平静,没有想过在1000公里外的武汉,正在经历着不可言说的苦难与绝望。

直到今天, 无数的人, 依然在这座”哭墙”上留下自己生命的点滴

全国封城

2020年2月到4月,全国各个城市都经历过一次封城

重庆所有小区实行封闭式管理 每户定期派1人外出采购

那个时候,在重庆,每户每天有一个人可以出去采购,没有限制时间。但是这项规定很快就被取消了,并没有强制限制大家的自由。出于对新病毒的恐惧,大部分人都很配合地呆在家里。物资也没有短缺,药也可以买到。

这次封城,与后来的各种“非必要..”政策相比,简直是小巫见大巫

高考延期

我记得那天在上网课,上午十点,有同学在微信群里转发了高考延期的通知,引发了大家极为热烈的讨论,微信群从未这样热火朝天,大家也都无心上课了。

返校 高考

2020年4月20日,重庆市高三学生返校线下上课。没有人想到,这寒假一放就是4个月。我坐高铁到了沙坪坝,那个时候还没有核酸阴性证明,没有行程码健康码,一切看起来畅通无阻。我们在学校门口排好队,保安提着消毒液给我们的行李消毒。在学校,除了睡觉的时间都是带着口罩的,食堂的座位上贴上了每个人的名字,固定分批就餐,班主任每日给我们三次测温。

大概坚持了一个月,后来的管控就渐渐放松了,班里也没人戴口罩了。除了上自习的时候,一半的人得去楼上空教室,其它似乎与正常的高三生活无异了

虽然延期了一个月,但是很快高考的时间还是到了.全年级的老师都穿上红色的衣服在楼下给我们打气. 高考那两天就像任何一次模拟考一样稀松平常. 除了在英语考试结束的前十分钟, 我写完最后一个单词, 突然意识到高考, 三年高中终于要结束了. 内心充满着激动与高兴.

战时状态

在第一次封城后到冬天之间的日子,大部分城市都过着疫情前一样正常的生活。中国甚至有好一段时间,全国都没有一例新增

在我去北京上大学的时候,也只需要出示7天以内的核酸阴性证明

在大学,开学的前两周被封在学校,但是大一上的剩下的日子都相对自由

很快到了冬天,那是北京70年以来最冷的一个冬天,被我一个从来没有感受过零下气温的初来乍到的南方人赶上,在上学放学的路上,我每天都和严寒做着心理上和生理上的顽强对抗,最终被冻得一败涂地

不仅是我的冬天,那个冬天对很多城市也异常”寒冷”。2020年12月8日,因为成都两天新增六确诊,四川首先发出四川省委书记彭清华:迅速进入战时状态,把影响控制在最小范围的新闻。”战时状态”在疫情期间第一次被提出。

多地紧随其后,时髦地使用”战时状态”

  • 12月10日,黑龙江省牡丹江市东宁市绥芬河市各新增1例本土确诊病例。随后,东宁市启动《新冠肺炎疫情控制应急预案》,东宁市各高速公路收费站实施交通管制措施,非必要不可外出。受此影响,哈尔滨市、绥化市、伊春市等多地将幼儿园、中小学寒假时间提前至2021年元旦前后。12月12日,东宁市按照市疫情防控预案进入战时状态,提升管控措施级别
  • 12月20日,大连出现疫情复发现象,进入疫情防控战时状态
  • 12月26日,北京市顺义区因近日出现的疫情复发现象进入战时状态
  • 1月3日,因2日河北省石家庄市藁城区报告新增本土确诊病例, 石家庄市进入战时状态
  • 1月5日,全河北省进入战时状态
  • 1月12日,正在北京开会的黑龙江省委书记张庆伟专程请假返黑,连夜主持召开会议,宣布全省进入紧急状态

全面的核酸检测也是在这个时候被河北省提出并纳用的

  • 1月6日,石家庄市和邢台市全面开展全员核酸检测
  • 1月13日,中国大陆新增138宗确诊病例,新增1宗死亡病例。这是自2020年5月17日以来,时隔242天,中国大陆再次出现死亡病例

疫苗接种

进入2021年3月,中国大陆各省开始推动大规模疫苗接种。自2021年3月23日起,国家卫健委宣布将每日公布2019冠状病毒病疫苗的接种数量。同时,随着国内第二轮疫情的基本平息,中国大陆政府的防疫中心又返回到外防输入、内防反弹的路线上。

中国大陆多地纷纷悬挂标语吸引民众接种疫苗,主要标语包括“我们一起打疫苗,一起苗苗苗苗苗”、“建立全民免疫,需要你一‘臂’之力”、“2021年头等大事,就是接种新冠疫苗”、“防疫道路千万条,接种疫苗第一条”、“朋友一生一起走,先打疫苗再聚首”、“每个人的身上都有苗苗,让我为你打苗苗”等。《新京报》评论认为,这些标语的文本体现出的是一种平等尊重、欢迎公众参与的价值观,没有居高临下和刻板说教,相信当地社区的居民相约去打疫苗时,提到这条标语也会会心一笑

但是就我个人的经历而言, 我记得在21年暑假的某一段时间, 重庆市政府推出了”二码联查”政策, 也就是出入公共场合要同时出示健康码和疫苗接种码, 甚至出入小区也会有保安阻拦查验. 我仍然记得社区的书记发布的通告”不接种疫苗的老年人将被取消养老金的发放”, 我也记得各级初等学校发布的通知”开学时凭借学生本人甚至全家的疫苗接种证明返校, 未完成者, 不得返校”. 我想在当时, 这一幕幕相似的经历, 应当在全国各地都在上演, 于是我国疫苗覆盖率突飞猛进:

从流行病防控学的观点看,接种疫苗是相当有必要的(当然在2023年的今天,大部分专家和民众都已经意识到,由于新冠病毒极强的变异率,我们的疫苗研发的速度要远远落后于病毒变异的速度),但是对推行一项措施所采用的无所不用其极的手段,却让我异常反感。我犹记得新冠疫苗刚上市时官方发布的一页长长的禁忌,但是到后期,无论你有什么慢性病,医生(甚至社区工作人员)都会大言不惭地说没有禁忌。人民群体是不存在记忆的,但是个体存在。出于对这些的厌恶和抵触、以及本身对疫苗保护效力的怀疑,我始终没有接种疫苗。一年半以后我不幸阳了,和无数接种过疫苗的人一样。最终我还是产生抗体了,最新版本的

动态清零

12月1日,国家卫生健康委主任马晓伟接受新华社记者采访时表示,中国大陆疫情防控已进入第三阶段。其中,第一阶段是突发疫情应急围堵阶段;第二阶段是常态化防控探索阶段;第三阶段是全链条精准防控的“动态清零”阶段

疫苗的接种率越来越高,从最早的8%一直到80%,90%,我们没有迎来专家说的群体免疫。这篇土地仍然时不时因为疫情而被封锁。

然后到了2022年,疫情最艰难的一年,对中国所有人。

3月15日,国务院联防联控机制召开发布会,会上国家卫生健康委新闻发言人、宣传司副司长米锋介绍中国大陆疫情形势,称自3月以来,中国大陆疫情发生频次明显增加,感染人数快速增长,波及范围不断扩大,已波及28个省份,形容疫情防控难度加大,防控形势严峻复杂。国家卫生健康委疾控局副局长、一级巡视员雷正龙对本次大规模暴发进行了详细分析。他表示,2022年3月以来,境外输入疫情引发的本土疫情发生频次明显增加,波及范围不断扩大。3月1日至14日,本土疫情累计报告感染者已经超过15000例,吉林、山东、上海、广东、河北等地疫情还在发展中,部分地区的疫情上升速度较快,社会面传播扩散和外溢风险比较高,各地方正加快风险人员筛查、转运、隔离等工作。本次大规模暴发呈现出点多、面广、频发的特点

3月18日,吉林通报有2起COVID-19本土死亡病例,是自2021年1月以来中国大陆再度出现本土死亡病例

然后到了四月, “4月7日0-24时,中国大陆单日新增2019冠状病毒病感染病例连续第三天破两万,并再次突破2019冠状病毒病中国大陆疫情的最高日增感染病例记录,单日新增感染者达24224例,其中本土感染病例达24101例。感染病例多数集中在上海市,当日0-24时该市新增感染者达21222例”

之后的记忆越来越清晰, 也越来越和我有关

根据野村证券的经济学家估计,截至4月11日,中国有45座城市的大约3.73亿人处于全面或部分封控状态,这些城市的人口占中国总人口的26%,经济产出占中国总产出的40%。

后来上海疫情爆发,有人记录下上海四月的各种纪实对话发布到网上,是为“四月之声”。引起极大反响,迅速遭到全面禁封。越来越多的人开始怀疑和反思,继续严格的封控是否真的可持续。5月5日,中共中央政治局常务委员会召开会议,习近平表示要坚持动态清零,坚决同一切歪曲、怀疑、否定中国防疫方针政策的言行作斗争。

然后完全是我的记忆了。

北京的疫情从四月底开始,每况愈下,流言纷飞,


动态清零的部分搁置了好久, 每每回想起那一部分记忆, 依然觉得难受而荒谬. 我无权代替所有遭受苦难的人记录这一段生活, 我只能诉说一个细微个体的浮沉

我被疫情深深影响是从四月份开始的, 最初传闻北京某中学确诊70例阳性, 然而无官方报道, 我也没有重视. 后来北京疫情每况愈下, 学校在劳动节开始封校. 大家人心惶惶, 每日下午锁定北京卫健委的新闻发布会. 尽管采取了极其严厉的封锁, 北京在五月一整月都雷打不动每日新增50+. 当时学校一旦有疫情, 整个学校直接封寝, 依稀记得全市985高校几乎无一幸免(为什么没提211及其以下呢, 因为当时北京市的防疫政策是全国最严的, 非985北京高校根本不准线下开学)

我还记得一个一公里见方的学校内部被一道一道的铁皮与护栏划分成一块一块, 仿佛这些就能把病毒颗粒与学校内部隔绝.

我的心也被这铁皮划分成一块一块, 我不觉得我们在做任何伟大的事, 我只为2022年发生的事情而感到悲哀.

我看到公众号上的一段话

我是从去年一二月就放寒假回家的大学生,因为疫情,我已经放了五个月的假了,封在家里的时光确实让我很受折磨。
旅游对我来说是一件很重要的事,去外面看看云朵飘,看看水在我面前流过,是我能想象到最美好的事。虽然说不应该给国家添麻烦,但我也真的不希望在这个年纪禁锢自己

我已经丢失了太多

后来北京市让绝大部分高校学生返乡, 然后我被隔离了八天, 不表

(好难继续写下去, but i’ll try)

就这样吧 不想写了

Welcome to my blog, enter password to read.
阅读全文 »