diff --git a/public/404.html b/public/404.html new file mode 100644 index 0000000..03b5757 --- /dev/null +++ b/public/404.html @@ -0,0 +1,101 @@ + + + + + +404 | Dich'blog + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + + + + +
+ + +
+ +
+

Lost?

+

This page does not exist.

+
+ +
+ + + + + +
+ + + diff --git a/public/about-working/index.html b/public/about-working/index.html new file mode 100644 index 0000000..cb950d6 --- /dev/null +++ b/public/about-working/index.html @@ -0,0 +1,373 @@ + + + + + Dich'blog + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + + + + + +
+ + +
+ +
+ +

应届生工作指南

+ + + + + + +
+

前言 +什么是“五险一金”?工资到底由那些部分组成?劳动合同怎么签?不仅仅是应届生,很多工作了几年的职场人,也不十分清楚。因此,在这里笔者打算帮助大家彻底把这些事情搞明白。

+ +

一.关于薪酬 +薪酬是货币+实物报酬的总和,包括:

+

v2-26bc48adc9539ddbd25c6339d3e8d082_1440w.webp

+

直接薪酬:指的是以现金形式,按照一定的周期,直接发放给你的货币,比如每个月的固定薪资,或者各种现金的补贴,奖金等等。

+

1.基本工资、绩效工资

+

基本工资:这个就比较好理解了,基本工资,也就是我们常说的底薪、固定薪酬,只要你向企业提供正常劳动,公司就会向你支付的工资。

+

绩效工资:是与你个人绩效挂钩,根据你当月的绩效完成情况,给予你的浮动工资,比如我们常说的销售的提成,就是在浮动工资的部分。

+

按照不同的薪酬结构,基本工资和绩效工资会有不同的比例,以约束员工要达到对应的工作指标,完成固定考核。但不论比例是什么样,每月工资都不得低于国家规定的该城市最低工资标准。

+

2.奖金与津贴

+

奖金:目的是在于激励员工。是会根据企业的效益而定,是否发放,公司有很大的决定权。

+

针对于常常有争议的年终奖:年终奖分为多种形式,比如有实物类的,也有现金类的。现金类分为固定的(即企业为了奖励你持续在岗到了年末,给予你的固定奖励,不会根据企业的业绩变化,比如年底双薪,三薪等等)。也有不固定的,即企业没有约定具体的数额,在年末,根据企业业绩的分红,不等额地发放,浮动范围可以非常大。

+

而在劳动法中,对于年终奖没有明确的规定,但如果企业表明了要发放,且在劳动合同中有体现,但最终没有发,是违法的。

+

津贴:会有多种形式,包括交通补贴(日常、加班),餐饮补贴、租房补贴等等,也是非强制性的,每月以福利的形式,提供给员工。

+

3.加班费

+

休息日:根据《劳动法》:休息日加班工资=月工资基数÷21.75天×200%×加班天数;法定节假日加班工资=月工资基数÷21.75天×300%×加班天数;

+

延长工时加班费:每小时加班费≥小时工资基数的150%

+

注:计算加班工资时,日工资按平均每月计薪天数21.75天折算。

+

加班费应以实际发放的工资作为计算基数,包括“基本工资”“岗位津贴”等所有工资项目、不能以“基本工资”“岗位工资”“职务工资”单独一项作为计算基数。

+

当然,在我们的工作中,免不了遇到企业通过加班调休,或提供晚餐、报销车费等方式诱导员工加班,甚至会碰到一些不遵守规则的企业,强迫员工加班且不提供相应的补助。

+

这种情况下,员工一定衡量自己的付出和收获是否成正比,合理利用法律来保护自己的权益。

+

间接薪酬:不直接打到你的现金账户的,但是在一定的条件下可以使用的,权益、保险、服务、或者实物,但是同样能折算出现金价值的。比如住房公积金(要在买房租房的时候可以用)

+

下面,我们来具体解释,每一项是什么意思:

+

1.股票期权

+

一般来说,应届生遇到offer中含有股票期权的情况较少,但在部分成长型或者初创型公司,或者提倡全员持股的公司,可能会出现类似的薪酬结构。

+

那么我们着重说一下在创业公司可能会为初始员工提供的期权:期权不是股权,而是一份按照约定价格在约定时间购买股份的合同。但如果说给期权,一定要落在纸上,口头承诺没有任何意义。

+

期权的约定,一般会约定起算日期(什么时候发放期权,是入职就发,还是一段时间之后),兑现时间(比如期权是分三年兑现,一共给N股,每年兑现N/3),有无门槛(比如是否在公司工作要满一年,才能解锁兑现的权利),行权价格(到行权期后可按约定价格购得公司股权)。

+

如果你最终拿到了N股,但最重要的是,公司需要上市,你才能在禁售期之后套现。所以,期权是你对于公司未来看好,并能持续陪伴公司走到上市的奖励。

+

在某些创业公司,容易以期权作为降薪,压低薪酬的原因,这时候一定要谨慎的思考,是否对于公司的业务模式、团队看好,因为期权是一个长期的事情,长期获益也就意味着你要付出长期的承诺,要格外慎重地做选择。

+

2.五险一金

+

五险一金是国家规定,企业必须为员工缴纳的社会保障。

+

五险比例,根据地方不同,有细微差别,而一金,比例在5%-12%之间浮动,单位缴纳的比例,不得低于你个人承担的比例。一般来说,比例是相等的,比如你自己缴纳12%,单位也为你缴纳12%。如果你的税前薪酬是10000元,那么你当月公积金账户里会有2400元,其中个人单位各占一半。

+

v2-61b8ded39b60ba91a6abb5128c794380_1440w.webp

+

养老保险

+

参加基本养老保险的个人,达到法定退休年龄时(男职工60岁;从事管理和科研工作的女职工55岁;从事生产和工勤辅助工作的女职工50岁,自由职业者、个体工商户女年满55周岁),累计缴费满15年的,按月领取基本养老金。

+

职工养老保险为单位和职工共同缴纳。

+

缴费比例:

+

单位:一般不超过20%(以单位工资总额为基数)

+

个人:8%(以本人缴费工资为基数)

+

医疗保险

+

参加职工基本医疗保险的个人,达到法定退休年龄时累计缴费达到国家规定年限的(男性缴满25年、女性缴满20年),退休后不再缴纳基本医疗保险费,按照国家规定享受基本医疗保险待遇。

+

职工医疗保险为单位和职工共同缴纳(单位缴纳的基本医疗保险费一部分用于建立统筹基金,一部分划入个人账户)。

+

缴费比例:单位6%,个人2%(各地略有不同)

+

失业保险

+

失业人员符合下列条件的,从失业保险基金中领取失业保险金:

+

失业前用人单位和本人已经缴纳失业保险费满一年的;

+

非因本人意愿中断就业的;

+

已经进行失业登记,并有求职要求的。

+

失业保险为单位和职工共同缴纳。缴费比例:个人费率不超过0.5%。

+

工伤保险

+

职工有下列情形之一的,应当认定为工伤:

+

在工作时间和工作场所内,因工作原因受到事故伤害的;

+

工作时间前后在工作场所内,从事与工作有关的预备性或者收尾性工作受到事故伤害的;

+

在工作时间和工作场所内,因履行工作职责受到暴力等意外伤害的;

+

患职业病的;

+

因工外出期间,由于工作原因受到伤害或者发生事故下落不明的;

+

在上下班途中,受到非本人主要责任的交通事故或者城市轨道交通、客运轮渡、火车事故伤害的;

+

法律、行政法规固定应当认为工伤的其他情形。

+

工伤保险为单位缴费。

+

缴费比例:0.3%-2.5%(根据各行业工伤风险类别和工伤事故及职业病的发生频率浮动)

+

生育保险

+

用人单位已经缴纳生育保险的,其职工享受生育保险待遇;职工未就业配偶按照国家规定享受生育医疗费用待遇。

+

生育保险为单位缴纳。缴费比例:0.8%

+

住房公积金

+

职工住房公积金的月缴存额=职工本人上一年度平均工资×职工住房公积金缴存比例。

+

单位为职工缴存的住房公积金的月缴存额=职工上一年度月平均工资×单位住房公积金缴存比例。

+

缴存比例:单位和职工缴存比例不应低于5%,原则上不高于12%。

+

住房公积金可以提取,但要符合下列条件之一:

+

购买、建造、翻修、大修自住住房的;

+

离休、退休的;

+

完全丧失劳动能力的,并与单位终止劳动关系的;

+

出境定居的;

+

偿还购房贷款本息的;

+

连续足额缴存住房公积金3个月,本人及配偶在缴存城市无自有住房且租房的,可提取双方住房公积金支付房租。

+

当然,某些福利较好的公司,除了国家规定的五险,还会为员工额外购买商业险。比如商业医疗险,来为员工覆盖社保医疗险种无法报销的部分费用。

+

五险一金从什么时候开始缴纳:不论是否约定了试用期,都需要在入职的一个月之内(即为入职的当月、或者次月开始为员工缴纳社会保险)。

+

3.员工福利

+

这一类,是属于企业为员工额外提供的,提升员工满意度的福利,不是法律强制性的,但是会为员工的生活带来便利,比如健身房、体检等等。此类一般不会在offer或者合约上注明,但是在发放offer的时候,HR会向你提到,你也可以纳入整体offer的考虑当中。毕竟,喜欢健身的同学,还是能节省一些支出。一些公司,甚至包含了三餐,那么也是作为福利,帮员工节省了很大的餐饮支出,这个现金价值,就是非常实在的。

+

问题一:税前和税后是什么意思?为什么我税前是8k,到手之后,只有5k了呢?

+

首先,税前的工资,和最终到手的工资,是肯定会有差距的。核心原因是两方面:

+

一方面,要扣除对应的五险一金及其他补充险,一方面,是要扣除个税。

+

2019年后,个税起征点调整为5000,同时,也增加了6项个税免除的项目。可以根据个人所得税的规定,查询自己的税后收入。

+

问题二:关于年终奖,公司签约的时候,承诺薪酬是13-16薪,但在年末的时候,到底是如何发放?

+

通常的情况,年末能够拿到几薪,会根据你的绩效考核情况,和公司整体的经营状况来看的。如果在offer中有注明,那么至少是能够在年末拿到一薪的奖励,但不是所有人都能拿到最好的16薪,一般公司会有完善的考评机制,对于员工进行分级,比如表现得特别优秀的员工,可以拿到最高额的奖励。

+

PS:

+

13薪是指工作期满一年后,可以领取第十三个月的工资。一般情况下,指年底双薪。

+

16薪分别是12个月的基本工资+年底双薪(13薪),再加上次年4月份的绩效部分(参考下并不准确的361原则)的大概标准,除了10%被打成3.25的员工,60%的员工可以拿到3个月绩效工资,30%的员工可以拿到5个月以上的绩效工资(打分3.5以上)。

+

二.关于劳动合同 +一、劳动合同

+

签署了劳动合同,才表明你真正与公司确立了劳动关系。用人单位应当自入职之日起1个月内与劳动者签订书面劳动合同。

+

劳动合同的期限:固定期限和无固定期限。如果没有明确标注期限,则为无固定期限合同。

+

试用期:也就是你初入公司,还没转正成为正式员工的时期,也是你和企业双方,可以相互考察,是否匹配适合的时期。

+

劳动法规定: 劳动合同期限满三个月不满一年的,试用期不得超过一个月。劳动合同期限满一年不满三年的,试用期不得超过二个月;三年以上固定期限和无固定期限的劳动合同,试用期不得超过六个月。

+

同一用人单位与同一劳动者只能约定一次试用期。以完成一定工作任务为期限的劳动合同或者劳动合同期限不满三个月的,不得约定试用期。

+

在试用期,用人单位也有义务为员工缴纳五险一金。

+

劳动合同解除:

+

如果你想主动解除劳动合同(想辞职):如果在试用期之内,只需提前3日通知用人单位,如果已经转正,需要至少30天提前通知用人单位。如果你被胁迫劳动,或者用人单位未按照劳动合同约定向你支付报酬或者提供劳动条件,你可以立即主张接触劳动合同。

+

那公司在什么情况下,可以辞退你呢?

+
    +
  1. +

    在试用期内,不满足试用期的条件

    +
  2. +
  3. +

    严重违纪,或者给企业造成损害,承担刑事责任等。

    +
  4. +
  5. +

    企业经营不善,破产、或者发生严重经营困难,确需裁员。

    +
  6. +
+

如果你不认同公司辞退你的理由,可以向当地的劳动局申请仲裁。这时,举证的责任在于公司。如果公司无法罗列对应的证据,证明其理由,那么公司需要对于辞退行为向你进行补偿。为了避免法律风险,一定要反复的看劳动合同上的条款,包括岗位,劳动合同期限,试用期,薪酬,假期,工作时间,是否与offer承诺的一致,以及约定的劳动解除条款,包括赔偿条款等等。

+

二、三方协议

+

首先,要弄明白三方是三方。这里的三方,代表的是学校,你,和用人单位。三方协议,只会存在于应届毕业生找工作时签订。在未来,你再做职业转换的时候,已经是社会人了,就不会再签订这类的协议了。协议是三方各执一份的。

+

官方定义:三方协议是《普通高等学校毕业生、毕业研究生就业协议书》的简称,它是明确毕业生、用人单位和学校三方在毕业生就业工作中的权利和义务的书面表现形式,能解决应届毕业生户籍、档案、保险、公积金等一系列相关问题。

+

注意:协议在毕业生到单位报到、用人单位正式接收后自行终止,三方不等于劳动合同,它只是三方的意向,对你的劳动关系没有约束力,所以,在入职的时候,一定要签订劳动合同,才能保证自己的权益!!

+

一般,三方合同会规定违约金,学生应当注意这个部分,它可能会为你带来风险,如果你在签订三方后,没有按时去公司报道,是需要支付这部分违约金的。一般违约金等同于月薪,但考虑到学生的情况,也不应超过5000元。

+

除此之外,与劳动合同需要查看的部分一致,你**需要仔细检查三方协议中约定的薪金、补贴、权益等事项进行确认。

+

常见的坑:

+

1:以三方协议代替劳动合同

+

三方协议不是劳动合同。它是学校管理就业的手段,主要涉及到应届生身份和落户、调档等问题,效力一般持续到正式签订劳动合同为止。

+

2:以Offer代替劳动合同

+

Offer也不是劳动合同。用人单位单方面发出的offer可以视为要约,劳动者确认接受后,形成的通常是一份普通合同,内容比正式劳动合同简单很多,因此不能代替劳动合同。

+

3:不订立书面劳动合同

+

书面劳动合同是认定劳动关系最有力的证据,如果不订立书面劳动合同,劳动者的权利很难得到保护。

+

《劳动合同法》第十条:“建立劳动关系,应当订立书面劳动合同。已建立劳动关系,未同时订立书面劳动合同的,应当自用工之日起一个月内订立书面劳动合同。用人单位与劳动者在用工前订立劳动合同的,劳动关系自用工之日起建立。”

+
+

[《劳动合同法》第八十二条:“用人单位自用工之日起超过一个月不满一年未与劳动者订立书面劳动合同的,应当向劳动者每月支付二倍的工资。”

+
+
+

如果用人单位坚持不订立书面劳动合同,可以保留好工卡/工牌、工服、考勤记录、工作沟通记录等证据,向劳动监察部门投诉。但如果三方协议和offer等书面文件具备基本劳动合同条款,也可能被法院「视为」书面劳动合同,你就没法薅双倍工资羊毛了。

+
+

4:用人单位不具备合法资质

+

用人单位在法律上根本不存在,比如未办理营业执照、营业执照被吊销或者营业期限届满仍继续经营#喂,你是幽灵吗?日后发生争议时,基本只能去寻找单位出资人。

+

5:用人单位与劳动合同上的名称、公章不一致

+

日后发生争议时,难以确定

+

6:用人单位注册地在外地

+

日后发生争议时,如果不能证明劳动合同履行地在本地,有可能需要到外地申请劳动仲裁,大大增加维权成本。

+
+

可以事先在“国家企业信用信息公示系统”、“信用中国”、“天眼查”或“企查查”等网站上查询用人单位的全称、类型、经营范围、规模、存续状态、业绩、口碑等,检查劳动合同上的名称、公章是否都与查询结果一致。

+
+
+

如果发现问题,劳动者有权要求与真实、准确、合法的用人单位订立劳动合同,否则建议不要提供劳动。

+
+

用人单位在外地的,应综合考虑日后发生争议的概率,评估自己是否愿意承担相应的风险。

+

7:订立一份劳动合同,但为多个单位提供劳动

+

有些单位相互关联,明明跟A单位签了劳动合同,却被派去帮B单位干活。日后发生争议时,要考虑到A、B单位互相甩锅(A说你没帮它干活,B说你没跟它签劳动合同)、难以确定责任单位的可能性。

+

8:用人单位要求与第三方订立劳务派遣合同

+

可能在实际用工中与本单位员工待遇不同;在遇到一些具体问题时,如工伤认定等,操作复杂程度有所上升。

+
+

如果必须为订立劳动合同单位之外的其他单位提供劳动,又并非劳务派遣,则应该得到订立劳动合同单位的书面认可或指示,并保留好在不同用人单位劳动的证据。

+
+
+

在不得不签订劳务派遣合同的情况下,尤其需要确认派遣单位是否具备合法资质,如果是小公司则需要定期关注他们是否按时缴纳五险一金、操作流程是否规范等。

+
+

9:用人单位要求订立阴阳合同

+

为避税等目的订立阴阳合同,比如一份对外的薪资较低,一份对内的(或者口头的)薪资较高。日后发生争议时,证据上可能面临不利。

+

10:用人单位要求劳动者在空白的合同上签字

+

「超级大雷」用人单位可能会在合同空白处填上对劳动者不利而对单位本身有利的内容,如较少的工资、更长的工作时间、与协商不一致的福利待遇等。但日后发生争议时,#哎,有理说不清……

+
+

阴阳合同尽量避免,空白合同绝对避免!

+
+

11:用人单位扣押劳动者身份证

+

影响辞职自由,日后无法正常申请劳动仲裁和诉讼等。有些公司甚至会利用劳动者的身份信息进行其他非法活动。

+

12:用人单位要求劳动者提供担保或者以其他名义向劳动者收取财物

+

这种情况下,大概率前方有巨坑,请直接掉头走人

+

13:用人单位不提供劳动者应持有的一份劳动合同

+

劳动合同永远是最关键的证据。

+

14:劳动合同上不载明必备条款

+

日后发生争议时,劳动者手里会缺少最关键的依据,增加举证成本和困难,给对方留下抗辩机会。

+

《劳动合同法》第十七条:“劳动合同应当具备以下条款:(一)用人单位的名称、住所和法定代表人或者主要负责人;(二)劳动者的姓名、住址和居民身份证或者其他有效身份证件号码;(三)劳动合同期限;(四)工作内容和工作地点;(五)工作时间和休息休假;(六)劳动报酬;(七)社会保险;(八)劳动保护、劳动条件和职业危害防护;(九)法律、法规规定应当纳入劳动合同的其他事项。劳动合同除前款规定的必备条款外,用人单位与劳动者可以约定试用期、培训、保守秘密、补充保险和福利待遇等其他事项。”

+

三.关于试用期 +1.试用期时间

+

根据《劳动法》:劳动合同期限三个月以上不满一年的,试用期不得超过1个月;劳动合同期限一年以上不满三年的,试用期不得超过2个月;三年以上固定期限和无固定期限的劳动合同,试用期不得超过6个月;以完成一定工作任务为期限的劳动合同或者劳动合同期限不满三个月的,不得约定试用期。

+

同一用人单位与同一劳动者只能约定一次试用期。

+

2.试用期工资

+

劳动者在试用期的工资不得低于本单位相同岗位最低档工资或者劳动合同约定工资的80%,并不得低于用人单位所在地的最低工资标准。

+

用人单位在试用期解除劳动合同的,应当向劳动者说明理由。

+

在此特别强调!

+

试用期≠实习期,两者最大的区别在于你是否毕业!

+

试用期的当事人双方存在着劳动关系,用人单位对劳动者承担无过错责任,与劳动者共同履行缴纳社会保险费用的义务,向劳动者支付的工资报酬不得低于当地最低工资标准。

+

而学生实习所在的单位对于实习学生,不承担无过错责任,不须执行最低工资标准。

+

四.关于纳税 +1.应纳税所得额

+

应纳税所得额=收入-起征点(5000元)

+

v2-c0a3bf0a2d079674ccbb2b0e779e8710_1440w.webp

+

个人因任职或者受雇而取得的工资、薪金、奖金、年终加薪、劳动分红、津贴、补贴以及与任职或者受雇有关的其他所得都应该叫个人所得税。

+

不包括

+

五险一金

+

省级人民政府等单位颁发的科学、教育、环境保护等方面的奖金

+

国债和国家发行的金融债券利息

+

按照国家统一规定发给的补贴、津贴

+

福利费、抚恤金、救济金

+

保险赔款

+

其他

+

2.应纳税额

+

应纳税额=应纳税所得额*税率-速算扣除数

+

五.关于休假 +该部分数据仅供参考,不同地区略有不同,详情请参考各地方政府规定。

+

1.年假

+

根据《职工带薪年休假条例》:

+

职工累计工作已满1年不满10年的,年休假5天;

+

已满10年不满20年的,年休假10天;

+

已满20年的,年休假15天;

+

2.探亲假

+

根据《国务院关于职工探亲待遇的规定》:

+

探亲配偶,每年给予一次探亲假一次,30天;

+

未婚员工探望父母,每年给假一次,20天,也可以根据实际情况,2年给假一次,45天;

+

已婚员工探望父母,每4年给假一次,20天。

+

各省又有细则:新疆规定,婚后探亲假三年一趟,比国家规定少一年。

+

3.婚假

+

根据《人口与计划生育法》:

+

按法定结婚年龄(女20周岁,男22周岁)结婚的,可享受婚假;

+

正常情况下,婚假1-3天,结婚时男女双方不在一地工作的,可视路程远近,另给予路程假。

+

4.产假

+

根据《女职工劳动保护特别规定》:

+

女职工生育享受98天产假,其中产前可以休假15天;

+

难产的,增加产假15天;

+

生育多胞胎的,每多生育1个婴儿,增加产假15天。 

+

女职工怀孕未满4个月流产的,享受15天产假;

+

怀孕满4个月流产的,享受42天产假。

+

5.病假

+

根据《劳动法》:

+

职工患病或非因工负伤治疗期间,在规定的医疗期间内由企业按有关规定支付其病假工资或疾病救济费,病假工资或疾病救济费可以低于当地最低工资标准支付,但不能低于最低工资标准的80%。

+

医疗期满后不能从事原工作的,由劳动鉴定委员会参照工伤与职业病致残程度鉴定标准进行劳动能力鉴定,根据鉴定等级进行相应的补贴待遇。

+

6.工伤假

+

根据《工伤保险条例》:

+

停工留薪期一般不超过12个月。伤情严重或者情况特殊,经确认可以适当延长,但延长不得超过12个月。

+

7.丧假

+

根据《关于国营企业职工请婚丧假和路程假问题的通知》:

+

职工的直系亲属死亡时,由本单位行政领导批准,酌情给予一至三天的丧假;职工在外地的直系亲属死亡时,可根据路程远近,另给予路程假。

+

祝大家都能收获自己满意的offer!

+ +
+ + + + +
+ +
+ + + + + +
+ + + diff --git a/public/about/index.html b/public/about/index.html new file mode 100644 index 0000000..b57e96b --- /dev/null +++ b/public/about/index.html @@ -0,0 +1,113 @@ + + + + + Dich'blog + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + + + + + +
+ + +
+ +
+ +

About Me

+ + + + +
+

Welcome to dich' Blog!

+ +
+ + +
+ +
+ + + + + +
+ + + diff --git a/public/advertising-algorithms/index.html b/public/advertising-algorithms/index.html new file mode 100644 index 0000000..4f6b4a9 --- /dev/null +++ b/public/advertising-algorithms/index.html @@ -0,0 +1,228 @@ + + + + + Dich'blog + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + + + + + + +
+ + +
+ +
+ +

广告推荐算法与实例

+ + + + + + +
+

一.广告算法与推荐算法的区别 +1.优化目标的区别

+

广告算法的目标是为了直接增加公司收入。

+

推荐算法虽然本质上也是为了增加公司收入,但其直接目标是为了增加用户的参与度。

+

各公司广告算法的预估目标非常统一,就是预估CTR和CVR,因为CPC和CPA计价是目前效果类广告系统的主流计价方式。

+

推荐算法的预估目标就不尽相同,视频类更多倾向于预测观看时长,新闻类预测CTR,电商类预估客单价等等,都是针对业务场景来做优化

+ +

2.算法模型设计侧重点不同:

+

由于广告算法要预测“精准”的CTR和CVR,用于后续计算精确的出价,因此数值上的“精准”就是至关重要的要求,仅仅预估广告间的相对位置是无法满足要求的。这就催生了广告算法中对calibration方法的严苛要求,一定要估的准。

+

推荐算法的结果往往以列表的形式呈现,因此不用估的那么准,而是要更多照顾一个列表整体上,甚至一段时间内的内容多样性上对于用户的“吸引力”,让用户的参与度更高。

+

3.算法实现原理不同:

+

因为需要对每一条广告的CTR,CVR都估的准,广告算法基本全部都是point wise的训练方式,因为广告是很少以列表的形式连续呈现的。在采用负采样,weighted sampling等方式改变原始数据分布后,也需要在后续步骤中千方百计地把CTR,CVR纠正过来。

+

推荐算法就有大量不同的训练方式,除了point-wise,还有pair-wise,list-wise等等。此外为了增加用户的长期参与度,还对推荐内容的多样性,新鲜度有更高的要求,这就让探索与利用,强化学习等一些列方法在推荐场景下更受重视。

+

4.辅助策略不同

+

广告系统中,CTR等算法只是其中关键的一步,估的准CTR只是一个前提,如何让广告系统盈利,产生更多收入,还需要pacing,bidding,budget control,ads allocation等多个同样重要的模块协同作用,才能让平台利益最大化,这显然是比推荐系统复杂的。

+

推荐系统中,由于需要更多照顾用户的长期兴趣,需要一些补充策略做出一些看似“非最优”的选择,比如探索性的尝试一些长尾内容,在生成整个推荐列表时要加入多样性的约束,等等。这一点上,广告系统也需要,但远没有推荐系统的重视程度高。

+

5.本身的差异

+

在广告模型中,用户的兴趣是不那么连贯的,因此容易造成sequential model的失效,attention机制可能会更加重要一些。

+

推荐模型中,如果不抓住用户兴趣的连续变化,是很难做好推荐模型的。

+

总而言之,广告算法的问题更加琐碎,各模块协同工作找到平台全局利润最大化方法的难度非常大,系统往往异常复杂到难以掌控的地步;而推荐算法这边,问题往往卡在长期利益与短期利益的平衡上。

+

v2-63ba4b30e68137b031601f44c5d34ef1_r.png

+

PS:常用术语

+

1.CPA(Cost Per Action) 每行动成本。CPA是一种按广告投放实际效果计价方式的广告,即按回应的有效问卷或注册来计费,而不限广告投放量。电子邮件营销(EDM)现在有很多都是CPA的方式在进行。

+

2.CPS(Cost Per Sales):以实际销售产品数量来换算广告刊登金额。CPS是一种以实际销售产品数量来计算广告费用的广告,这种广告更多的适合购物类、导购类、网址导航类的网站,需要精准的流量才能带来转化。

+

3.CPM(Cost Per Mille) 每千人成本。CPM是一种展示付费广告,只要展示了广告主的广告内容,广告主就为此付费。

+

4.CPT(Cost Per Time) 每时间段成本。CPT是一种以时间来计费的广告,国内很多的网站都是按照“一个星期多少钱”这种固定收费模式来收费。

+

5.CPC(Cost Per Click) 每点击成本。CPC是一种点击付费广告,根据广告被点击的次数收费。如关键词广告一般采用这种定价模式,比较典型的有Google广告联盟的AdSense for Content和百度联盟的百度竞价广告。

+

通过以上信息我们知道:

+

(1)CPT和CPM只在第一步收取广告费用,即媒体只需要将广告对广告受众进行了展示,即可向广告商收取广告费用。

+

(2)CPC只收取第二步费用,消费者看到广告后并进行了点击行为以后,媒体向广告商收取广告费用。

+

(3)CPA和CPS处于第三步,即消费者有看到广告后并点击了广告,进一步了解活动情况后在广告主的网站完成某些特定行为(例如付款消费,填表注册等)。

+

二.常见的推荐算法有哪些?

+
    +
  1. 协同过滤(Collaborative Filtering)
  2. +
+

它是一种**基于用户行为或物品之间的相似性来进行推荐的方法。

+
    +
  1. 矩阵分解( Matrix Factorization )
  2. +
+

它是一种用于处理稀疏数据的推荐算法。将用户-物品评分矩阵分解为低维的用户和物品隐向量,通过计算隐向量之间的内积来进行推荐。

+
    +
  1. 深度学习推荐( Deep Learning Recomendation )
  2. +
+

它指使用深度神经网络来学习用户和物品之间的复杂关系。比如常见的多层感知机( MLP )、卷积神经网络( CNN )、循环神经网络( RNN )以及注意力机制等模型。

+
    +
  1. 混合推荐( Hybrid Recommendation )
  2. +
+

顾名思义就是把多种推荐算法混合在一起进行训练,获得更优的结果。比如协调过滤可以和基于规则的推荐算法相结合,我们常逛的电商网站(淘宝、京东等)就有多种推荐算法,其中一种使用的就是混合算法。

+
    +
  1. 基于内容的推荐( Content-Based Recommendation )
  2. +
+

它指根据用户的历史行为和物品的特征属性进行相似的推荐。

+
    +
  1. 基于规则的推荐( Rule-Based Recommendation )
  2. +
+

它是使用预定义的规则(可以手动定义或数据挖掘再学习)或条件来进行推荐。

+

v2-2a278d7caf78cfa628749d772d358aec_1440w.png

+

三.实例分析 +1.流量分级 +以视频平台B站和抖音为例,存在如下分级流量池机制:

+

1.Up主发了一个视频,并推送到他的粉丝那里,算法抓取视频的一些特征(如标题和标签的关键字),向有可能对这些关键字感兴趣的人推荐;

+

2.根据第一波推送的粉丝+用户的反馈数据(点赞、投币、收藏、完播、弹幕)的情况,B站根据推荐算法,再推荐给流量池B(其他用户),根据流量池B的用户反馈数据,再推荐到流量池C。

+

3.如此不断的进行推荐,如果算法认为该视频是热门(视频分数达到某个级别),那么B站就会给你一个更大的流量池,并且把你的视频推荐到“热门、排行榜、资源位”。

+

v2-2e316c752a50dd0e89bfc9d1199c45a3_1440w.webp

+

2.用户画像 +平台会记录用户使用App的习惯,得出用户行为路径,从而确定用户的初始标签,伴随着用户的持续使用,将持续优化标签。这个过程都是实时的机器算法。

+
+

那么这个采集的方法:就是个人资料的填写,关键词搜索的记录,浏览的比较多的类目视频,点赞视频数据,评论数据,通讯录的圈子关系等。

+
+

通过不断的标签优化升级后,呈现出来的用户标签就会越立体,我们也称之为用户画像;根据用户标签池,将拥有相同标签的用户画像的人汇聚在一起,成为社区。

+

标签主要分成两大类:静态标签与动态标签。

+

静态标签是用户主动呈现给平台的,例如初始关注,个人信息,个人昵称,喜好的频道,稍后再看,反馈以及不感兴趣等等;

+

动态标签是用户在浏览平台时所产生的,主要是用户的行为特征,如阅读某一类标签视频时的停留时长,通过搜索功能提供的关键词等,包括搜索,评价,历史记录,稍后再看,离线缓存,我的收藏,以及最近看过的频道;收藏,点赞,投币,转发,三连操作等等。

+

v2-8c875fc3660e22927b736767814e5c9b_1440w.webp

+

3.数据共享 +除了用户使用APP的行为习惯会被记录之外,使用同系其他产品的行为习惯也同样会共享。如头条系,阿里系,腾讯系等等。

+

4.评论系统 +以B站阿瓦隆系统为例

+

阿瓦隆系统是哔哩哔哩官方在2021年6月26日发布的[BILIBILI 12周年演讲]中提到的一项评论管理系统。然而,其上线后评论区和弹幕区的语言环境并没有得到明显改善,反而出现了一些问题。恶意评论,人身攻击,辱骂和水军行为并没有减少,相反,合理的言论却面临高概率的误判和清除,尤其是包含情绪或见解的评论。

+

该系统的应用领域主要包括评论区、弹幕和私信。在直播评论区和弹幕上,实时审核是不可行的,因此系统选择将涉及不良内容的评论在所有人面前隐藏,除非是评论者本人。此外,在博主开启实时评论时,系统允许用户检查评论是否成功发布。

+

评论处置方面,阿瓦隆系统采取了多种手段。首先,系统会发出警告,提示评论内容可能包含敏感信息,并阻止其发送。其次,评论可能被标记为“发送成功”但实际上被删除,仅评论者可见,这被称为“ShadowBan”。此外,系统还承认一种隐藏评论的机制,仅评论者可见,并在发布14天后自动删除,而up主可以选择公开这些评论。

+

阿瓦隆系统的评论审查机制主要采用了正则表达式、人工审核以及AI神经网络审核。这些技术用于识别和过滤不良内容,提高了系统的智能性和效率。

+

戒严机制是一种被动且隐性的评论区封锁,用户可能无法察觉到自己的评论受到了限制。这种机制可能在涉及争议性话题的评论区中发挥作用,甚至影响到up主的评论。至于是怎么被戒严的?或许这些由阿瓦隆自动识别并标记,或许在审核员的控制台上,有一个勾选框,可以将其评论区设置为戒严状态。

+

至于评论被删除的具体条件和审查内容,目前尚不清楚。然而,已知系统审查包括政治敏感词以及一些特定词语的组合。评论越长,涉及的词语越多,越容易被系统审查。此外,特殊字符和emoji的使用也可能导致评论被删除或者仅对评论者可见。

+

总体而言,阿瓦隆系统采用了复杂而高效的控评手段,使得用户可能不清楚其评论是否被删除。这种方法似乎在一定程度上成功,尽管一些用户可能对其审查的合理性产生质疑。

+ +
+ + + + +
+ +
+ + + + + +
+ + + diff --git a/public/android-root/index.html b/public/android-root/index.html new file mode 100644 index 0000000..83cbade --- /dev/null +++ b/public/android-root/index.html @@ -0,0 +1,191 @@ + + + + + Dich'blog + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + + + + + + +
+ + +
+ +
+ +

安卓刷机与root教程

+ + + + + + +
+

前言 +自安卓系统诞生以来,root 一直是玩机的必备过程。时至今日,在安卓定制系统日益完善的情况下,能root 的机型越来越少,本文以小米手机为例,介绍root 的具体方法。

+ +

一.什么是root +这涉及安卓的权限系统。Andoird 系统是基于 Linux 内核的,其中的权限大致可以分为四级,即一般软件权限,用户权限,ADB权限和超级管理员权限(su)。而所谓 Root 也就是使手机获得超级管理员的权限,但是出于种种原因,厂商默认不提供超级管理员的权限,因此,root的本质就是一个提权的过程。

+

二.为什么要root +以权限系统为例,一般软件权限需要经过用户同意,即每次安装前出现的各种请求弹窗;而ADB权限常常用于开发者模式,可以调试一些比较深层的设置;至于root权限则为系统的最高权限,与Windows的system 权限相当(比administer还高)。因此,当我们具备了root权限后,就可以实现许多功能,例如屏蔽广告,虚拟定位,安装Google框架和软件,满血运行CPU等等。

+

三.如何root +首先我们要了解安卓系统的分区和启动。安卓的分区包括

+

1.recovery分区,类似PC端的PE环境,手机上的恢复出厂设置即为从recovery恢复;

+

2.cache分区,保存系统最常访问的数据和应用程序。 擦除这个分区,不会影响个人数据,只是删除了这个分区中已经保存的缓存内容;

+

3.boot分区,类似PC端的MBR分区,用来引导系统启动,擦除后手机会卡在开机logo的界面;

+

4.system分区,包括操作系统与软件,vendor定制文件与库文件等等,擦除后会卡在开机的动画界面;

+

5.data分区,存放用户数据和系统设置,擦除后不影响系统的运行。

+

6.手机启动阶段存在名为bootloader的程序,与PC端的BIOS类似,被称为fastboot模式,厂商一般会将其锁定。

+

早些年间,存在大量一键root,kingroot 之类的软件,可以直接刷写root包,获得root权限,但成功率不高;

+

因此,现在主流的刷机步骤为

+

1.解开bootloader,俗称解BL锁。

+

2.刷入第三方recovery,比如大名鼎鼎的TWRP;

+

3.进入recovery模式,通过TWRP刷入其他系统(可选),包括线刷和卡刷两种方法;

+

4.刷入Magisk(面具)工具,通过修补img文件获得root权限;

+

5.安装Magisk模块和Lsposed框架(可在其中下载许多模块,推荐一键救砖,系统优化和root隐藏)

+

6.安装Momo软件检测系统环境是否正常。

+

四.哪些机型可以root +看到这里很多小伙伴肯定跃跃欲试,不过在2023年的今天,能root的机型还是比较少。首先是最容易的一加和小米,可以申请官方解BL锁,需要等待7天;其次是联想,索尼等海外品牌,也比较容易;而oppo和vivo及其子品牌iqoo和realme一般是不行的;苹果的越狱在10代前是可以的,而华为全部机型都是不可以的,除非上万能的淘宝收费解锁,直接烧录芯片;至于三星,BL锁一旦解开就会触发芯片物理熔断机制,无法使用pay以及升级系统,体验极差。因此,刷机有风险,root需谨慎!刷机前要了解相应的厂商,考虑保修和变砖的问题!

+

五.具体操作流程 +1.笔者以redmi k30pro 5G这款手机为例,首先我们进入手机设置界面,进入“我的设备”,在“全部参数”中找到“MIUI版本”,连续点击后开启开发者模式,随后在“更多设置”中开启USB调试,USB安装功能。

+

2.随后下载大名鼎鼎的搞机工具箱http://jamcz.com/ (由B站up主晨钟酱出品),里面具有许多功能,包括进入各个模式,无极调速等等:

+

然后我们进入小米官网https://www.miui.com/unlock/download.html ,下载官方解锁工具,需要登陆小米账号并等待7天,随后即可解锁。

+

3.解锁完成后在https://mifirm.net/downloadtwrp/148 中下载对应的TWRP版本,注意redmi的海外名为Poco。

+

4.随后用数据线连接手机,用其中的一键刷写刷入TWRP;随后下载rom包,可以选择原版,官改版,海外版和类原生版。相关链接:

+

https://miuiver.com/

+

https://mi.fiime.cn/Android

+

这里选择 https://c.mi.com/global/miuidownload/index

+

下载时注意一并下载boot.img文件,作为Magisk的修补用。然后下载Magisk包,与rom一起存入TF卡或者U盘中。

+

Magisk : https://magisk.me/zip/

+

#注意,由于本机型为新型AB分区(https://www.jianshu.com/p/b2726b304801) 因此如果刷机失败,需要下载原厂包用以恢复AB分区,否则无法启动和安装rom。

+

5.通过搞机工具箱进入recovery模式,首先我们在wipe中清除Data、Cache两个分区,俗称“双清”,随后在高级清除选项中清除Data、Cache、Dalvik Cache和System分区,俗称“四清”。

+

6.清除完成后即可开始刷机。将TF卡或者U盘插入手机,在“安装”中选择rom包,右滑确认刷机;随后如法炮制,刷入 magisk.zip包,不然会卡在开机logo界面,俗称“卡米”。

+

7.刷完之后重启,则会进入安装界面。注意:如果刷的是海外版的包,千万不能联网安装,否则会失败且变为国内版。

+

#据说miui13以后优化不好,这里使用12.5版。

+

随后可以看到桌面环境

+

8.此刻我们将下载好的boot.img文件复制到手机上,打开Magisk软件,在其中选择修补一个文件,选中boot.img,修复完成后可以看到超级用户一栏可以使用了,说明root完成。

+

六.Root后的模块安装 +包括大名鼎鼎的yc调度,Lposed框架,李跳跳和scene软件都是必备的,这些资源可在我的alist中下载:https://share.dich.ink/STORJ/ROOT

+

后记 +关于root的其他用途还有很多,这里就不一一列举,分享一些常用模块:

+

https://sspai.com/post/68531

+ +
+ + + + +
+ +
+ + + + + +
+ + + diff --git a/public/android-tv/index.html b/public/android-tv/index.html new file mode 100644 index 0000000..41c53cd --- /dev/null +++ b/public/android-tv/index.html @@ -0,0 +1,207 @@ + + + + + Dich'blog + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + + + + + + +
+ + +
+ +
+ +

Android TV 折腾小记

+ + + + + + +
+

前言:由于AppleTV的高昂的售价和普通电视盒子广告的泛滥,一台开源、多功能的原生安卓电视盒子逐渐成为智能家居的必备神器。出于对IPTV、YouTube和家庭影院等需求,以及对一面赏心悦目电视墙的期待,这里分享Android TV (以下简称ATV)安装的一些要点。

+ +

准备工作: +1.一个ATV镜像,这里使用Tosathony制作的Android TV x86 9.0, 支持Android tv Remote,且可以下载Google Play Store 。https://pan.baidu.com/s/17eDDrf4WzWVmrc9hLw-c_w?pwd=a728

+

2.我们的老朋友Rufus写盘工具:https://www.423down.com/10080.html

+

3.Android tv Remote手机遥控器软件:https://android-tv-remote-control.en.softonic.com/android

+

4.Tiny ADB软件: https://androidmtk.com/tiny-adb-and-fastboot-tool#installer

+

5.一些可安装的软件:

+

当贝市场:https://www.dangbei.com/apps/

+

哔哩哔哩TV版:https://www.fenxm.com/104.html

+

kodi: http://www.kodiplayer.cn/

+

ATV Launcher: https://www.fenxm.com/592.html

+

安装流程: +一、写盘,BIOS启动 +1.使用Rufus将下载好的ATV镜像写入U盘。

+

2.将U盘插到目标主机上,并设置BIOS-boot优先启动,不同设备进入BIOS的按键不同,大部分是F2或者DEL;

+

二、开始安装 +1.boot成功后可以看到如下界面:

+

2.我们选择自动安装:

+

3.经过跑码后进入若干个选项,一路yes过去,文件系统选ext4;

+

随后运行ATV,并拔出U盘;

+

三、进入Google界面 +由于国内网络环境问题,导致一些界面无法进入,可使用如下方法或全局科学。

+

1.如果卡在Google的logo界面或者动画比较缓慢,或者重启后无法进入ATV界面,需要在BIOS-Advanced-OS selection中将其设置为Windows 8.X或者Android。

+

2.然后可以看到PayPal界面,这里使用可以Ctrl+Alt+F1 进入命令行界面,随后输入

+

pm disable com.tosanthony.tv.networkprovider #注意空格 +回车执行,随后按Ctrl+Alt+F7或F8回到图形界面。

+

3.下一步,我们可以看到自动更新界面,这里我们需要禁用它:

+

同样Ctrl+Alt+F1 进入命令行界面,随后输入

+

pm disable com.google.android.tungsten.setupwraith #注意空格 +回车执行,随后按Ctrl+Alt+F7或F8回到图形界面。

+

4.此时会进入一个WiFi界面,如果你是使用网线直连就没有问题,或者用键盘连接家里的WiFi,作者因为工控机没有WiFi模块在这里卡了半天。

+

5.现在我们可以看到进入了ATV的桌面。

+

四、安装软件并设置桌面启动 +1.首先我们在设置中找到“设置”>“设备首选项”>“关于”,然后在“构建”上点击几次以解锁“开发人员”选项,随后开启USB调试开关。

+

2.随后在设置 > 设备首选项 > 关于 > 状态中找到并记下IP 地址,然后用Tiny ADB连接上去,这里使用命令adb connect <IP 地址> 。 ,随后在ATV端授权连接;

+

3.接着使用命令adb install 将要安装的软件包上传,也可以将文件拖到命令提示符窗口上以复制其路径,回车确认。

+

附一些ADB常用命令:

+

adb reboot #将重启 Android 设备。

+

adb reboot recovery #将设备重新启动到恢复模式。

+

adb push #将文件从您的 PC 复制到您的 Android 设备。

+

adb shell wm density #改变显示器的像素密度。

+

adb kill server #切断 PC 和 Android TV 之间的连接。 +4.如果存在一些软件无法安装,可开启ARM兼容层,具体方法为在 dl.android-x86.org/houdini/9_y/houdini.sfs 中下载得到houdini.sfs,把文件名改成houdini9_y.sfs,随后拷贝进U盘,进入命令行界面,输入 ls 找到storage目录,输入 cd storage 进入你的U盘,输入ls,查看你拷贝的 houdini9_y.sfs 文件,并复制到该目录下。

+

cp houdini9_y.sfs /system/etc

+

enable_nativebridge

+

reboot +5.安装一些软件包后我们发现需要代替掉ATV自带的桌面,从而形成海报墙的效果,这和linux的桌面环境切换有异曲同工之处。注意:替换前需要已经安装完成其他桌面!!!!(比如ATV Launcher)我们使用

+

pm disable-user --user 0 com.google.android.tvlauncher +命令,禁用google默认的桌面。随后重启,即可看到如下海报墙:

+

后记 +Android TV google官方TV库

+

https://github.com/googlesamples/leanback-showcase

+

智能电视,电视盒子开发SDK

+

https://github.com/boxmate/tvframe

+

选中框切换动画,适用于电视

+

https://github.com/EZJasonBoy/FocusChangeAnimation

+

仿泰捷视频最新TV版 Metro UI效果. 仿腾讯视频TV版(云视听•极光) 列表页

+

https://github.com/hejunlin2013/TVSample

+

tv常用效果控件,包括焦点、边框处理等

+

https://github.com/evilbinary/Tvwidget

+

Android tv,盒子,投影仪 控件

+

https://github.com/FrozenFreeFall/Android-tv-widget

+

TV 项目常用工具(焦点问题,适配问题等.)

+

https://github.com/genius158/TVProjectUtils

+ +
+ + + + +
+ +
+ + + + + +
+ + + diff --git a/public/arch-install/index.html b/public/arch-install/index.html new file mode 100644 index 0000000..b9dd8a7 --- /dev/null +++ b/public/arch-install/index.html @@ -0,0 +1,230 @@ + + + + + Dich'blog + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + + + + + + +
+ + +
+ +
+ +

Arch从命令行安装

+ + + + + + +
+

前言 +Arch linux是一个轻量、灵活、滚动更新的 Linux 发行版,衍生了诸多优秀的桌面端linux。其官方Wiki更是被称为技术界的“武林秘籍”;

+

但由于该Wiki的中文版比较陈旧,安装教程不太清楚,故先以虚拟机安装Arch为例实际操作一番。

+ +

准备工作:需要虚拟机环境 (这里推荐使用VMware Workstation Pro) ,以及一个ISO镜像

+

VM学习版:https://www.ahhhhfs.com/33472/

+

官方镜像: https://geo.mirror.pkgbuild.com/iso/2023.08.01/

+

一.新建虚拟机 +1.打开VM,文件—新建虚拟机—典型—下一步,对于硬盘要求建议至少20G,作为后续分区使用;CPU及内存根据实际需求分配,一般取半数。

+

注意:完成后需先在编辑虚拟机设置—选项中设置引导为UEFI,否则会导致奇怪的Boot问题。

+

2.开启此虚拟机,随后进入界面,回车,跑码后进入tty1。

+

二.联网并分区 +1.使用 dhcpcd 命令获取IP地址,由于虚拟机使用NAT故联网容易。

+

2.使用 ping www.baidu.com 命令检查是否联网,若出现ttl,time=xx ms等数据说明成功,随后再 Ctrl+C 停止命令运行,避免百度被DDOS攻击死掉。

+

3.使用 timedatectl set-ntp true 命令更新系统时间,该命令无输出,正所谓无事发生就是最好的。

+

4.使用 fdisk -l 命令查看系统分区,由于虚拟机的存在只会显示一块硬盘。

+

5.接下来是Arch安装中较难的一部分,以20G硬盘空间为例,我们需要划分出512MB的引导分区,15G的根分区以及5G左右的交换分区。由于纯命令行分区比较繁琐,这里使用 cfdisk 命令打开分区工具。

+

回车选择gpt类型,可以看到如下界面:

+

使用左右方向键移动至New,新建一个分区,大小为512MB,回车确认,并移动至type将其类型改为EFI system,随后如法炮制,建立根分区(类型为linux filesystem)和交换分区(linux swap)。

+

注意:上诉操作完成后需在Write中选择yes,否则无法保存分区,随后quit回到命令行。

+

6.分区结束后分别对其进行格式化,命令为

+

mkfs.fat -F32 /dev/sda1

+

mkfs.ext4 /dev/sda2

+

mkswap -f /dev/sda3 +注意不同分区类型与格式所用命令不同。

+

7.格式完成后进行挂载,使用如下命令:

+

swapon /dev/sda3

+

mount /dev/sda2 /mnt

+

mkdir /dev/sda2 /mnt/home

+

ls /mnt

+

mkdir /mnt/boot

+

mkdir /mnt/boot/EFI

+

mount /dev/sda1 /mnt/boot/EFI

+

ls /mnt +完成后即可开始组件下载。

+

三.安装基本组件 +1.使用大名鼎鼎的vim编辑器,将下载镜像源改为国内,提高下载速度

+

vim /etc/pacman.d/mirrorlist

+

推荐使用清华源,在首行中改为如下命令:

+

Server = http://mirrors.tuna.tsinghua.edu.cn/archlinux/$repo/os/$arch +随后ESC,: wq保存退出。

+

2.安装基本包,使用命令

+

pacstrap /mnt base base-devel linux linux-firmware dhcpcd +一路回车下载。

+

3.生成fstab文件 ,使用命令

+

genfstab -U /mnt > /mnt/etc/fstab +自动挂载分区,并用

+

cat /mnt/etc/fstab +观察分区情况。

+

4.使用arch-chroot /mnt命令切换至系统环境下,此时可以设置时区,语言和主机名(hostname)。

+

设置上海为系统时区:

+

ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime +设置主机名:vim /etc/hostname,写入任意你想要的名字。随后在vim /etc/hosts中输入如下内容,将name改为主机名。

+

127.0.0.1 localhost

+

::1 localhost

+

127.0.1.1 name.localdomain name +设置语言: 使用vim /etc/locale.gen命令去掉 en_US.UTF-8 UTF-8 以及 zh_CN.UTF-8 UTF-8 行前的注释符号,并用locale-gen生成新locale,用

+

echo 'LANG=en_US.UTF-8' > /etc/locale.conf +命令确认输出。

+

4.设置root密码:使用passwd命令,设置并重复密码。

+

5.安装微码:根据硬件选择命令:

+

pacman -S intel-ucode # Intel

+

pacman -S amd-ucode # AMD +6.安装引导程序:pacman -S grub efibootmgr os-prober与GRUB:

+

grub-install --target=x86_64-efi --efi-directory=/boot --bootloader-id=ARCH +生成配置文件:grub-mkconfig -o /boot/grub/grub.cfg

+

7.退出并重启虚拟机:

+

exit # 退回安装环境

+

umount -R /mnt # 卸载新分区

+

reboot # 重启 +若成功进入登录界面即为成功,可使用neofetch命令打印系统信息。

+

四.安装图形界面 +为便于在虚拟机中操作,我们可以安装KDE-plasma,Xfce等桌面环境。

+

1.使用dhcpcd获得地址。

+

2.新建普通用户

+

useradd -m -G wheel username #替换username为你的用户名 +并设置密码passwd username 。

+

3.配置Sudo,使用pacman -S sudo安装并在

+

ln -s /usr/bin/vim /usr/bin/vivisudo +中删除 %wheel ALL=(ALL)ALL 前的注释符。

+

4.reboot后开始安装驱动。由于NVIDIA fuck you 众所周知的原因,独显驱动比较难以安装,建议先只上核显。

+

以此为例,若为AMD核显,命令为

+

sudo pacman -S xf86-video-amdgpu +OpenGL和mesa:

+

sudo pacman -S mesa xf86-video-amdgpu vulkan-radeon libva-mesa-driver mesa-vdpau

+

sudo pacman -S opencl-mesa lib32-vulkan-radeon lib32-mesa +5.使用命令

+

pacman -S plasma-meta konsole dolphin +安装KDE组件。

+

6.开启sddm守护进程:

+

systemctl enable sddm

+

systemctl start sddm +7.reboot后进入桌面环境,安装完成。

+

后记 +设备的多样导致安装中可能会出现一些奇怪的问题,需要自行搜索学习,以不断提高技术水平。

+ +
+ + + + +
+ +
+ + + + + +
+ + + diff --git a/public/archive/index.html b/public/archive/index.html new file mode 100644 index 0000000..7d1ebe0 --- /dev/null +++ b/public/archive/index.html @@ -0,0 +1,290 @@ + + + + + Dich'blog + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + + + + + +
+ + +
+ +
+

Archive

+ + + + + + +
+ +
+ + + + + +
+ + + diff --git a/public/atom.xml b/public/atom.xml new file mode 100644 index 0000000..65b1c86 --- /dev/null +++ b/public/atom.xml @@ -0,0 +1,398 @@ + + + Dich'blog + + + Zola + 2024-03-04T00:00:00+00:00 + https://blog.dich.ink/atom.xml + + 开源软件与协议 + 2024-03-04T00:00:00+00:00 + 2024-03-04T00:00:00+00:00 + + + + + Unknown + + + + + + https://blog.dich.ink/opensourcesoftware-licenses/ + + <h2 id="qian-yan">前言</h2> +<p>在当今数字时代,软件开发已经成为了人类社会不可或缺的一部分。开源软件在这个领域扮演着至关重要的角色,它们不仅推动了创新和技术进步,还促进了知识共享和协作精神的发展。然而,开源软件的使用和分发必须受到适当的许可证约束,以确保在保护创作者权益的同时,为用户提供开放、自由的使用权利。</p> +<p>本文旨在介绍开源软件许可证,这些许可证规定了使用、修改和分发开源软件的条件。通过了解不同类型的开源许可证及其特点,读者将能够更好地理解在开发和使用开源软件时的法律和道德责任。</p> + + + + + 路由器原理与组网 + 2024-02-19T00:00:00+00:00 + 2024-02-19T00:00:00+00:00 + + + + + Unknown + + + + + + https://blog.dich.ink/routing/ + + <h2 id="yi-shen-me-shi-wu-xian-lu-you">一.什么是无线路由</h2> +<p>所谓无线路由,就是具备无线覆盖的路由器,即我们常用的有天线的家用路由器。而家庭组网中,除了选择一个最合适的上网方案,一部好的路由器也是非常重要;那么,如何科学的选购路由器呢?</p> + + + + + 播客收听指北 + 2024-01-20T00:00:00+00:00 + 2024-01-20T00:00:00+00:00 + + + + + Unknown + + + + + + https://blog.dich.ink/podcast-use/ + + <p>前言 +讲起播客,许多人第一反应是喜马拉雅,但其实播客的订阅和收听有许多种方式。本文带你了解订阅播客的各种方式,并告诉你市面上有哪些不错的播客客户端可供选择。</p> + + + + + RSS阅读指南 + 2024-01-20T00:00:00+00:00 + 2024-01-20T00:00:00+00:00 + + + + + Unknown + + + + + + https://blog.dich.ink/rss-read/ + + <h2 id="yi-shen-me-shi-rss">一.什么是RSS</h2> +<p>如果你使用过类似红板报,轻芒杂志,摸鱼kiki,今日热榜等APP,应该对 RSS 并不陌生。</p> +<p>RSS(Really Simple Syndication)是一种用于发布经常更新的内容的标准,通常用于博客、新闻网站和其他线上发布的信息。RSS允许用户订阅这些站点的内容,以便在内容有更新时,用户能够获得及时的通知。</p> + + + + + 如何高效地向 ChatGPT 提问 + 2024-01-07T00:00:00+00:00 + 2024-01-07T00:00:00+00:00 + + + + + Unknown + + + + + + https://blog.dich.ink/chatogpt/ + + <p>第一章:Prompt 工程技术简介 +什么是 Prompt 工程?</p> +<p>Prompt 工程是创建提示或指导像 ChatGPT 这样的语言模型输出的过程。它允许用户控制模型的输出并生成符合其特定需求的文本。</p> +<p>ChatGPT 是一种先进的语言模型,能够生成类似于人类的文本。它建立在 Transformer 架构上,可以处理大量数据并生成高质量的文本。</p> +<p>然而,为了从 ChatGPT 中获得最佳结果,重要的是要了解如何正确地提示模型。 提示可以让用户控制模型的输出并生成相关、准确和高质量的文本。 在使用 ChatGPT 时,了解它的能力和限制非常重要。</p> + + + + + 搜索引擎与爬虫 + 2024-01-07T00:00:00+00:00 + 2024-01-07T00:00:00+00:00 + + + + + Unknown + + + + + + https://blog.dich.ink/searching/ + + <p>一.历史 +1990年,当时人们依赖ftp协议共享文件资源。必须一字不差地输入文件名称,才能得到一个能下载该文件的ftp地址。</p> +<p>1995年,风云一时的Yahoo诞生。当时Yahoo利用的是人工编辑导航目录的方式来给用户提供服务。但随着互联网上的web网站越来越多,传统的人力收录形式逐渐不再适用。</p> +<p>1998年,全球最大的搜索引擎Google成立,一种查找网页的自动化程序也开始被应用,这种程序就叫爬虫。</p> + + + + + 广告推荐算法与实例 + 2023-12-25T00:00:00+00:00 + 2023-12-25T00:00:00+00:00 + + + + + Unknown + + + + + + https://blog.dich.ink/advertising-algorithms/ + + <p>一.广告算法与推荐算法的区别 +1.优化目标的区别</p> +<p>广告算法的目标是为了直接增加公司收入。</p> +<p>推荐算法虽然本质上也是为了增加公司收入,但其直接目标是为了增加用户的参与度。</p> +<p>各公司广告算法的预估目标非常统一,就是预估CTR和CVR,因为CPC和CPA计价是目前效果类广告系统的主流计价方式。</p> +<p>推荐算法的预估目标就不尽相同,视频类更多倾向于预测观看时长,新闻类预测CTR,电商类预估客单价等等,都是针对业务场景来做优化</p> + + + + + 应届生工作指南 + 2023-12-24T00:00:00+00:00 + 2023-12-24T00:00:00+00:00 + + + + + Unknown + + + + + + https://blog.dich.ink/about-working/ + + <p>前言 +什么是“五险一金”?工资到底由那些部分组成?劳动合同怎么签?不仅仅是应届生,很多工作了几年的职场人,也不十分清楚。因此,在这里笔者打算帮助大家彻底把这些事情搞明白。</p> + + + + + 安卓刷机与root教程 + 2023-09-07T00:00:00+00:00 + 2023-09-07T00:00:00+00:00 + + + + + Unknown + + + + + + https://blog.dich.ink/android-root/ + + <p>前言 +自安卓系统诞生以来,root 一直是玩机的必备过程。时至今日,在安卓定制系统日益完善的情况下,能root 的机型越来越少,本文以小米手机为例,介绍root 的具体方法。</p> + + + + + 机械革命键盘失灵拯救记 + 2023-09-04T00:00:00+00:00 + 2023-09-04T00:00:00+00:00 + + + + + Unknown + + + + + + https://blog.dich.ink/mechrev-keyboard/ + + <p>前言 +机械革命作为一款极高性价比的笔记本,其优惠的力度和问题不断的故障让玩家们爱恨交织;作者在其上安装Linux时遇到了键盘失灵的问题,为了避免更多人踩坑,故写本文。</p> + + + + + 流量卡购买与套路 + 2023-08-24T00:00:00+00:00 + 2023-08-24T00:00:00+00:00 + + + + + Unknown + + + + + + https://blog.dich.ink/calling-cards/ + + <p>前言 +由于临近升学,校园网不尽人意,因此许多小伙伴有了买一张流量卡的计划。本文以三大运营商为例,说明常见流量卡的套路与选择。</p> + + + + + Win定制+linux双系统 + 2023-08-23T00:00:00+00:00 + 2023-08-23T00:00:00+00:00 + + + + + Unknown + + + + + + https://blog.dich.ink/win-linux/ + + <p>前言 +对于同时有着游戏和Linux环境需求的玩家来说,双系统似乎是其必经之路;而主流设备中两块的硬盘位也为双系统的安装提供了支持。本文以Revios+Garuda的安装为例介绍双系统的安装。</p> + + + + + ChromeBook研究记 + 2023-08-12T00:00:00+00:00 + 2023-08-12T00:00:00+00:00 + + + + + Unknown + + + + + + https://blog.dich.ink/chromebook/ + + <p>前言 +ChromeBook作为国外一款定位为商务办公和学生入门的机器,其性能在2023年的当下似乎已经过时;在其退出中国市场后更是接近绝迹。不过,针对特殊需求下的部分机型在今天仍然极具性价比。</p> + + + + + PVE安装与MC服务器搭建 + 2023-08-11T00:00:00+00:00 + 2023-08-11T00:00:00+00:00 + + + + + Unknown + + + + + + https://blog.dich.ink/pve-mcsm/ + + <p>前言 +假期将至,不少家里有闲置设备的小伙伴想尝试开设一个我的世界(Minecraft)服务器,却不知从何下手。本文以PVE-Debian-MCSM为主线介绍其部署流程。</p> + + + + + Android TV 折腾小记 + 2023-08-08T00:00:00+00:00 + 2023-08-08T00:00:00+00:00 + + + + + Unknown + + + + + + https://blog.dich.ink/android-tv/ + + <p>前言:由于AppleTV的高昂的售价和普通电视盒子广告的泛滥,一台开源、多功能的原生安卓电视盒子逐渐成为智能家居的必备神器。出于对IPTV、YouTube和家庭影院等需求,以及对一面赏心悦目电视墙的期待,这里分享Android TV (以下简称ATV)安装的一些要点。</p> + + + + + OpenWrt 软路由部署 + 2023-08-08T00:00:00+00:00 + 2023-08-08T00:00:00+00:00 + + + + + Unknown + + + + + + https://blog.dich.ink/openwrt/ + + <p>前言 +openwrt是一个自由的、兼容性好的嵌入式linux发行版。作为软路由玩家必备的一款神器,可以实现诸如去广告,多拨和科学上网等多种功能。本文以openwrt在X86平台的安装为例,介绍其部署流程。</p> + + + + + 黑群辉极速安装 + 2023-08-07T00:00:00+00:00 + 2023-08-07T00:00:00+00:00 + + + + + Unknown + + + + + + https://blog.dich.ink/dsm-nas/ + + <p>前言 +作为NAS家族中的重要一员,Synology的DSM以完善的服务和较高的售价闻名于世,因此,一般玩家倾向于工控机加黑群晖的方案组建自己的文件服务器。本文就黑群辉安装做了详细阐述。</p> + + + + + Arch从命令行安装 + 2023-08-05T00:00:00+00:00 + 2023-08-05T00:00:00+00:00 + + + + + Unknown + + + + + + https://blog.dich.ink/arch-install/ + + <p>前言 +Arch linux是一个轻量、灵活、滚动更新的 Linux 发行版,衍生了诸多优秀的桌面端linux。其官方Wiki更是被称为技术界的“武林秘籍”;</p> +<p>但由于该Wiki的中文版比较陈旧,安装教程不太清楚,故先以虚拟机安装Arch为例实际操作一番。</p> + + + + diff --git a/public/buttons.css b/public/buttons.css new file mode 100644 index 0000000..462f45e --- /dev/null +++ b/public/buttons.css @@ -0,0 +1 @@ +.button-container{display:table;margin-left:auto;margin-right:auto}button,.button,a.button{position:relative;display:flex;align-items:center;justify-content:center;padding:8px 18px;margin-bottom:5px;text-align:center;border-radius:8px;border:1px solid rgba(0,0,0,0);appearance:none;cursor:pointer;outline:none;}button.outline,.button.outline,a.button.outline{background:rgba(0,0,0,0);box-shadow:none;padding:8px 18px}button.outline :hover,.button.outline :hover,a.button.outline :hover{transform:none;box-shadow:none}button.primary,.button.primary,a.button.primary{box-shadow:0 4px 6px rgba(50,50,93,.11),0 1px 3px rgba(0,0,0,.08)}button.primary:hover,.button.primary:hover,a.button.primary:hover{box-shadow:0 2px 6px rgba(50,50,93,.21),0 1px 3px rgba(0,0,0,.08)}button.link,.button.link,a.button.link{background:none;font-size:1rem}button.small,.button.small,a.button.small{font-size:.8rem}button.wide,.button.wide,a.button.wide{min-width:200px;padding:14px 24px}a.read-more,a.read-more:hover,a.read-more:active{display:inline-flex;background:none;box-shadow:none;padding:0;margin:20px 0;max-width:100%}.code-toolbar{margin-bottom:20px}.code-toolbar .toolbar-item a{position:relative;display:inline-flex;align-items:center;justify-content:center;padding:3px 8px;margin-bottom:5px;text-align:center;font-size:13px;font-weight:500;border-radius:8px;border:1px solid rgba(0,0,0,0);appearance:none;cursor:pointer;outline:none} \ No newline at end of file diff --git a/public/calling-cards/index.html b/public/calling-cards/index.html new file mode 100644 index 0000000..08dcaff --- /dev/null +++ b/public/calling-cards/index.html @@ -0,0 +1,175 @@ + + + + + Dich'blog + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + + + + + + +
+ + +
+ +
+ +

流量卡购买与套路

+ + + + + + +
+

前言 +由于临近升学,校园网不尽人意,因此许多小伙伴有了买一张流量卡的计划。本文以三大运营商为例,说明常见流量卡的套路与选择。

+ +

一.什么是流量卡 +流量卡本质上还是一张SIM卡,因为具有大流量、低月租而闻名。

+

二.为什么需要流量卡 +普通卡大多有着长合约和固定归属地,不能轻易更换套餐,且套餐月租费用较高,特别是在5G推行时期,4G的资费不减反升,且速度有所下降。而流量卡动则100G往上,月租在50以下,且可以随时退卡。

+

三.流量卡基本原理 +由于三大运营商处于半国企状态(自负盈亏),因此在长期亏损下不得不整一些牛马活采用一些策略,比如冗长的条款和隐藏极深的优惠套餐等等。而由于不同地区的经济发展状况不同,部分中西部地区的地区分公司业绩不佳,为了在短期内达到要求往往会和一些地区分销商进行合作,将本地区的电话卡改为优惠的套餐,从而吸引客户。注意:99%所谓的月租19、29等流量卡都是要先缴一笔较多的钱,进而每月返还一点点,实现长期上的低月租,运营商是要短期变现的!

+

那么,是不是我们就没有优惠了呢?其实相对于5元1G、40元10G的资费而言还是非常划算的。

+

四.分清流量卡和物联卡 +部分小伙伴反映被物联卡坑了!这里我们一定要注意,诸如某宝某猫上面的9999G超级流量卡,usb接口的随身WiFi等等不出意外都是物联卡,即为工业设备所使用的卡,一般速度极慢,跑几百KB到1MB;这些卡不能被个人所使用,很可能一段时间后就被封号!且分销商不是正规的三大运营商,随时可能跑路。

+

五.购买流量卡需要注意的事项 +1.关于靓号

+

大部分流量卡是不能选号的,因为这类具有优惠套餐的卡大多来自不同地区的前任买家,因此靓号数有限,总不能既有好的号码又有优惠套餐;而这就带来第二个问题:

+

2.关于号码绑定

+

作为信息时代的重要识别符,电话卡和身份证几乎同样重要,在前任主人信息意识不强的情况下,其大部分社交媒体、生活服务和各种网站的帐号都会遗留下来,这就需要我们去一一解绑;作者曾经买了一张宁夏的流量卡,结果通过验证和社工成功进入了前主人的微信和淘宝帐号,当然现在已经注销了;部分平台不支持注销的,只能继续使用前号;甚至有概率被前号主的债务人打电话催债;因此我们一定要小心谨慎;

+

3.关于归属地

+

由于1中的原因,流量卡的归属地大部分是随机的,比如青海,宁夏等等;这样一来当别人打电话时会看到地址为中国宁夏之类,可能会误以为是诈骗电话;当然这样也有不被看到地址的好处,所谓各有优点。

+

4.关于信号

+

真正影响体验的不只是手机基带,还有你所在地区中三大运营商的基站分布;因此,购买之前可以先查看一下你所在地区哪个运营商信号最好,从而对症下药。

+

5.关于副卡

+

有些小伙伴在买完流量卡后打算作为主力卡使用,那这样原先的卡套餐就没必要了,可以办理8元保号套餐,让号码可以继续使用。

+

6.关于注销

+

每个运营商最多办5张电话卡,因此注销需谨慎;流量卡大部分可以线上异地注销,但也要仔细看清楚条款。

+

六.实际操作 +1.由于线下营业厅不够优惠,因此我们往往要在网络渠道上寻找各个分发渠道,比如知乎回答,淘宝店铺,微信小程序之类。这里以知乎活动为例:

+

可以看到确实非常划算,但是有几个细节:

+

一是激活卡需要预充值,数额较多:二是额外的流量以流量包形式给出,此流量包不同活动获得方式也不同;三是155G中包括定向流量,不能和其他APP混用;四是超额后资费特贵,要小心。

+

注意要实名购卡,且收获地址要足够详细,会有专门的快递小哥和你线下激活,预充值,注意接受电话!

+

2.隐藏的条款:办完卡后进入营业厅的APP,可能不会马上出现,这是因为系统的延迟以及运营商的计时方式,需要在月初才能有全部的流量,后几天按百分比计算,第二个月就正常了。

+

后记 +仔细观察条款,不要冲动消费。

+ +
+ + + + +
+ +
+ + + + + +
+ + + diff --git a/public/chatogpt/index.html b/public/chatogpt/index.html new file mode 100644 index 0000000..6bf0ccf --- /dev/null +++ b/public/chatogpt/index.html @@ -0,0 +1,605 @@ + + + + + Dich'blog + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + + + + + + +
+ + +
+ +
+ +

如何高效地向 ChatGPT 提问

+ + + + + + +
+

第一章:Prompt 工程技术简介 +什么是 Prompt 工程?

+

Prompt 工程是创建提示或指导像 ChatGPT 这样的语言模型输出的过程。它允许用户控制模型的输出并生成符合其特定需求的文本。

+

ChatGPT 是一种先进的语言模型,能够生成类似于人类的文本。它建立在 Transformer 架构上,可以处理大量数据并生成高质量的文本。

+

然而,为了从 ChatGPT 中获得最佳结果,重要的是要了解如何正确地提示模型。 提示可以让用户控制模型的输出并生成相关、准确和高质量的文本。 在使用 ChatGPT 时,了解它的能力和限制非常重要。

+ +

该模型能够生成类似于人类的文本,但如果没有适当的指导,它可能无法始终产生期望的输出。

+

这就是 Prompt 工程的作用,通过提供清晰而具体的指令,您可以引导模型的输出并确保其相关。

+

Prompt 公式是提示的特定格式,通常由三个主要元素组成:

+

任务:对提示要求模型生成的内容进行清晰而简洁的陈述。

+

指令:在生成文本时模型应遵循的指令。

+

角色:模型在生成文本时应扮演的角色。

+

在本书中,我们将探讨可用于 ChatGPT 的各种 Prompt 工程技术。我们将讨论不同类型的提示,以及如何使用它们实现您想要的特定目标。

+

第二章:指令提示技术 +现在,让我们开始探索“指令提示技术”,以及如何使用它从ChatGPT中生成高质量的文本。

+

指令提示技术是通过为模型提供具体指令来引导ChatGPT的输出的一种方法。这种技术对于确保输出相关和高质量非常有用。

+

要使用指令提示技术,您需要为模型提供清晰简洁的任务,以及具体的指令以供模型遵循。

+

例如,如果您正在生成客户服务响应,您将提供任务,例如“生成响应客户查询”的指令,例如“响应应该专业且提供准确的信息”。

+

提示公式:“按照以下指示生成[任务]:[指令]”

+

示例:

+

生成客户服务响应:

+

任务:生成响应客户查询

+

指令:响应应该专业且提供准确的信息

+

提示公式:“按照以下指示生成专业且准确的客户查询响应:响应应该专业且提供准确的信息。”

+

生成法律文件:

+

任务:生成法律文件

+

指令:文件应符合相关法律法规

+

提示公式:“按照以下指示生成符合相关法律法规的法律文件:文件应符合相关法律法规。”

+

使用指令提示技术时,重要的是要记住指令应该清晰具体。这将有助于确保输出相关和高质量。可以将指令提示技术与下一章节中解释的“角色提示”和“种子词提示”相结合,以增强ChatGPT的输出。

+

第三章:角色提示 +角色提示技术是通过为ChatGPT指定一个特定的角色来引导其输出的一种方式。这种技术对于生成针对特定上下文或受众的文本非常有用。

+

要使用角色提示技术,您需要为模型提供一个清晰具体的角色。

+

例如,如果您正在生成客户服务回复,您可以提供一个角色,如“客户服务代表”。

+

提示公式:“作为[角色]生成[任务]”

+

示例:

+

生成客户服务回复:

+

任务:生成对客户查询的回复

+

角色:客户服务代表

+

提示公式:“作为客户服务代表,生成对客户查询的回复。”

+

生成法律文件:

+

任务:生成法律文件

+

角色:律师

+

提示公式:“作为律师,生成法律文件。”

+

将角色提示技术与指令提示和种子词提示结合使用可以增强ChatGPT的输出。

+

下面是一个示例,展示了如何将指令提示、角色提示和种子词提示技术结合使用:

+

任务:为新智能手机生成产品描述

+

指令:描述应该是有信息量的,具有说服力,并突出智能手机的独特功能

+

角色:市场代表 种子词:“创新的”

+

提示公式:“作为市场代表,生成一个有信息量的、有说服力的产品描述,突出新智能手机的创新功能。该智能手机具有以下功能[插入您的功能]”

+

在这个示例中,指令提示用于确保产品描述具有信息量和说服力。角色提示用于确保描述是从市场代表的角度书写的。而种子词提示则用于确保描述侧重于智能手机的创新功能。

+

第四章:标准提示 +标准提示是一种简单的方法,通过为模型提供一个特定的任务来引导ChatGPT的输出。例如,如果您想生成一篇新闻文章的摘要,您可以提供一个任务,如“总结这篇新闻文章”。

+

提示公式:“生成一个[任务]”

+

例如:

+

生成新闻文章的摘要:

+

任务:总结这篇新闻文章

+

提示公式:“生成这篇新闻文章的摘要”

+

生成一篇产品评论:

+

任务:为一款新智能手机撰写评论

+

提示公式:“生成这款新智能手机的评论”

+

此外,标准提示可以与其他技术(如角色提示和种子词提示)结合使用,以增强ChatGPT的输出。

+

以下是如何将标准提示、角色提示和种子词提示技术结合使用的示例:

+

任务:为一台新笔记本电脑撰写产品评论

+

说明:评论应客观、信息丰富,强调笔记本电脑的独特特点

+

角色:技术专家

+

种子词:“强大的”

+

提示公式:“作为一名技术专家,生成一个客观而且信息丰富的产品评论,强调新笔记本电脑的强大特点。”

+

在这个示例中,标准提示技术用于确保模型生成产品评论。角色提示用于确保评论是从技术专家的角度写的。而种子词提示用于确保评论侧重于笔记本电脑的强大特点。

+

第五章:零、一和少样本提示 +零样本、一样本和少样本提示是用于从ChatGPT生成文本的技术,最少或没有任何示例。当特定任务的数据有限或任务是新的且未定义时,这些技术非常有用。

+

当任务没有可用的示例时,使用零样本提示技术。模型提供一个通用任务,根据对任务的理解生成文本。

+

当任务只有一个示例可用时,使用一样本提示技术。模型提供示例,并根据对示例的理解生成文本。

+

当任务只有有限数量的示例可用时,使用少样本提示技术。模型提供示例,并根据对示例的理解生成文本。

+

提示公式:“基于[数量]个示例生成文本”

+

例如:

+

为没有可用示例的新产品编写产品描述:

+

任务:为新的智能手表编写产品描述

+

提示公式:“基于零个示例为这款新智能手表生成产品描述”

+

使用一个示例生成产品比较:

+

任务:将新款智能手机与最新的iPhone进行比较

+

提示公式:“使用一个示例(最新的iPhone)为这款新智能手机生成产品比较”

+

使用少量示例生成产品评论:

+

任务:为新的电子阅读器撰写评论

+

提示公式:“使用少量示例(3个其他电子阅读器)为这款新电子阅读器生成评论”

+

这些技术可用于根据模型对任务或提供的示例的理解生成文本。

+

第六章:“让我们思考一下”提示 +“让我们思考一下”提示是一种技巧,可鼓励ChatGPT生成反思和思考性的文本。这种技术适用于撰写论文、诗歌或创意写作等任务。

+

“让我们思考一下”提示的公式非常简单,即“让我们思考一下”后跟一个主题或问题。

+

例如:

+

生成一篇反思性论文:

+

任务:就个人成长主题写一篇反思性论文

+

提示公式:“让我们思考一下:个人成长”

+

生成一首诗:

+

任务:写一首关于季节变化的诗

+

提示公式:“让我们思考一下:季节变化”

+

这个提示要求对特定主题或想法展开对话或讨论。发言者邀请ChatGPT参与讨论相关主题。

+

模型提供了一个提示,作为对话或文本生成的起点。

+

然后,模型使用其训练数据和算法生成与提示相关的响应。这种技术允许ChatGPT根据提供的提示生成上下文适当且连贯的文本。

+

要使用“让我们思考一下提示”技术与ChatGPT,您可以遵循以下步骤:

+
    +
  1. +

    确定您要讨论的主题或想法。

    +
  2. +
  3. +

    制定一个明确表达主题或想法的提示,并开始对话或文本生成。

    +
  4. +
  5. +

    用“让我们思考”或“让我们讨论”开头的提示,表明您正在启动对话或讨论。

    +
  6. +
+

以下是使用此技术的一些提示示例:

+

提示:“让我们思考气候变化对农业的影响”

+

提示:“让我们讨论人工智能的当前状态”

+

提示:“让我们谈谈远程工作的好处和缺点” 您还可以添加开放式问题、陈述或一段您希望模型继续或扩展的文本。

+

提供提示后,模型将使用其训练数据和算法生成与提示相关的响应,并以连贯的方式继续对话。

+

这种独特的提示有助于ChatGPT以不同的视角和角度给出答案,从而产生更具动态性和信息性的段落。

+

使用提示的步骤简单易行,可以真正提高您的写作水平。尝试一下,看看效果如何吧。

+

第七章:自洽提示 +自洽提示是一种技术,用于确保ChatGPT的输出与提供的输入一致。这种技术对于事实核查、数据验证或文本生成中的一致性检查等任务非常有用。

+

自洽提示的提示公式是输入文本后跟着指令“请确保以下文本是自洽的”。

+

或者,可以提示模型生成与提供的输入一致的文本。

+

提示示例及其公式:

+

示例1:文本生成

+

任务:生成产品评论

+

指令:评论应与输入中提供的产品信息一致

+

提示公式:“生成与以下产品信息一致的产品评论[插入产品信息]”

+

示例2:文本摘要

+

任务:概括一篇新闻文章

+

指令:摘要应与文章中提供的信息一致

+

提示公式:“用与提供的信息一致的方式概括以下新闻文章[插入新闻文章]”

+

示例3:文本完成

+

任务:完成一个句子

+

指令:完成应与输入中提供的上下文一致

+

提示公式:“以与提供的上下文一致的方式完成以下句子[插入句子]”

+

示例4:

+
    +
  1. 事实核查:
  2. +
+

任务:检查给定新闻文章的一致性

+

输入文本:“文章中陈述该城市的人口为500万,但后来又说该城市的人口为700万。”

+

提示公式:“请确保以下文本是自洽的:文章中陈述该城市的人口为500万,但后来又说该城市的人口为700万。”

+
    +
  1. 数据验证:
  2. +
+

任务:检查给定数据集的一致性

+

输入文本:“数据显示7月份的平均温度为30度,但最低温度记录为20度。”

+

提示公式:“请确保以下文本是自洽的:数据显示7月份的平均温度为30度,但最低温度记录为20度。”

+

第八章:种子词提示 +种子词提示是一种通过提供特定的种子词或短语来控制ChatGPT输出的技术。种子词提示的提示公式是种子词或短语,后跟指令“请根据以下种子词生成文本”。

+

示例:

+

文本生成:

+

任务:编写一篇有关龙的故事

+

种子词:“龙”

+

提示公式:“请根据以下种子词生成文本:龙”

+

语言翻译:

+

任务:将一句话从英语翻译成西班牙语

+

种子词:“你好”

+

提示公式:“请根据以下种子词生成文本:你好”

+

这种技术允许模型生成与种子词相关的文本并对其进行扩展。这是一种控制模型生成文本与某个特定主题或背景相关的方式。

+

种子词提示可以与角色提示和指令提示相结合,以创建更具体和有针对性的生成文本。通过提供种子词或短语,模型可以生成与该种子词或短语相关的文本,并通过提供有关期望输出和角色的信息,模型可以以特定于角色或指令的风格或语气生成文本。这样可以更好地控制生成的文本,并可用于各种应用程序。

+

以下是提示示例及其公式:

+

示例1:文本生成

+

任务:编写一首诗

+

指令:诗应与种子词“爱”相关,并以十四行诗的形式书写。

+

角色:诗人

+

提示公式:“作为诗人,根据以下种子词生成与“爱”相关的十四行诗:”

+

示例2:文本完成

+

任务:完成一句话

+

指令:完成应与种子词“科学”相关,并以研究论文的形式书写。

+

角色:研究员

+
    +
  • 提示公式:“作为研究员,请在与种子词“科学”相关且以研究论文的形式书写的情况下完成以下句子:[插入句子]”
  • +
+

示例3:文本摘要

+

任务:摘要一篇新闻文章

+

指令:摘要应与种子词“政治”相关,并以中立和公正的语气书写。

+

角色:记者

+
    +
  • 提示公式:“作为记者,请以中立和公正的语气摘要以下新闻文章,与种子词“政治”相关:[插入新闻文章]”
  • +
+

第九章:知识生成提示 +知识生成提示是一种从ChatGPT中引出新的、原创的信息的技术。

+

知识生成提示的公式是“请生成关于X的新的和原创的信息”,其中X是感兴趣的主题。

+

这是一种利用模型预先存在的知识来生成新的信息或回答问题的技术。

+

要将此提示与ChatGPT一起使用,需要将问题或主题作为输入提供给模型,以及指定所生成文本的任务或目标的提示。

+

提示应包括有关所需输出的信息,例如要生成的文本类型以及任何特定的要求或限制。

+

以下是提示示例及其公式:

+

示例1:知识生成

+

任务:生成有关特定主题的新信息

+

说明:生成的信息应准确且与主题相关

+

提示公式:“生成有关[特定主题]的新的准确信息”

+

示例2:问答

+

任务:回答问题

+

说明:答案应准确且与问题相关

+

提示公式:“回答以下问题:[插入问题]”

+

示例3:知识整合

+

任务:将新信息与现有知识整合

+

说明:整合应准确且与主题相关

+

提示公式:“将以下信息与有关[特定主题]的现有知识整合:[插入新信息]”

+

示例4:数据分析

+

任务:从给定的数据集中生成有关客户行为的见解

+

提示公式:“请从这个数据集中生成有关客户行为的新的和原创的信息”

+

第十章:知识整合提示 +这种技术利用模型的现有知识来整合新信息或连接不同的信息片段。

+

这种技术对于将现有知识与新信息相结合,以生成更全面的特定主题的理解非常有用。

+

如何与ChatGPT一起使用:

+
    +
  • +

    模型应该提供新信息和现有知识作为输入,以及指定生成文本的任务或目标的提示。

    +
  • +
  • +

    提示应包括有关所需输出的信息,例如要生成的文本类型以及任何特定的要求或限制。

    +
  • +
+

提示示例及其公式:

+

示例1:知识整合

+

任务:将新信息与现有知识整合

+

说明:整合应准确且与主题相关

+

提示公式:“将以下信息与关于[具体主题]的现有知识整合:[插入新信息]”

+

示例2:连接信息片段

+

任务:连接不同的信息片段

+

说明:连接应相关且逻辑清晰

+

提示公式:“以相关且逻辑清晰的方式连接以下信息片段:[插入信息1] [插入信息2]”

+

示例3:更新现有知识

+

任务:使用新信息更新现有知识

+

说明:更新的信息应准确且相关

+

提示公式:“使用以下信息更新[具体主题]的现有知识:[插入新信息]”

+

第十一章:多项选择提示 +这种技术向模型提供一个问题或任务以及一组预定义的选项作为潜在答案。

+

该技术对于生成仅限于特定选项集的文本非常有用,可用于问答、文本完成和其他任务。模型可以生成仅限于预定义选项的文本。

+

要使用ChatGPT的多项选择提示,需要向模型提供一个问题或任务作为输入,以及一组预定义的选项作为潜在答案。提示还应包括有关所需输出的信息,例如要生成的文本类型以及任何特定要求或限制。

+

提示示例及其公式:

+

示例1:问答

+

任务:回答一个多项选择题

+

说明:答案应该是预定义的选项之一

+

提示公式:“通过选择以下选项之一回答以下问题:[插入问题] [插入选项1] [插入选项2] [插入选项3]”

+

示例2:文本完成

+

任务:使用预定义选项之一完成句子

+

说明:完成应该是预定义的选项之一

+

提示公式:“通过选择以下选项之一完成以下句子:[插入句子] [插入选项1] [插入选项2] [插入选项3]”

+

示例3:情感分析

+

任务:将文本分类为积极、中立或消极

+

说明:分类应该是预定义的选项之一

+

提示公式:“通过选择以下选项之一,将以下文本分类为积极、中立或消极:[插入文本] [积极] [中立] [消极]”

+

第十二章:可解释的软提示 +可解释的软提示是一种技术,可以在提供一定的灵活性的同时控制模型生成的文本。它通过提供一组受控输入和关于所需输出的附加信息来实现。这种技术可以生成更具解释性和可控性的生成文本。

+

提示示例及其公式:

+

示例1:文本生成

+

任务:生成一个故事

+

指令:故事应基于一组给定的角色和特定的主题

+

提示公式:“基于以下角色生成故事:[插入角色]和主题:[插入主题]”

+

示例2:文本完成

+

任务:完成一句话

+

指令:完成应以特定作者的风格为基础

+

提示公式:“以[特定作者]的风格完成以下句子:[插入句子]”

+

示例3:语言建模

+

任务:以特定风格生成文本

+

指令:文本应以特定时期的风格为基础

+

提示公式:“以[特定时期]的风格生成文本:[插入上下文]”

+

第十三章:控制生成提示 +控制生成提示是一种技术,可让模型在生成文本时对输出进行高度控制。

+

这可以通过提供一组特定的输入来实现,例如模板、特定词汇或一组约束条件,这些输入可用于指导生成过程。

+

以下是一些示例和它们的公式:

+

示例1:文本生成

+

任务:生成一个故事

+

说明:该故事应基于特定的模板

+

提示公式:“根据以下模板生成故事:[插入模板]”

+

示例2:文本补全

+

任务:完成一句话

+

说明:完成应使用特定的词汇

+

提示公式:“使用以下词汇完成以下句子:[插入词汇]:[插入句子]”

+

示例3:语言建模

+

任务:以特定风格生成文本

+

说明:文本应遵循一组特定的语法规则

+

提示公式:“生成遵循以下语法规则的文本:[插入规则]:[插入上下文]”

+

通过提供一组特定的输入来指导生成过程,控制生成提示使得生成的文本更具可控性和可预测性。

+

第十四章:问答提示 +问答提示是一种技术,可以让模型生成回答特定问题或任务的文本。通过将问题或任务与可能与问题或任务相关的任何其他信息一起作为输入提供给模型来实现此目的。

+

一些提示示例及其公式如下:

+

示例1:事实问题回答

+

任务:回答一个事实性问题

+

说明:答案应准确且相关

+

提示公式:“回答以下事实问题:[插入问题]”

+

示例2:定义

+

任务:提供一个词的定义

+

说明:定义应准确

+

提示公式:“定义以下词汇:[插入单词]”

+

示例3:信息检索

+

任务:从特定来源检索信息

+

说明:检索到的信息应相关

+

提示公式:“从以下来源检索有关[特定主题]的信息:[插入来源]” 这对于问答和信息检索等任务非常有用。

+

第十五章:概述提示 +概述提示是一种技术,允许模型在保留其主要思想和信息的同时生成给定文本的较短版本。

+

这可以通过将较长的文本作为输入提供给模型并要求其生成该文本的摘要来实现。

+

这种技术对于文本概述和信息压缩等任务非常有用。

+

如何在ChatGPT中使用:

+

应该向模型提供较长的文本作为输入,并要求其生成该文本的摘要。

+

提示还应包括有关所需输出的信息,例如摘要的所需长度和任何特定要求或限制。

+

提示示例及其公式:

+

示例1:文章概述

+

任务:概述新闻文章

+

说明:摘要应是文章主要观点的简要概述

+

提示公式:“用一句简短的话概括以下新闻文章:[插入文章]”

+

示例2:会议记录

+

任务:概括会议记录

+

说明:摘要应突出会议的主要决策和行动

+

提示公式:“通过列出主要决策和行动来总结以下会议记录:[插入记录]”

+

示例3:书籍摘要

+

任务:总结一本书

+

说明:摘要应是书的主要观点的简要概述

+

提示公式:“用一段简短的段落总结以下书籍:[插入书名]”

+

第十六章:对话提示 +对话提示是一种技术,允许模型生成模拟两个或更多实体之间对话的文本。通过为模型提供一个上下文和一组角色或实体,以及它们的角色和背景,并要求模型在它们之间生成对话。

+

因此,应为模型提供上下文和一组角色或实体,以及它们的角色和背景。还应向模型提供有关所需输出的信息,例如对话或交谈的类型以及任何特定的要求或限制。

+

提示示例及其公式:

+

示例1:对话生成

+

任务:生成两个角色之间的对话

+

说明:对话应自然且与给定上下文相关

+

提示公式:“在以下情境中生成以下角色之间的对话[插入角色]”

+

示例2:故事写作

+

任务:在故事中生成对话

+

说明:对话应与故事的角色和事件一致

+

提示公式:“在以下故事中生成以下角色之间的对话[插入故事]”

+

示例3:聊天机器人开发

+

任务:为客服聊天机器人生成对话

+

说明:对话应专业且提供准确的信息

+

提示公式:“在客户询问[插入主题]时,为客服聊天机器人生成专业和准确的对话”

+

因此,这种技术对于对话生成、故事写作和聊天机器人开发等任务非常有用。

+

第十七章:对抗性提示 +对抗性提示是一种技术,它允许模型生成抵抗某些类型的攻击或偏见的文本。这种技术可用于训练更为稳健和抵抗某些类型攻击或偏见的模型。

+

要在ChatGPT中使用对抗性提示,需要为模型提供一个提示,该提示旨在使模型难以生成符合期望输出的文本。提示还应包括有关所需输出的信息,例如要生成的文本类型和任何特定要求或约束。

+

提示示例及其公式:

+

示例1:用于文本分类的对抗性提示

+

任务:生成被分类为特定标签的文本

+

说明:生成的文本应难以分类为特定标签

+

提示公式:“生成难以分类为[插入标签]的文本”

+

示例2:用于情感分析的对抗性提示

+

任务:生成难以分类为特定情感的文本

+

说明:生成的文本应难以分类为特定情感

+

提示公式:“生成难以分类为具有[插入情感]情感的文本”

+

示例3:用于语言翻译的对抗性提示

+

任务:生成难以翻译的文本

+

说明:生成的文本应难以翻译为目标语言

+

提示公式:“生成难以翻译为[插入目标语言]的文本”

+

第十八章:聚类提示 +聚类提示是一种技术,它可以让模型根据某些特征或特点将相似的数据点分组在一起。

+

通过提供一组数据点并要求模型根据某些特征或特点将它们分组成簇,可以实现这一目标。

+

这种技术在数据分析、机器学习和自然语言处理等任务中非常有用。

+

如何在ChatGPT中使用:

+

应该向模型提供一组数据点,并要求它根据某些特征或特点将它们分组成簇。提示还应包括有关所需输出的信息,例如要生成的簇数和任何特定的要求或约束。

+

提示示例及其公式:

+

示例1:客户评论的聚类

+

任务:将相似的客户评论分组在一起

+

说明:应根据情感将评论分组

+

提示公式:“将以下客户评论根据情感分组成簇:[插入评论]”

+

示例2:新闻文章的聚类

+

任务:将相似的新闻文章分组在一起

+

说明:应根据主题将文章分组

+

提示公式:“将以下新闻文章根据主题分组成簇:[插入文章]”

+

示例3:科学论文的聚类

+

任务:将相似的科学论文分组在一起

+

说明:应根据研究领域将论文分组

+

提示公式:“将以下科学论文根据研究领域分组成簇:[插入论文]”

+

第十九章:强化学习提示 +强化学习提示是一种技术,可以使模型从过去的行动中学习,并随着时间的推移提高其性能。要在ChatGPT中使用强化学习提示,需要为模型提供一组输入和奖励,并允许其根据接收到的奖励调整其行为。提示还应包括有关期望输出的信息,例如要完成的任务以及任何特定要求或限制。这种技术对于决策制定、游戏玩法和自然语言生成等任务非常有用。

+

提示示例及其公式:

+

示例1:用于文本生成的强化学习

+

任务:生成与特定风格一致的文本

+

说明:模型应根据为生成与特定风格一致的文本而接收到的奖励来调整其行为

+

提示公式:“使用强化学习来生成与以下风格一致的文本[插入风格]”

+

示例2:用于语言翻译的强化学习

+

任务:将文本从一种语言翻译成另一种语言

+

说明:模型应根据为生成准确翻译而接收到的奖励来调整其行为

+

提示公式:“使用强化学习将以下文本[插入文本]从[插入语言]翻译成[插入语言]”

+

示例3:用于问答的强化学习

+

任务:回答问题

+

说明:模型应根据为生成准确答案而接收到的奖励来调整其行为

+

提示公式:“使用强化学习来回答以下问题[插入问题]”

+

第二十章:课程学习提示 +课程学习是一种技术,允许模型通过先训练简单任务,逐渐增加难度来学习复杂任务。

+

要在ChatGPT中使用课程学习提示,模型应该提供一系列任务,这些任务逐渐增加难度。

+

提示还应包括有关期望输出的信息,例如要完成的最终任务以及任何特定要求或约束条件。

+

此技术对自然语言处理、图像识别和机器学习等任务非常有用。

+

提示示例及其公式:

+

示例1:用于文本生成的课程学习

+

任务:生成与特定风格一致的文本

+

说明:模型应该在移动到更复杂的风格之前先在简单的风格上进行训练。

+

提示公式:“使用课程学习来生成与以下风格[插入风格]一致的文本,按照以下顺序[插入顺序]。”

+

示例2:用于语言翻译的课程学习

+

任务:将文本从一种语言翻译成另一种语言

+

说明:模型应该在移动到更复杂的语言之前先在简单的语言上进行训练。

+

提示公式:“使用课程学习将以下语言[插入语言]的文本翻译成以下顺序[插入顺序]。”

+

示例3:用于问题回答的课程学习

+

任务:回答问题

+

说明:模型应该在移动到更复杂的问题之前先在简单的问题上进行训练。

+

提示公式:“使用课程学习来回答以下问题[插入问题],按照以下顺序[插入顺序]生成答案。”

+

第二十一章:情感分析提示 +情感分析是一种技术,允许模型确定文本的情绪色彩或态度,例如它是积极的、消极的还是中立的。

+

要在ChatGPT中使用情感分析提示,模型应该提供一段文本并要求根据其情感分类。

+

提示还应包括关于所需输出的信息,例如要检测的情感类型(例如积极的、消极的、中立的)和任何特定要求或约束条件。

+

提示示例及其公式:

+

示例1:客户评论的情感分析

+

任务:确定客户评论的情感

+

说明:模型应该将评论分类为积极的、消极的或中立的

+

提示公式:“对以下客户评论进行情感分析[插入评论],并将它们分类为积极的、消极的或中立的。”

+

示例2:推文的情感分析

+

任务:确定推文的情感

+

说明:模型应该将推文分类为积极的、消极的或中立的

+

提示公式:“对以下推文进行情感分析[插入推文],并将它们分类为积极的、消极的或中立的。”

+

示例3:产品评论的情感分析

+

任务:确定产品评论的情感

+

说明:模型应该将评论分类为积极的、消极的或中立的

+

提示公式:“对以下产品评论进行情感分析[插入评论],并将它们分类为积极的、消极的或中立的。”

+

这种技术对自然语言处理、客户服务和市场研究等任务非常有用。

+

第二十二章:命名实体识别提示 +命名实体识别(NER)是一种技术,它可以使模型识别和分类文本中的命名实体,例如人名、组织机构、地点和日期等。

+

要在ChatGPT中使用命名实体识别提示,需要向模型提供一段文本,并要求它识别和分类文本中的命名实体。

+

提示还应包括有关所需输出的信息,例如要识别的命名实体类型(例如人名、组织机构、地点、日期)以及任何特定要求或约束条件。

+

提示示例及其公式:

+

示例1:新闻文章中的命名实体识别

+

任务:在新闻文章中识别和分类命名实体

+

说明:模型应识别和分类人名、组织机构、地点和日期

+

提示公式:“在以下新闻文章[插入文章]上执行命名实体识别,并识别和分类人名、组织机构、地点和日期。”

+

示例2:法律文件中的命名实体识别

+

任务:在法律文件中识别和分类命名实体

+

说明:模型应识别和分类人名、组织机构、地点和日期

+

提示公式:“在以下法律文件[插入文件]上执行命名实体识别,并识别和分类人名、组织机构、地点和日期。”

+

示例3:研究论文中的命名实体识别

+

任务:在研究论文中识别和分类命名实体

+

说明:模型应识别和分类人名、组织机构、地点和日期

+

提示公式:“在以下研究论文[插入论文]上执行命名实体识别,并识别和分类人名、组织机构、地点和日期。”

+

第二十三章:文本分类提示 +文本分类是一种技术,它可以让模型将文本分成不同的类别。这种技术对于自然语言处理、文本分析和情感分析等任务非常有用。

+

需要注意的是,文本分类和情感分析是不同的。情感分析特别关注于确定文本中表达的情感或情绪。这可能包括确定文本表达了积极、消极还是中性的情感。情感分析通常用于客户评论、社交媒体帖子和其他需要表达情感的文本。

+

要在ChatGPT中使用文本分类提示,模型需要提供一段文本,并要求它根据预定义的类别或标签进行分类。提示还应包括有关所需输出的信息,例如类别或标签的数量以及任何特定的要求或约束。

+

提示示例及其公式:

+

示例1:对客户评论进行文本分类

+

任务:将客户评论分类为不同的类别,例如电子产品、服装和家具

+

说明:模型应根据评论的内容对其进行分类

+

提示公式:“对以下客户评论 [插入评论] 进行文本分类,并根据其内容将其分类为不同的类别,例如电子产品、服装和家具。”

+

示例2:对新闻文章进行文本分类

+

任务:将新闻文章分类为不同的类别,例如体育、政治和娱乐

+

说明:模型应根据文章的内容对其进行分类

+

提示公式:“对以下新闻文章 [插入文章] 进行文本分类,并根据其内容将其分类为不同的类别,例如体育、政治和娱乐。”

+

示例3:对电子邮件进行文本分类

+

任务:将电子邮件分类为不同的类别,例如垃圾邮件、重要邮件或紧急邮件

+

说明:模型应根据电子邮件的内容和发件人对其进行分类

+

提示公式:“对以下电子邮件 [插入电子邮件] 进行文本分类,并根据其内容和发件人将其分类为不同的类别,例如垃圾邮件、重要邮件或紧急邮件。”

+

第二十四章:文本生成提示 +文本生成提示与本书中提到的其他提示技术相关,例如:零、一、几次提示,受控生成提示,翻译提示,语言建模提示,句子补全提示等。这些提示都与生成文本有关,但它们在生成文本的方式和放置在生成文本上的特定要求或限制方面有所不同。文本生成提示可用于微调预训练模型或训练新模型以执行特定任务。

+

提示示例及其公式:

+

示例1:故事创作的文本生成

+

任务:根据给定的提示生成故事

+

说明:故事应至少包含1000个单词,并包括一组特定的角色和情节。

+

提示公式:“根据以下提示[插入提示]生成一个至少包含1000个单词,包括角色[插入角色]和情节[插入情节]的故事。”

+

示例2:语言翻译的文本生成

+

任务:将给定的文本翻译成另一种语言

+

说明:翻译应准确并符合习惯用语。

+

提示公式:“将以下文本[插入文本]翻译成[插入目标语言],并确保其准确且符合习惯用语。”

+

示例3:文本完成的文本生成

+

任务:完成给定的文本

+

说明:生成的文本应与输入文本连贯一致。

+

提示公式:“完成以下文本[插入文本],并确保其连贯一致且符合输入文本。”

+ +
+ + + + +
+ +
+ + + + + +
+ + + diff --git a/public/chromebook/index.html b/public/chromebook/index.html new file mode 100644 index 0000000..6f0e78b --- /dev/null +++ b/public/chromebook/index.html @@ -0,0 +1,186 @@ + + + + + Dich'blog + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + + + + + + +
+ + +
+ +
+ +

ChromeBook研究记

+ + + + + + +
+

前言 +ChromeBook作为国外一款定位为商务办公和学生入门的机器,其性能在2023年的当下似乎已经过时;在其退出中国市场后更是接近绝迹。不过,针对特殊需求下的部分机型在今天仍然极具性价比。

+ +

作为一个垃圾佬,作者常常去发掘二手平台的诸多“洋垃圾”;而就在某一天,一台名为ASUS ChromeBook C302的机器吸引了我的注意力,且看其配置:

+

此前作者一直认为ChromeBook只存在于Google的 Pixelbook机型之上,就如同Mircosoft的Surface Pro 一样;实际上,主流 OEM 厂商——美帝良心想、社会主义戴、惠普宏碁华硕三星等等—-都推出过Chromebook。

+

但本次所说的这台ASUS的机器属实让我眼前一亮:质感上佳的银白色全金属外壳,360度可翻转的触摸屏,以及最大10小时的续航和仅仅1.15千克的重量,这简直是轻薄本和平板的完美结合!美中不足的是其接口较少,两个type-C、一个3.5mm耳机口和SD卡接口显得有些单薄;而在性能上,Intel m3-6y30和8+32G的组合只能说差强人意。

+

不过,作为触摸屏和翻转本的结合,用来当阅读器、上网本和视频播放器以及盖泡面上实用性极强,在亚马逊的kindle退出中国市场后阅读器市场群魔乱舞,高昂的售价和低配的机型遍地横行;而一般的平板生态和手机重复,价格不菲;如果没有游戏需求,ChromeBook是不错的选择。

+

到祸啦家人们!我们看看其实际效果究竟如何?首先映入眼帘的是经典的Chrome OS界面,这里注意登录需要有Google的账号(Gmail邮箱),如果暂时没有可以用访客模式登录,在该模式下的一切操作不会保存在硬盘(似乎很好的保护了隐私);而在登录谷歌后,可以看到其完善的生态,包括原生的play商店、Chrome浏览器,Gmail邮箱等等。

+

那么,ChromeBook有哪些玩法呢?

+

一.进入开发者模式 +我们假设你已经有了一个Google账号,并在往期的博客中部署了openwrt,那么此时通过全局科学让chromebook联网,随后登录账号,此时我们完成了第一步;随后拆开后盖,拧下主板上的 BIOS 写保护螺丝。注意在拆卸背板的时候,有两颗螺丝藏在上侧脚垫下,需要先用工具去除脚垫再拆卸这两颗螺丝;下侧的两个脚垫下没有螺丝。如图所示:

+

随后打开背板,卸下图示位置(在蒙皮下)的大螺丝:

+

随后装回后盖,按住键盘上的Esc和“刷新”键不动,然后按下电源键。这样Chromebook会进入“恢复”模式:

+

然后同时按下键盘上的Ctrl键和D键:

+

按下Enter,系统重启:

+

这时会有一声“滴!”的BIOS提示音。

+

随后等待Chrome OS重置即可。

+

重置完成后看到如下界面,以后每次开机都要按Ctrl+D进入系统:

+

随后在设置-高级中可以看到开发者模式已打开,此时传到ChromeOS中的其他APP即可安装。

+

附阅读器和视频效果:

+

二.安装其他系统 +如果你不喜欢ChromeOS或者需要linux环境,那么可以尝试安装其他系统,例如FydeOS,manjaro等。我们以crouton脚本为例(需要全局科学):

+

这里是crouton项目的github地址https://github.com/dnschneid/crouton

+

由于我们已经进入开发者模式,这时打开chromeOS的浏览器,同时按住ctrl和alt和t,会打开一个命令行窗口。 输入命令 shell ,回车,之后会出现linux的真正命令行。随后安装crouton,如果你是用chromeOS下载的crouton,那么这个文件应该在~/Downloads目录下。 执行命令:

+

sudo sh ~/Downloads/crouton -r list +列出所有可以用的发行版版本。像ubuntu,debian,kali等等。 随后使用命令列出所有可以选择安装的组件:

+

sudo sh crouton -t list +这其中就包括各种桌面环境,gnome,kde,xface,lxde啥的。 我们选择最轻量的lxde:

+

sh crouton -r stretch -t lxde +随后设置用户名,密码等等。安装完成后,在chromeOS的linux shell里面输入命令:

+

sudo startlxde +就能启动linux了。

+

实际上,crouton的原理,是基于linux下的一个软件, chroot

+

在linux系统中,它可以把linux系统的根目录(也就是 / ),切换到其它的目录。 crouton利用这一点,将chromeOS的根目录切换到指定的安装了另一系统的文件。而且,会出现两个特性为:linux可以享受到chromeOS的驱动支持,不用担心驱动问题,且使用的是chromeOS的系统内核。

+

由于该内核过于精简,会出现一些服务跑不了的情况,这时我们可以用第二种方法:刷BIOS。我们进入linux shell,插入一个空U盘,输入如下命令

+

cd

+

curl -LO mrchromebox.tech/firmware-util.sh

+

sudo install -Dt /usr/local/bin -m 755 firmware-util.sh

+

sudo firmware-util.sh +成功启动脚本后可以看到如下界面:

+

选择标注了“Full ROM”的选项,按照提示备份BIOS和刷入BIOS,随后reboot,然后可以按正常的装系统流程(Rufus写入ISO启动)

+

注意:需要先删除ChromeBook的硬盘分区;仅支持UEFI启动,且Windows驱动不太完整。

+

后记 +合适的设备总是相对而言的,只要符合需求即可,不必过多的追求工具的完美。

+ +
+ + + + +
+ +
+ + + + + +
+ + + diff --git a/public/color/background_auto.css b/public/color/background_auto.css new file mode 100644 index 0000000..a14b617 --- /dev/null +++ b/public/color/background_auto.css @@ -0,0 +1 @@ +@media (prefers-color-scheme: light){:root{--background: white;--color: #101010}}@media (prefers-color-scheme: dark){:root{--background: #101010;--color: #A9B7C6}} \ No newline at end of file diff --git a/public/color/background_blue.css b/public/color/background_blue.css new file mode 100644 index 0000000..084eec8 --- /dev/null +++ b/public/color/background_blue.css @@ -0,0 +1 @@ +:root{--background: #1D212C} \ No newline at end of file diff --git a/public/color/background_dark.css b/public/color/background_dark.css new file mode 100644 index 0000000..c1b491b --- /dev/null +++ b/public/color/background_dark.css @@ -0,0 +1 @@ +:root{--background: #101010;--color: #A9B7C6} \ No newline at end of file diff --git a/public/color/background_green.css b/public/color/background_green.css new file mode 100644 index 0000000..de564d5 --- /dev/null +++ b/public/color/background_green.css @@ -0,0 +1 @@ +:root{--background: #1F222A} \ No newline at end of file diff --git a/public/color/background_light.css b/public/color/background_light.css new file mode 100644 index 0000000..ea0bc08 --- /dev/null +++ b/public/color/background_light.css @@ -0,0 +1 @@ +:root{--background: #f0f0f0} \ No newline at end of file diff --git a/public/color/background_orange.css b/public/color/background_orange.css new file mode 100644 index 0000000..8d64140 --- /dev/null +++ b/public/color/background_orange.css @@ -0,0 +1 @@ +:root{--background: #222129} \ No newline at end of file diff --git a/public/color/background_pink.css b/public/color/background_pink.css new file mode 100644 index 0000000..17693cb --- /dev/null +++ b/public/color/background_pink.css @@ -0,0 +1 @@ +:root{--background: #21202C} \ No newline at end of file diff --git a/public/color/background_red.css b/public/color/background_red.css new file mode 100644 index 0000000..3605399 --- /dev/null +++ b/public/color/background_red.css @@ -0,0 +1 @@ +:root{--background: #221F29} \ No newline at end of file diff --git a/public/color/blue-auto.css b/public/color/blue-auto.css new file mode 100644 index 0000000..56ff54f --- /dev/null +++ b/public/color/blue-auto.css @@ -0,0 +1 @@ +@media (prefers-color-scheme: dark){:root{--accent: rgb(35,176,255);--accent-alpha-70: rgba(35,176,255,.7);--accent-alpha-20: rgba(35,176,255,.2);--background: #101010;--color: #f0f0f0;--border-color: rgba(255,240,224,.125)}:root div.logo{color:#000}}@media (prefers-color-scheme: light){:root{--accent: rgb(32,128,192);--accent-alpha-70: rgba(32,128,192,.7);--accent-alpha-20: rgba(32,128,192,.2);--background: white;--color: #201030;--border-color: rgba(0,0,16,.125)}:root div.logo{color:#fff}} \ No newline at end of file diff --git a/public/color/blue-light.css b/public/color/blue-light.css new file mode 100644 index 0000000..2e8deda --- /dev/null +++ b/public/color/blue-light.css @@ -0,0 +1 @@ +:root{--accent: rgb(32,128,192);--accent-alpha-70: rgba(32,128,192,.7);--accent-alpha-20: rgba(32,128,192,.2);--background: white;--color: #1D212C;--border-color: rgba(0, 0, 0, .1)}:root div.logo{color:#fff} \ No newline at end of file diff --git a/public/color/blue.css b/public/color/blue.css new file mode 100644 index 0000000..b5ee951 --- /dev/null +++ b/public/color/blue.css @@ -0,0 +1 @@ +:root{--accent: rgb(35,176,255);--accent-alpha-70: rgba(35,176,255,.7);--accent-alpha-20: rgba(35,176,255,.2);--background: #1D212C;--color: white;--border-color: rgba(255, 255, 255, .1)} \ No newline at end of file diff --git a/public/color/green-auto.css b/public/color/green-auto.css new file mode 100644 index 0000000..e671b44 --- /dev/null +++ b/public/color/green-auto.css @@ -0,0 +1 @@ +@media (prefers-color-scheme: dark){:root{--accent: rgb(120,226,160);--accent-alpha-70: rgba(120,226,160,.7);--accent-alpha-20: rgba(120,226,160,.2);--background: #101010;--color: #f0f0f0;--border-color: rgba(255,240,224,.125)}:root div.logo{color:#000}}@media (prefers-color-scheme: light){:root{--accent: rgb(24, 192, 128);--accent-alpha-70: rgba(24, 192, 128,.7);--accent-alpha-20: rgba(24, 192, 128,.2);--background: white;--color: #201030;--border-color: rgba(0,0,16,.125)}:root div.logo{color:#fff}} \ No newline at end of file diff --git a/public/color/green-light.css b/public/color/green-light.css new file mode 100644 index 0000000..6788de0 --- /dev/null +++ b/public/color/green-light.css @@ -0,0 +1 @@ +:root{--accent: rgb(24, 192, 128);--accent-alpha-70: rgba(24, 192, 128,.7);--accent-alpha-20: rgba(24, 192, 128,.2);--background: white;--color: #1D212C;--border-color: rgba(0, 0, 0, .1)}:root div.logo{color:#fff} \ No newline at end of file diff --git a/public/color/green.css b/public/color/green.css new file mode 100644 index 0000000..e622015 --- /dev/null +++ b/public/color/green.css @@ -0,0 +1 @@ +:root{--accent: rgb(120,226,160);--accent-alpha-70: rgba(120,226,160,.7);--accent-alpha-20: rgba(120,226,160,.2);--background: #1F222A;--color: white;--border-color: rgba(255, 255, 255, .1)} \ No newline at end of file diff --git a/public/color/orange-auto.css b/public/color/orange-auto.css new file mode 100644 index 0000000..50ee1d8 --- /dev/null +++ b/public/color/orange-auto.css @@ -0,0 +1 @@ +@media (prefers-color-scheme: dark){:root{--accent: rgb(255,168,106);--accent-alpha-70: rgba(255,168,106,.7);--accent-alpha-20: rgba(255,168,106,.2);--background: #101010;--color: #f0f0f0;--border-color: rgba(255,240,224,.125)}:root div.logo{color:#000}}@media (prefers-color-scheme: light){:root{--accent: rgb(240,128,48);--accent-alpha-70: rgba(240,128,48,.7);--accent-alpha-20: rgba(240,128,48,.2);--background: white;--color: #201030;--border-color: rgba(0,0,16,.125)}:root div.logo{color:#fff}} \ No newline at end of file diff --git a/public/color/orange-light.css b/public/color/orange-light.css new file mode 100644 index 0000000..979f284 --- /dev/null +++ b/public/color/orange-light.css @@ -0,0 +1 @@ +:root{--accent: rgb(240,128,48);--accent-alpha-70: rgba(240,128,48,.7);--accent-alpha-20: rgba(240,128,48,.2);--background: white;--color: #1D212C;--border-color: rgba(0, 0, 0, .1)}:root div.logo{color:#fff} \ No newline at end of file diff --git a/public/color/orange.css b/public/color/orange.css new file mode 100644 index 0000000..3f1a992 --- /dev/null +++ b/public/color/orange.css @@ -0,0 +1 @@ +:root{--accent: rgb(255,168,106);--accent-alpha-70: rgba(255,168,106,.7);--accent-alpha-20: rgba(255,168,106,.2);--background: #222129;--color: white;--border-color: rgba(255, 255, 255, .1)} \ No newline at end of file diff --git a/public/color/pink-auto.css b/public/color/pink-auto.css new file mode 100644 index 0000000..34df818 --- /dev/null +++ b/public/color/pink-auto.css @@ -0,0 +1 @@ +@media (prefers-color-scheme: dark){:root{--accent: rgb(224,64,192);--accent-alpha-70: rgba(224,64,192);--accent-alpha-20: rgba(224,64,192,.2);--background: #101010;--color: #f0f0f0;--border-color: rgba(255,240,224,.125)}:root div.logo{color:#000}}@media (prefers-color-scheme: light){:root{--accent: rgb(238,114,241);--accent-alpha-70: rgba(238,114,241,.7);--accent-alpha-20: rgba(238,114,241,.2);--background: white;--color: #201030;--border-color: rgba(0,0,16,.125)}:root div.logo{color:#fff}} \ No newline at end of file diff --git a/public/color/pink-light.css b/public/color/pink-light.css new file mode 100644 index 0000000..881f216 --- /dev/null +++ b/public/color/pink-light.css @@ -0,0 +1 @@ +:root{--accent: rgb(224,64,192);--accent-alpha-70: rgba(224,64,192);--accent-alpha-20: rgba(224,64,192,.2);--background: white;--color: #1D212C;--border-color: rgba(0, 0, 0, .1)}:root div.logo{color:#fff} \ No newline at end of file diff --git a/public/color/pink.css b/public/color/pink.css new file mode 100644 index 0000000..f2c4c43 --- /dev/null +++ b/public/color/pink.css @@ -0,0 +1 @@ +:root{--accent: rgb(238,114,241);--accent-alpha-70: rgba(238,114,241,.7);--accent-alpha-20: rgba(238,114,241,.2);--background: #21202C;--color: white;--border-color: rgba(255, 255, 255, .1)} \ No newline at end of file diff --git a/public/color/red-auto.css b/public/color/red-auto.css new file mode 100644 index 0000000..d0c7147 --- /dev/null +++ b/public/color/red-auto.css @@ -0,0 +1 @@ +@media (prefers-color-scheme: dark){:root{--accent: rgb(255,98,102);--accent-alpha-70: rgba(255,98,102,.7);--accent-alpha-20: rgba(255,98,102,.2);--background: #101010;--color: #f0f0f0;--border-color: rgba(255,240,224,.125)}:root div.logo{color:#000}}@media (prefers-color-scheme: light){:root{--accent: rgb(240,48,64);--accent-alpha-70: rgba(240,48,64,.7);--accent-alpha-20: rgba(240,48,64,.2);--background: white;--color: #201030;--border-color: rgba(0,0,16,.125)}:root div.logo{color:#fff}} \ No newline at end of file diff --git a/public/color/red-light.css b/public/color/red-light.css new file mode 100644 index 0000000..a854a79 --- /dev/null +++ b/public/color/red-light.css @@ -0,0 +1 @@ +:root{--accent: rgb(240,48,64);--accent-alpha-70: rgba(240,48,64,.7);--accent-alpha-20: rgba(240,48,64,.2);--background: white;--color: #1D212C;--border-color: rgba(0, 0, 0, .1)}:root div.logo{color:#fff} \ No newline at end of file diff --git a/public/color/red.css b/public/color/red.css new file mode 100644 index 0000000..3b1e34a --- /dev/null +++ b/public/color/red.css @@ -0,0 +1 @@ +:root{--accent: rgb(255,98,102);--accent-alpha-70: rgba(255,98,102,.7);--accent-alpha-20: rgba(255,98,102,.2);--background: #221F29;--color: white;--border-color: rgba(255, 255, 255, .1)} \ No newline at end of file diff --git a/public/dsm-nas/index.html b/public/dsm-nas/index.html new file mode 100644 index 0000000..cc16472 --- /dev/null +++ b/public/dsm-nas/index.html @@ -0,0 +1,171 @@ + + + + + Dich'blog + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + + + + + + +
+ + +
+ +
+ +

黑群辉极速安装

+ + + + + + +
+

前言 +作为NAS家族中的重要一员,Synology的DSM以完善的服务和较高的售价闻名于世,因此,一般玩家倾向于工控机加黑群晖的方案组建自己的文件服务器。本文就黑群辉安装做了详细阐述。

+ +

准备工作:需要一个U盘,一台主机(包括屏幕与键盘)以及至少一块硬盘。

+

注意:

+

1.该U盘作为启动器,在安装完成后不可取下;

+

2.截至本文撰写的日期,蜗牛星际被黄牛抬价,可使用路由器工控机加硬盘的方案;

+

3.硬盘需机械硬盘,SSD阵列会出奇怪的问题。

+

安装流程:ISO镜像烧入,BIOS启动,选择版本编译安装,进入群辉界面安装DSM。

+

一.ISO镜像烧入 +首先我们从 https://www.52pojie.cn/thread-1745197-1-1.html 下载arpl-1.0-beta2.img文件,随后通过写盘工具(这里推荐Rufus)将该文件写入U盘中

+

Rufus: https://www.423down.com/10080.html

+

注意U盘将被格式化,随后我们弹出U盘,并将其插到主机上面。

+

二.BIOS启动,编译安装 +开机并按F2或DEL键进入BIOS,设置boot顺序为U盘优先,随后可进入如下界面:

+

记下Access后面的地址,随后在另一台主机的浏览器上访问,可以看到如下界面:

+

选择DSM版本,这里我们以DS3615为例(注意DS918对网卡要求高,需确认好再选择),回车确认;

+

PS:群晖设备型号与套件架构参表.https://www.shenzhuohl.com/syno_list.html

+

接着选择版本号,以42962为例(后面需下载对应的系统)

+

然后输入一个序列号,由于是黑群晖所以让其随机生成。

+

随后build the loader,进入跑码界面,编译安装需要一些时间;

+

完成后boot the loader,出现如下界面:

+

当出现内网地址时便成功了,记下版本号与对应的型号;

+

三.进入群辉界面安装DSM +进入刚刚看到的内网地址(或用群辉助手 https://finds.synology.com/ #自动查找),可以看到如下界面:

+

从群辉的官网下载对应的系统,进入安装程序,这里有个重启时间为10分钟,此时可以饮口茶先。

+

安装完成后即可进入界面,随后添加储存池。

+

后记 +黑群辉的一些功能缺失,因此套件中心是可玩性的集中体现,推荐 https://imnks.com/1780.html 添加该源开始你的NAS之旅吧!

+ +
+ + + + +
+ +
+ + + + + +
+ + + diff --git a/public/font-hack-subset.css b/public/font-hack-subset.css new file mode 100644 index 0000000..2707279 --- /dev/null +++ b/public/font-hack-subset.css @@ -0,0 +1,4 @@ +/*! + * Hack typeface https://github.com/source-foundry/Hack + * License: https://github.com/source-foundry/Hack/blob/master/LICENSE.md + */@font-face{font-family:"Hack";src:url("fonts/hack-regular.woff2?sha=3114f1256") format("woff2"),url("fonts/hack-regular.woff?sha=3114f1256") format("woff");font-weight:400;font-style:normal}@font-face{font-family:"Hack";src:url("fonts/hack-bold-subset.woff2?sha=3114f1256") format("woff2"),url("fonts/hack-bold-subset.woff?sha=3114f1256") format("woff");font-weight:700;font-style:normal}@font-face{font-family:"Hack";src:url("fonts/hack-italic-subset.woff2?sha=3114f1256") format("woff2"),url("fonts/hack-italic-webfont.woff?sha=3114f1256") format("woff");font-weight:400;font-style:italic}@font-face{font-family:"Hack";src:url("fonts/hack-bolditalic-subset.woff2?sha=3114f1256") format("woff2"),url("fonts/hack-bolditalic-subset.woff?sha=3114f1256") format("woff");font-weight:700;font-style:italic} \ No newline at end of file diff --git a/public/font-hack.css b/public/font-hack.css new file mode 100644 index 0000000..2a0205d --- /dev/null +++ b/public/font-hack.css @@ -0,0 +1,4 @@ +/*! + * Hack typeface https://github.com/source-foundry/Hack + * License: https://github.com/source-foundry/Hack/blob/master/LICENSE.md + */@font-face{font-family:"Hack";src:url("fonts/hack-regular.woff2?sha=3114f1256") format("woff2"),url("fonts/hack-regular.woff?sha=3114f1256") format("woff");font-weight:400;font-style:normal}@font-face{font-family:"Hack";src:url("fonts/hack-bold.woff2?sha=3114f1256") format("woff2"),url("fonts/hack-bold.woff?sha=3114f1256") format("woff");font-weight:700;font-style:normal}@font-face{font-family:"Hack";src:url("fonts/hack-italic.woff2?sha=3114f1256") format("woff2"),url("fonts/hack-italic.woff?sha=3114f1256") format("woff");font-weight:400;font-style:italic}@font-face{font-family:"Hack";src:url("fonts/hack-bolditalic.woff2?sha=3114f1256") format("woff2"),url("fonts/hack-bolditalic.woff?sha=3114f1256") format("woff");font-weight:700;font-style:italic} \ No newline at end of file diff --git a/public/fonts/hack-bold-subset.woff b/public/fonts/hack-bold-subset.woff new file mode 100644 index 0000000..a47c8aa Binary files /dev/null and b/public/fonts/hack-bold-subset.woff differ diff --git a/public/fonts/hack-bold-subset.woff2 b/public/fonts/hack-bold-subset.woff2 new file mode 100644 index 0000000..93d425e Binary files /dev/null and b/public/fonts/hack-bold-subset.woff2 differ diff --git a/public/fonts/hack-bold.woff b/public/fonts/hack-bold.woff new file mode 100644 index 0000000..368b913 Binary files /dev/null and b/public/fonts/hack-bold.woff differ diff --git a/public/fonts/hack-bold.woff2 b/public/fonts/hack-bold.woff2 new file mode 100644 index 0000000..1155477 Binary files /dev/null and b/public/fonts/hack-bold.woff2 differ diff --git a/public/fonts/hack-bolditalic-subset.woff b/public/fonts/hack-bolditalic-subset.woff new file mode 100644 index 0000000..0da4750 Binary files /dev/null and b/public/fonts/hack-bolditalic-subset.woff differ diff --git a/public/fonts/hack-bolditalic-subset.woff2 b/public/fonts/hack-bolditalic-subset.woff2 new file mode 100644 index 0000000..236b7de Binary files /dev/null and b/public/fonts/hack-bolditalic-subset.woff2 differ diff --git a/public/fonts/hack-bolditalic.woff b/public/fonts/hack-bolditalic.woff new file mode 100644 index 0000000..ce87fe2 Binary files /dev/null and b/public/fonts/hack-bolditalic.woff differ diff --git a/public/fonts/hack-bolditalic.woff2 b/public/fonts/hack-bolditalic.woff2 new file mode 100644 index 0000000..46ff1c4 Binary files /dev/null and b/public/fonts/hack-bolditalic.woff2 differ diff --git a/public/fonts/hack-italic-subset.woff b/public/fonts/hack-italic-subset.woff new file mode 100644 index 0000000..1d1f511 Binary files /dev/null and b/public/fonts/hack-italic-subset.woff differ diff --git a/public/fonts/hack-italic-subset.woff2 b/public/fonts/hack-italic-subset.woff2 new file mode 100644 index 0000000..b6f5fc9 Binary files /dev/null and b/public/fonts/hack-italic-subset.woff2 differ diff --git a/public/fonts/hack-italic.woff b/public/fonts/hack-italic.woff new file mode 100644 index 0000000..bd545e4 Binary files /dev/null and b/public/fonts/hack-italic.woff differ diff --git a/public/fonts/hack-italic.woff2 b/public/fonts/hack-italic.woff2 new file mode 100644 index 0000000..1e7630c Binary files /dev/null and b/public/fonts/hack-italic.woff2 differ diff --git a/public/fonts/hack-regular-subset.woff b/public/fonts/hack-regular-subset.woff new file mode 100644 index 0000000..85583a5 Binary files /dev/null and b/public/fonts/hack-regular-subset.woff differ diff --git a/public/fonts/hack-regular-subset.woff2 b/public/fonts/hack-regular-subset.woff2 new file mode 100644 index 0000000..1e3abb9 Binary files /dev/null and b/public/fonts/hack-regular-subset.woff2 differ diff --git a/public/fonts/hack-regular.woff b/public/fonts/hack-regular.woff new file mode 100644 index 0000000..e835381 Binary files /dev/null and b/public/fonts/hack-regular.woff differ diff --git a/public/fonts/hack-regular.woff2 b/public/fonts/hack-regular.woff2 new file mode 100644 index 0000000..524465c Binary files /dev/null and b/public/fonts/hack-regular.woff2 differ diff --git a/public/footer.css b/public/footer.css new file mode 100644 index 0000000..435ff7b --- /dev/null +++ b/public/footer.css @@ -0,0 +1 @@ +.footer{padding:40px 0;flex-grow:0;opacity:.5}.footer__inner{display:flex;align-items:center;justify-content:space-between;margin:0;width:760px;max-width:100%}@media (max-width: 899px){.footer__inner{flex-direction:column}}.footer a{color:inherit}.footer .copyright{display:flex;flex-direction:row;align-items:center;font-size:1rem;color:var(--light-color-secondary)}.footer .copyright--user{margin:auto;text-align:center}.footer .copyright>*:first-child:not(:only-child){margin-right:10px}@media (max-width: 899px){.footer .copyright>*:first-child:not(:only-child){border:none;padding:0;margin:0}}@media (max-width: 899px){.footer .copyright{flex-direction:column;margin-top:10px}}@media (max-width: 899px){.footer .copyright-theme-sep{display:none}}@media (max-width: 899px){.footer .copyright-theme{font-size:.75rem}} \ No newline at end of file diff --git a/public/header.css b/public/header.css new file mode 100644 index 0000000..8961941 --- /dev/null +++ b/public/header.css @@ -0,0 +1 @@ +.header{display:flex;flex-direction:column;position:relative}.header__inner{display:flex;align-items:center;justify-content:space-between}.header__logo{display:flex;flex:1}.header__logo:after{content:"";background:repeating-linear-gradient(90deg, var(--accent), var(--accent) 2px, rgba(0,0,0,0) 0, rgba(0,0,0,0) 16px);display:block;width:100%;right:10px}.header__logo a{flex:0 0 auto;max-width:100%}.header .menu{margin:20px 0}.header .menu__inner{display:flex;flex-wrap:wrap;list-style:none;margin:0;padding:0}.header .menu__inner li.active{color:var(--accent-alpha-70)}.header .menu__inner li:not(:last-of-type){margin-right:20px;margin-bottom:10px;flex:0 0 auto}.header .menu__sub-inner{position:relative;list-style:none;padding:0;margin:0}.header .menu__sub-inner:not(:only-child){margin-left:20px}.header .menu__sub-inner-more{position:absolute;background:var(--background);box-shadow:var(--shadow);color:#fff;border:2px solid;margin:0;padding:10px;list-style:none;z-index:99;top:35px;left:0}.header .menu__sub-inner-more-trigger{color:var(--accent);user-select:none;cursor:pointer}.header .menu__sub-inner-more li{margin:0;padding:5px;white-space:nowrap} \ No newline at end of file diff --git a/public/index.html b/public/index.html new file mode 100644 index 0000000..5013227 --- /dev/null +++ b/public/index.html @@ -0,0 +1,216 @@ + + + + + Dich'blog + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + + + + + + +
+ + +
+ +
+
+ +

开源软件与协议

+ + + + + + + + +
+

前言

+

在当今数字时代,软件开发已经成为了人类社会不可或缺的一部分。开源软件在这个领域扮演着至关重要的角色,它们不仅推动了创新和技术进步,还促进了知识共享和协作精神的发展。然而,开源软件的使用和分发必须受到适当的许可证约束,以确保在保护创作者权益的同时,为用户提供开放、自由的使用权利。

+

本文旨在介绍开源软件许可证,这些许可证规定了使用、修改和分发开源软件的条件。通过了解不同类型的开源许可证及其特点,读者将能够更好地理解在开发和使用开源软件时的法律和道德责任。

+ +
+
+ + + Read more  + ↩︎ + +
+ + +
+ +
+ +

路由器原理与组网

+ + + + + + + + +
+

一.什么是无线路由

+

所谓无线路由,就是具备无线覆盖的路由器,即我们常用的有天线的家用路由器。而家庭组网中,除了选择一个最合适的上网方案,一部好的路由器也是非常重要;那么,如何科学的选购路由器呢?

+ +
+
+ + + Read more  + ↩︎ + +
+ + +
+ +
+ +

播客收听指北

+ + + + + + + + +
+

前言 +讲起播客,许多人第一反应是喜马拉雅,但其实播客的订阅和收听有许多种方式。本文带你了解订阅播客的各种方式,并告诉你市面上有哪些不错的播客客户端可供选择。

+ +
+
+ + + Read more  + ↩︎ + +
+ + +
+ +
+ +
+ + + + + +
+ + + diff --git a/public/logo.css b/public/logo.css new file mode 100644 index 0000000..b5150a4 --- /dev/null +++ b/public/logo.css @@ -0,0 +1 @@ +.logo{display:flex;align-items:center;text-decoration:none;background:var(--accent);color:#000;padding:5px 10px} \ No newline at end of file diff --git a/public/main.css b/public/main.css new file mode 100644 index 0000000..8c6731b --- /dev/null +++ b/public/main.css @@ -0,0 +1 @@ +html{box-sizing:border-box}*,*:before,*:after{box-sizing:inherit}body{margin:0;padding:0;font-family:Hack,DejaVu Sans Mono,Monaco,Consolas,Ubuntu Mono,monospace;font-size:1rem;line-height:1.54;background-color:var(--background);color:var(--color);text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-webkit-overflow-scrolling:touch;-webkit-text-size-adjust:100%}@media (max-width: 683px){body{font-size:1rem}}h1,h2,h3,h4,h5,h6{display:flex;align-items:center;font-weight:bold;line-height:1.3}h1{font-size:1.4rem}h2{font-size:1.3rem}h3{font-size:1.2rem}h4,h5,h6{font-size:1.15rem}a{color:inherit}img{display:block;max-width:100%}img.left{margin-right:auto}img.center{margin-left:auto;margin-right:auto}img.right{margin-left:auto}p{margin-bottom:20px}figure{display:table;max-width:100%;margin:25px 0}figure.left,figure img{margin-right:auto}figure.center,figure img{margin-left:auto;margin-right:auto}figure.right,figure img{margin-left:auto}figure figcaption{font-size:14px;padding:5px 10px;margin-top:5px;background:var(--accent);color:var(--background)}figure figcaption.left{text-align:left}figure figcaption.center{text-align:center}figure figcaption.right{text-align:right}code{font-family:Hack,DejaVu Sans Mono,Monaco,Consolas,Ubuntu Mono,monospace;font-feature-settings:normal;background:var(--accent-alpha-20);padding:1px 6px;margin:0 2px;font-size:.95rem}pre{font-family:Hack,DejaVu Sans Mono,Monaco,Consolas,Ubuntu Mono,monospace;padding:20px;font-size:.95rem;overflow:auto;border-top:1px solid rgba(255,255,255,.1);border-bottom:1px solid rgba(255,255,255,.1)}@media (max-width: 683px){pre{white-space:pre-wrap;word-wrap:break-word}}pre code{padding:0;margin:0;background:none}blockquote{border-top:1px solid var(--accent);border-bottom:1px solid var(--accent);margin:40px 0;padding:25px}@media (max-width: 683px){blockquote{padding-right:0}}blockquote:before{content:"”";font-family:Georgia,serif;font-size:3.875rem;position:absolute;left:-40px;top:-20px}blockquote p:first-of-type{margin-top:0}blockquote p:last-of-type{margin-bottom:0}blockquote p{position:relative}blockquote p:before{content:">";display:block;position:absolute;left:-25px;color:var(--accent)}table{table-layout:fixed;border-collapse:collapse;width:100%;margin:40px 0}table,th,td{border:1px dashed var(--accent);padding:10px}th{color:var(--accent)}ul,ol{margin-left:30px;padding:0}ul li,ol li{position:relative}@media (max-width: 683px){ul,ol{margin-left:20px}}ol ol{list-style-type:lower-alpha}.container{display:flex;flex-direction:column;padding:40px;max-width:864px;min-height:100vh;margin:0 auto}@media (max-width: 683px){.container{padding:20px}}.content{display:flex}hr{width:100%;border:none;background:var(--border-color);height:1px}.hidden{display:none} \ No newline at end of file diff --git a/public/mechrev-keyboard/index.html b/public/mechrev-keyboard/index.html new file mode 100644 index 0000000..f2f5078 --- /dev/null +++ b/public/mechrev-keyboard/index.html @@ -0,0 +1,181 @@ + + + + + Dich'blog + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + + + + + + +
+ + +
+ +
+ +

机械革命键盘失灵拯救记

+ + + + + + +
+

前言 +机械革命作为一款极高性价比的笔记本,其优惠的力度和问题不断的故障让玩家们爱恨交织;作者在其上安装Linux时遇到了键盘失灵的问题,为了避免更多人踩坑,故写本文。

+ +

一.故障情况 +作者在一台锐龙平台的笔记本上安装Debian时,先在虚拟机中尝试安装,没有发现异常;随后在实体机安装时发现liveCD中键盘不可用,无法设置密码和主机名,在连接外接键盘后安装完成,却发现Fn快捷键仍然可用。

+

二.具体思路 +根据机革一贯的“特性”,作者猜测是因为BIOS或者ACPI出现了故障,随后在翻阅论坛时发现是由于锐龙笔记本键盘中断描述与其他键盘不同:其为边缘敏 感、低电平有效的;而蛟龙16K机器键盘实际是边缘敏感、高电平有效(Edge ActiveHigh)。结合linux的特性,读取到边缘敏感、低电平有效的中断时,会认为BIOS有Bug,会直接当成边缘敏感、高电平有效进行处理。因此,键盘就没有了响应。

+

三.解决方法 +既然是高低电平表述的错误,那么我们只需建立DSDT表副本,将其修改,然后让它优先启动,从而让键盘配置正常;另外还存在BIOS修复,内核编译的方法,比较复杂,这里不做说明。

+

首先建立一个DSDT文件夹:

+

sudo su +mkdir -p /home/dsdt

+

随后将系统的DSDT表读取到里面,并安装acpica-tools:

+

cat /sys/firmware/acpi/tables/DSDT > dsdt.dat +apt install acpica-tools +iasl -d dsdt.dat

+

进入vim编辑DSDT表,没有vim的先安装一个:

+

apt install vim +vim dsdt.dsl

+

搜索并替换 Device(PS2K) 下面的

+

IRQ (Edge, ActiveLow, Shared, ) +为 +IRQ (Edge, ActiveHigh, Shared, )

+

vim搜索的方法为在命令模式下按下“/”,键入搜索字符并回车即可,按“n”跳转到下一处,“N”跳转到前一处,按: wq保存:

+

随后搜索DefinitionBlock,将其步进值增加一(十六进制),即更改

+

DefinitionBlock ("", "DSDT", 2, "ALASKA", "A M I", 0x01072009) +为 +DefinitionBlock ("", "DSDT", 2, "ALASKA", "A M I", 0x0107200A)

+

关闭DSDT,并设置其优先启动

+

iasl dsdt.dsl +mkdir -p kernel/firmware/acpi +cp dsdt.aml kernel/firmware/acpi/ +find kernel | cpio -H newc --create > acpi_override +cp acpi_override /boot/acpi_override +echo "GRUB_EARLY_INITRD_LINUX_CUSTOM="acpi_override"" >>/etc/default/grub

+

更新并重启:

+

update-grub2 +reboot

+

不出意外,重启后键盘即可使用,若系统不同将apt替换即可。

+ +
+ + + + +
+ +
+ + + + + +
+ + + diff --git a/public/opensourcesoftware-licenses/index.html b/public/opensourcesoftware-licenses/index.html new file mode 100644 index 0000000..74cee11 --- /dev/null +++ b/public/opensourcesoftware-licenses/index.html @@ -0,0 +1,215 @@ + + + + + Dich'blog + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + + + + + + +
+ + +
+ +
+ +

开源软件与协议

+ + + + + + +
+

前言

+

在当今数字时代,软件开发已经成为了人类社会不可或缺的一部分。开源软件在这个领域扮演着至关重要的角色,它们不仅推动了创新和技术进步,还促进了知识共享和协作精神的发展。然而,开源软件的使用和分发必须受到适当的许可证约束,以确保在保护创作者权益的同时,为用户提供开放、自由的使用权利。

+

本文旨在介绍开源软件许可证,这些许可证规定了使用、修改和分发开源软件的条件。通过了解不同类型的开源许可证及其特点,读者将能够更好地理解在开发和使用开源软件时的法律和道德责任。

+ +

在全球范围内,开源软件社区的活跃程度日益增长,吸引了来自不同领域的开发者和用户。然而,开源协议的法律实际应用在各国略有不同。

+

中国开源第一案:【 https://linux.cn/article-11683-1.html 】

+

开源软件

+

开源软件,顾名思义是指能够免费且不受限制地使用、再开发、再发布的软件。但在狭义上,只有符合开放源代码促进会(Open Source Initiative)定义的软件才能被称为开源软件。这个定义提出了十个特征,必须全部符合才能认定为开源软件。

+

这些特征包括:

+

可自由再分发。

+

提供源代码。

+

允许衍生作品。

+

不得过度限制原始代码的修改。

+

不得歧视特定人、群体或用途。

+

必须「技术中立」等。

+

根据这些标准,一些看似自由使用的软件可能不符合开源软件的定义。例如,Elasticsearch原本使用Apache 2.0授权,是真正的开源软件。但面对云服务提供商如AWS等将其用于营利目的却不回馈改进的情况,Elasticsearch在2021年1月选择了SSPL(Server Side Public License,服务器端公共许可证)和Elastic License两种许可证并行;SSPL要求如果将程序的功能或修改后的版本作为服务提供给第三方,则必须免费公开提供服务源代码,这违背了开源软件的定义。另一方面,Elastic License要求不能向第三方提供主机或托管服务,也违反了开源软件的定义,因此也不算严格意义上的「开源」。

+

开源许可证

+

开源许可证是软件许可证的一种特殊形式,用于规定开源软件的使用、修改、分享等相关事宜。它是一种格式合同,涉及版权、专利、商标等权利义务,自动生效。

+

在美国,一些法院认为软件许可证是合同(contract),一些法院则认为是许可(license)。两者的区别在于,许可在传统上是由地产或物主作出的,目的在于允许他人使用自己的地块或物品。因此,它是单方向的,不构成完整的合同,而是作为合同的一个要素,用来和他人交换的条件。由于合同和许可之分在法律上有着重要的意义,它们的违约救济和版权侵权救济等方面有着不同的规定。

+

与美国不同,大陆法系国家如中国普遍认为开源软件许可证构成合同,但这种合同是事先规定好的标准化格式合同,并且自动生效。

+

开源许可证的种类繁多,据不完全统计,广义上的开源许可证超过200种,其中OSI批准的许可证有96个。这些许可证的内容各不相同,有些条款非常有意思,例如,啤酒软件许可证(Beerware License)规定,用户与作者聚会时可以请作者喝一杯啤酒;Jason Hunter 许可证规定,如果将该许可证下的代码用于商业目的,那么项目开发团队的所有成员都必须拥有 Jason Hunter 撰写的《Java Servlet编程》最新版。

+

尽管开源许可证种类繁多,但绝大多数开源软件使用的都是几种常见的许可证之一。根据Whitesource的调查报告,90%左右的开源软件使用的是10个常见许可证之一。

+

常见开源许可证

+

世界上的开源许可证(Open Source License)大概有上百种,而常见的开源协议大致有GPL、BSD、MIT、Mozilla、Apache和LGPL等。

+

Apache License

+

Apache License(Apache许可证),是Apache软件基金会发布的一个自由软件许可证。

+

Apache Licence是著名的非盈利开源组织Apache采用的协议。该协议和BSD类似,同样鼓励代码共享和最终原作者的著作权,同样允许源代码修改和再发布。但是也需要遵循以下条件:

+

需要给代码的用户一份Apache Licence。

+

如果修改了代码,需要再被修改的文件中说明。

+

在衍生的代码中(修改和有源代码衍生的代码中)需要带有原来代码中的协议,商标,专利声明和其他原来作者规定需要包含的说明。

+

如果再发布的产品中包含一个Notice文件,则在Notice文件中需要带有Apache Licence。你可以再Notice中增加自己的许可,但是不可以表现为对Apache Licence构成更改。

+

Apache Licence也是对商业应用友好的许可。使用者也可以再需要的时候修改代码来满足并作为开源或商业产品发布/销售。

+

使用这个协议的好处是:

+

永久权利 一旦被授权,永久拥有。

+

全球范围的权利 在一个国家获得授权,适用于所有国家。假如你在美国,许可是从印度授权的,也没有问题。

+

授权免费 无版税, 前期、后期均无任何费用。

+

授权无排他性 任何人都可以获得授权

+

授权不可撤消 一旦获得授权,没有任何人可以取消。比如,你基于该产品代码开发了衍生产品,你不用担心会在某一天被禁止使用该代码

+

BSD

+

BSD是"Berkeley Software Distribution"的缩写,意思是"伯克利软件发行版"。

+

BSD开源协议:是一个给于使用者很大自由的协议。可以自由的使用,修改源代码,也可以将修改后的代码作为开源或者专有软件再发布。 当你发布使用了BSD协议的代码,或则以BSD协议代码为基础做二次开发自己的产品时,需要满足三个条件:

+

1. 如果再发布的产品中包含源代码,则在源代码中必须带有原来代码中的BSD协议。

+

2. 如果再发布的只是二进制类库/软件,则需要在类库/软件的文档和版权声明中包含原来代码中的BSD协议。

+

3. 不可以用开源代码的作者/机构名字和原来产品的名字做市场推广。

+

BSD代码鼓励代码共享,但需要尊重代码作者的著作权。BSD由于允许使用者修改和重新发布代码,也允许使用或在BSD代码上开发商业软件发布和销售,因此是对商业集成很友好的协议。而很多的公司企业在选用开源产品的时候都首选BSD协议,因为可以完全控制这些第三方的代码,在必要的时候可以修改或者二次开发。

+

GPL

+

GPL (GNU General Public License) :GNU通用公共许可协议。

+

Linux 采用了 GPL。

+

GPL协议和BSD, Apache Licence等鼓励代码重用的许可很不一样。GPL的出发点是代码的开源/免费使用和引用/修改/衍生代码的开源/免费使用,但不允许修改后和衍生的代码做为闭源的商业软件发布和销售。这也就是为什么我们能用免费的各种linux,包括商业公司的linux和linux上各种各样的由个人,组织,以及商业软件公司开发的免费软件了。

+

LGPL

+

LGPL是GPL的一个为主要为类库使用设计的开源协议。和GPL要求任何使用/修改/衍生之GPL类库的的软件必须采用GPL协议不同。LGPL允许商业软件通过类库引用(link)方式使用LGPL类库而不需要开源商业软件的代码。这使得采用LGPL协议的开源代码可以被商业软件作为类库引用并发布和销售。

+

但是如果修改LGPL协议的代码或者衍生,则所有修改的代码,涉及修改部分的额外代码和衍生的代码都必须采用LGPL协议。因此LGPL协议的开源代码很适合作为第三方类库被商业软件引用,但不适合希望以LGPL协议代码为基础,通过修改和衍生的方式做二次开发的商业软件采用。

+

GPL/LGPL都保障原作者的知识产权,避免有人利用开源代码复制并开发类似的产品。

+

MIT

+

MIT是和BSD一样宽范的许可协议,源自麻省理工学院(Massachusetts Institute of Technology, MIT),又称X11协议。作者只想保留版权,而无任何其他了限制。MIT与BSD类似,但是比BSD协议更加宽松,是目前最少限制的协议。这个协议唯一的条件就是在修改后的代码或者发行包包含原作者的许可信息。适用商业软件。使用MIT的软件项目有:jquery、Node.js。

+

MIT与BSD类似,但是比BSD协议更加宽松,是目前最少限制的协议。这个协议唯一的条件就是在修改后的代码或者发行包包含原作者的许可信息。适用商业软件。使用MIT的软件项目有:jquery、Node.js。

+

MPL (Mozilla Public License 1.1) +MPL协议允许免费重发布、免费修改,但要求修改后的代码版权归软件的发起者 。这种授权维护了商业软件的利益,它要求基于这种软件的修改无偿贡献版权给该软件。这样,围绕该软件的所有代码的版权都集中在发起开发人的手中。但MPL是允许修改,无偿使用得。MPL软件对链接没有要求。

+

EPL (Eclipse Public License 1.0)

+

EPL允许Recipients任意使用、复制、分发、传播、展示、修改以及改后闭源的二次商业发布。

+

使用EPL协议,需要遵守以下规则:

+

当一个Contributors将源码的整体或部分再次开源发布的时候,必须继续遵循EPL开源协议来发布,而不能改用其他协议发布.除非你得到了原"源码"Owner 的授权;

+

EPL协议下,你可以将源码不做任何修改来商业发布.但如果你要发布修改后的源码,或者当你再发布的是Object Code的时候,你必须声明它的Source Code是可以获取的,而且要告知获取方法;

+

当你需要将EPL下的源码作为一部分跟其他私有的源码混和着成为一个Project发布的时候,你可以将整个Project/Product以私人的协议发布,但要声明哪一部分代码是EPL下的,而且声明那部分代码继续遵循EPL;

+

4.独立的模块(Separate Module),不需要开源。

+

Creative Commons 知识共享协议 +Creative Commons (CC) 许可协议并不能说是真正的开源协议,它们大多是被使用于设计类的工程上。 CC 协议种类繁多,每一种都授权特定的权利。 一个 CC 许可协议具有四个基本部分,这几个部分可以单独起作用,也可以组合起来。下面是这几部分的简介:

+

1、署名 作品上必须附有作品的归属。如此之后,作品可以被修改,分发,复制和其它用途。

+

2、相同方式共享 作品可以被修改、分发或其它操作,但所有的衍生品都要置于CC许可协议下。

+

3、非商业用途 作品可以被修改、分发等等,但不能用于商业目的。但语言上对什么是"商业"的说明十分含糊不清 (没有提供精确的定义),所以你可以在你的工程里对其进行说明。例如,有些人简单的解释"非商业"为不能出售这个作品。而另外一些人认为你甚至不能在有广告的网站上使用它们。 还有些人认为"商业"仅仅指你用它获取利益。

+

4、禁止衍生作品

+

CC 许可协议的这些条款可以自由组合使用。大多数的比较严格的CC协议会声明 "署名权,非商业用途,禁止衍生"条款,这意味着你可以自由的分享这个作品,但你不能改变它和对其收费,而且必须声明作品的归属。这个许可协议非常的有用,它可以让你的作品传播出去,但又可以对作品的使用保留部分或完全的控制。最少限制的CC协议类型当属 "署名"协议,这意味着只要人们能维护你的名誉,他们对你的作品怎么使用都行。

+

CC 许可协议更多的是在设计类工程中使用,而不是开发类,但没有人或妨碍你将之使用与后者。只是你必须要清楚各部分条款能覆盖到的和不能覆盖到的权利。

+

后记

+

在过去几年,我们可以清晰地观察到商业公司对开源的日益重视,传统企业对开源软件和技术态度的开也在不断提升。IBM以340亿美元收购了开源软件制造商Red Hat,而Salesforce也以65亿美元收购了Mulesoft;微软加入了开放发明网络(OIN)并贡献了6万项专利,随后又以75亿美元收购了GitHub;这些都是显著的例子。

+

大型科技公司不仅依赖于开放源码项目,还积极向这些项目贡献代码,或者在开源许可证下提供自家的内部工具,并将这些举措作为企业责任的体现。这表明整个开源生态系统的扩大使得开源许可证的作用变得更加重要。

+

随着技术和社会环境的不断变化,可能会出现新的许可证或者对现有许可证的修订,比如之前提到的Elastic放弃了Apache许可证因此,作为开发者和用户,我们应该时刻关注这些变化,确保我们的项目和行为符合当前的法律和道德标准。

+

最后,我们希望读者能够在使用和贡献开源软件时,牢记开源精神,尊重他人的劳动成果,并积极参与到开源社区的建设中去。只有通过共同的努力和合作,我们才能够推动开源软件的进步,为全球科技发展贡献自己的一份力量。

+ +
+ + + + +
+ +
+ + + + + +
+ + + diff --git a/public/openwrt/index.html b/public/openwrt/index.html new file mode 100644 index 0000000..c572701 --- /dev/null +++ b/public/openwrt/index.html @@ -0,0 +1,167 @@ + + + + + Dich'blog + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + + + + + + +
+ + +
+ +
+ +

OpenWrt 软路由部署

+ + + + + + +
+

前言 +openwrt是一个自由的、兼容性好的嵌入式linux发行版。作为软路由玩家必备的一款神器,可以实现诸如去广告,多拨和科学上网等多种功能。本文以openwrt在X86平台的安装为例,介绍其部署流程。

+ +

为什么是X86?

+

无论是作为主路由或是旁路由,传统路由器由于主频低,内存小,并不适合作为软路由;而NAS-软路由一体式又有all in boom 的风险,因此推荐X86平台作为物理机。当然,也可以采用armbian平台或是开发板,例如网心云老母鸡、树莓派等设备。截至本文撰写时间,二手平台上的价格不太利好:一台J1900平台的售价往往在200左右,而专门的多网口工控机价格在200到1000不等,树莓派更是成为了理财产品,需要慎重选择。

+

准备工作

+

1.openwrt的编译包,由eSir大佬编译的三个经典版本:

+

https://drive.google.com/drive/folders/1uRXg_krKHPrQneI3F2GNcSVRoCgkqESr

+

2.PE启动盘,这里推荐微PE:https://www.wepe.com.cn/download.html

+

3.img写盘工具:https://www.roadkil.net/program.php?ProgramID=12#google_vignette

+

4.一个U盘与一台双网口物理机

+

安装流程: +一、进入PE环境: +1.打开微PE,将其安装进U盘中,安装完成后将ing工具和openwrt包一起放进去;

+

2.将U盘插入目标主机,进入BIOS-boot设置U盘优先启动,各主板进入BIOS按键不同,不确定的话建议都试一遍。

+

二、格式化硬盘并写盘 +1.进入PE环境中,可以看到存在名为“分区助手”的软件,打开它并将目标主机硬盘格式化;注意不要分区!不要分区!不要设置文件系统!否则后续可能无法编译!

+

点击左上角提交并执行

+

2.打开img写盘工具,将openwrt包写入硬盘,注意不要写进U盘里。

+

三、进入配置界面 +1.重启系统并快速拔出U盘,避免重新进入PE;这时系统开始运行了。注意Esir固件是不跑码的,无需担心。

+

2.当看到please press Enter to activate this console这个提示的时候系统就安装完毕了。可使用passwd命令设置密码。软路由将自动获取IP地址,随后我们在浏览器中打开该地址,即可看到Lucl界面。

+

后记 +开源世界还存在着 DD-WERT、Tomato等系统。正如互联网的发展并非一帆风顺,OpenWRT 也出现过核心开发者出走,另立山头推出 LEDE等波折,在18年LEDE与openwrt合并后,通过众多开发者的不懈努力, OpenWRT 有了现在丰富完善的生态。

+

官方Wiki:https://openwrt.org/zh/start

+ +
+ + + + +
+ +
+ + + + + +
+ + + diff --git a/public/page/1/index.html b/public/page/1/index.html new file mode 100644 index 0000000..5609c11 --- /dev/null +++ b/public/page/1/index.html @@ -0,0 +1,6 @@ + + + + +Redirect +

Click here to be redirected.

diff --git a/public/page/2/index.html b/public/page/2/index.html new file mode 100644 index 0000000..99e63e8 --- /dev/null +++ b/public/page/2/index.html @@ -0,0 +1,225 @@ + + + + + Dich'blog + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + + + + + + +
+ + +
+ +
+
+ +

RSS阅读指南

+ + + + + + + + +
+

一.什么是RSS

+

如果你使用过类似红板报,轻芒杂志,摸鱼kiki,今日热榜等APP,应该对 RSS 并不陌生。

+

RSS(Really Simple Syndication)是一种用于发布经常更新的内容的标准,通常用于博客、新闻网站和其他线上发布的信息。RSS允许用户订阅这些站点的内容,以便在内容有更新时,用户能够获得及时的通知。

+ +
+
+ + + Read more  + ↩︎ + +
+ + +
+ +
+ +

如何高效地向 ChatGPT 提问

+ + + + + + + + +
+

第一章:Prompt 工程技术简介 +什么是 Prompt 工程?

+

Prompt 工程是创建提示或指导像 ChatGPT 这样的语言模型输出的过程。它允许用户控制模型的输出并生成符合其特定需求的文本。

+

ChatGPT 是一种先进的语言模型,能够生成类似于人类的文本。它建立在 Transformer 架构上,可以处理大量数据并生成高质量的文本。

+

然而,为了从 ChatGPT 中获得最佳结果,重要的是要了解如何正确地提示模型。 提示可以让用户控制模型的输出并生成相关、准确和高质量的文本。 在使用 ChatGPT 时,了解它的能力和限制非常重要。

+ +
+
+ + + Read more  + ↩︎ + +
+ + +
+ +
+ +

搜索引擎与爬虫

+ + + + + + + + +
+

一.历史 +1990年,当时人们依赖ftp协议共享文件资源。必须一字不差地输入文件名称,才能得到一个能下载该文件的ftp地址。

+

1995年,风云一时的Yahoo诞生。当时Yahoo利用的是人工编辑导航目录的方式来给用户提供服务。但随着互联网上的web网站越来越多,传统的人力收录形式逐渐不再适用。

+

1998年,全球最大的搜索引擎Google成立,一种查找网页的自动化程序也开始被应用,这种程序就叫爬虫。

+ +
+
+ + + Read more  + ↩︎ + +
+ + +
+ +
+ +
+ + + + + +
+ + + diff --git a/public/page/3/index.html b/public/page/3/index.html new file mode 100644 index 0000000..2bf8e0a --- /dev/null +++ b/public/page/3/index.html @@ -0,0 +1,225 @@ + + + + + Dich'blog + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + + + + + + +
+ + +
+ +
+
+ +

广告推荐算法与实例

+ + + + + + + + +
+

一.广告算法与推荐算法的区别 +1.优化目标的区别

+

广告算法的目标是为了直接增加公司收入。

+

推荐算法虽然本质上也是为了增加公司收入,但其直接目标是为了增加用户的参与度。

+

各公司广告算法的预估目标非常统一,就是预估CTR和CVR,因为CPC和CPA计价是目前效果类广告系统的主流计价方式。

+

推荐算法的预估目标就不尽相同,视频类更多倾向于预测观看时长,新闻类预测CTR,电商类预估客单价等等,都是针对业务场景来做优化

+ +
+
+ + + Read more  + ↩︎ + +
+ + +
+ +
+ +

应届生工作指南

+ + + + + + + + +
+

前言 +什么是“五险一金”?工资到底由那些部分组成?劳动合同怎么签?不仅仅是应届生,很多工作了几年的职场人,也不十分清楚。因此,在这里笔者打算帮助大家彻底把这些事情搞明白。

+ +
+
+ + + Read more  + ↩︎ + +
+ + +
+ +
+ +

安卓刷机与root教程

+ + + + + + + + +
+

前言 +自安卓系统诞生以来,root 一直是玩机的必备过程。时至今日,在安卓定制系统日益完善的情况下,能root 的机型越来越少,本文以小米手机为例,介绍root 的具体方法。

+ +
+
+ + + Read more  + ↩︎ + +
+ + +
+ +
+ +
+ + + + + +
+ + + diff --git a/public/page/4/index.html b/public/page/4/index.html new file mode 100644 index 0000000..f7bf965 --- /dev/null +++ b/public/page/4/index.html @@ -0,0 +1,219 @@ + + + + + Dich'blog + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + + + + + + +
+ + +
+ +
+
+ +

机械革命键盘失灵拯救记

+ + + + + + + + +
+

前言 +机械革命作为一款极高性价比的笔记本,其优惠的力度和问题不断的故障让玩家们爱恨交织;作者在其上安装Linux时遇到了键盘失灵的问题,为了避免更多人踩坑,故写本文。

+ +
+
+ + + Read more  + ↩︎ + +
+ + +
+ +
+ +

流量卡购买与套路

+ + + + + + + + +
+

前言 +由于临近升学,校园网不尽人意,因此许多小伙伴有了买一张流量卡的计划。本文以三大运营商为例,说明常见流量卡的套路与选择。

+ +
+
+ + + Read more  + ↩︎ + +
+ + +
+ +
+ +

Win定制+linux双系统

+ + + + + + + + +
+

前言 +对于同时有着游戏和Linux环境需求的玩家来说,双系统似乎是其必经之路;而主流设备中两块的硬盘位也为双系统的安装提供了支持。本文以Revios+Garuda的安装为例介绍双系统的安装。

+ +
+
+ + + Read more  + ↩︎ + +
+ + +
+ +
+ +
+ + + + + +
+ + + diff --git a/public/page/5/index.html b/public/page/5/index.html new file mode 100644 index 0000000..219fd96 --- /dev/null +++ b/public/page/5/index.html @@ -0,0 +1,219 @@ + + + + + Dich'blog + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + + + + + + +
+ + +
+ +
+
+ +

ChromeBook研究记

+ + + + + + + + +
+

前言 +ChromeBook作为国外一款定位为商务办公和学生入门的机器,其性能在2023年的当下似乎已经过时;在其退出中国市场后更是接近绝迹。不过,针对特殊需求下的部分机型在今天仍然极具性价比。

+ +
+
+ + + Read more  + ↩︎ + +
+ + +
+ +
+ +

PVE安装与MC服务器搭建

+ + + + + + + + +
+

前言 +假期将至,不少家里有闲置设备的小伙伴想尝试开设一个我的世界(Minecraft)服务器,却不知从何下手。本文以PVE-Debian-MCSM为主线介绍其部署流程。

+ +
+
+ + + Read more  + ↩︎ + +
+ + +
+ +
+ +

Android TV 折腾小记

+ + + + + + + + +
+

前言:由于AppleTV的高昂的售价和普通电视盒子广告的泛滥,一台开源、多功能的原生安卓电视盒子逐渐成为智能家居的必备神器。出于对IPTV、YouTube和家庭影院等需求,以及对一面赏心悦目电视墙的期待,这里分享Android TV (以下简称ATV)安装的一些要点。

+ +
+
+ + + Read more  + ↩︎ + +
+ + +
+ +
+ +
+ + + + + +
+ + + diff --git a/public/page/6/index.html b/public/page/6/index.html new file mode 100644 index 0000000..90d432f --- /dev/null +++ b/public/page/6/index.html @@ -0,0 +1,213 @@ + + + + + Dich'blog + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + + + + + + +
+ + +
+ +
+
+ +

OpenWrt 软路由部署

+ + + + + + + + +
+

前言 +openwrt是一个自由的、兼容性好的嵌入式linux发行版。作为软路由玩家必备的一款神器,可以实现诸如去广告,多拨和科学上网等多种功能。本文以openwrt在X86平台的安装为例,介绍其部署流程。

+ +
+
+ + + Read more  + ↩︎ + +
+ + +
+ +
+ +

黑群辉极速安装

+ + + + + + + + +
+

前言 +作为NAS家族中的重要一员,Synology的DSM以完善的服务和较高的售价闻名于世,因此,一般玩家倾向于工控机加黑群晖的方案组建自己的文件服务器。本文就黑群辉安装做了详细阐述。

+ +
+
+ + + Read more  + ↩︎ + +
+ + +
+ +
+ +

Arch从命令行安装

+ + + + + + + + +
+

前言 +Arch linux是一个轻量、灵活、滚动更新的 Linux 发行版,衍生了诸多优秀的桌面端linux。其官方Wiki更是被称为技术界的“武林秘籍”;

+

但由于该Wiki的中文版比较陈旧,安装教程不太清楚,故先以虚拟机安装Arch为例实际操作一番。

+ +
+
+ + + Read more  + ↩︎ + +
+ + +
+ +
+ +
+ + + + + +
+ + + diff --git a/public/pagination.css b/public/pagination.css new file mode 100644 index 0000000..defd6c0 --- /dev/null +++ b/public/pagination.css @@ -0,0 +1 @@ +.pagination{margin-top:50px}.pagination__title{display:flex;text-align:center;position:relative;margin:100px 0 20px}.pagination__title-h{text-align:center;margin:0 auto;padding:5px 10px;background:var(--background);font-size:.8rem;text-transform:uppercase;letter-spacing:.1em;z-index:1}.pagination__title hr{position:absolute;left:0;right:0;width:100%;margin-top:15px;z-index:0}.pagination__buttons{display:flex;align-items:center;justify-content:center}@media (max-width: 683px){.pagination__buttons{flex-direction:column}}.button{position:relative;display:inline-flex;align-items:center;justify-content:center;font-size:1rem;border-radius:8px;max-width:40%;padding:0;cursor:pointer;appearance:none}@media (max-width: 683px){.button{max-width:80%}}.button+.button{margin-left:10px}.button a{display:flex;padding:8px 16px;text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.button__text{text-overflow:ellipsis;white-space:nowrap;overflow:hidden} \ No newline at end of file diff --git a/public/podcast-use/index.html b/public/podcast-use/index.html new file mode 100644 index 0000000..eeba06d --- /dev/null +++ b/public/podcast-use/index.html @@ -0,0 +1,175 @@ + + + + + Dich'blog + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + + + + + + +
+ + +
+ +
+ +

播客收听指北

+ + + + + + +
+

前言 +讲起播客,许多人第一反应是喜马拉雅,但其实播客的订阅和收听有许多种方式。本文带你了解订阅播客的各种方式,并告诉你市面上有哪些不错的播客客户端可供选择。

+

一.什么是播客

+

播客是一种通过互联网传播音频或视频文件的媒体形式。这个词汇是由“广播”(broadcasting)和“iPod”(一种流行的便携式媒体播放器)两个词组合而成的。播客通常是由个人、组织或公司制作,并通过互联网上的订阅服务分享给观众。

+
    +
  1. +

    定期更新: 播客通常以系列形式发布,每一集都是一个独立的音频或视频文件。制作者会定期发布新的内容,让观众订阅后能够定期收听或观看。

    +
  2. +
  3. +

    订阅:观众可以通过订阅播客来自动获取最新的内容。这意味着一旦订阅了某个播客,新的内容就会自动下载到用户的设备上,方便随时收听或观看。

    +
  4. +
  5. +

    多样的内容: 播客内容非常多样化,涵盖了几乎所有可能的主题,包括新闻、科技、文化、教育、娱乐等。从个人讲述生活故事到专业领域的讨论,播客的形式和内容都非常灵活。

    +
  6. +
  7. +

    低门槛制作:制作播客相对来说不需要太多的专业设备和技能,因此许多个人或小团队可以轻松开始制作自己的播客。

    +
  8. +
+

播客的流行得益于它提供了一种轻松、灵活、个性化的信息传递方式,让人们可以方便地在各种主题上深入了解或娱乐。

+

二.如何听播客

+

要收听播客,首先得确定自己所用的平台和客户端,一般有以下几种:

+

使用播客应用: 最常见的方式是使用专门的播客应用程序,这些应用可以在智能手机、平板电脑或计算机上安装。一些常见的播客应用包括Apple Podcasts(苹果播客)、Spotify、Google Podcasts(谷歌播客)、Pocket Casts等。这些应用通常允许你搜索、订阅和播放播客。像喜马拉雅以及各大云音乐等非泛用型播客客户端,这类软件的特点是收听方便,种类繁多,但一般不开源,也没有RSS链接。

+

在网页上收听: 许多播客也提供在其官方网站上在线收听的选项。你可以在制作者的网站上找到相应的播客链接,然后直接在浏览器中收听,或者使用浏览器插件。

+

通过流媒体服务: 一些流媒体服务,如Spotify、Apple Music等,也提供了播客的功能。你可以在这些服务中搜索并订阅你感兴趣的播客。

+

通过RSS订阅: 几乎每个独立播客的主播都会反复强调「请使用节目 RSS 链接在 泛用型播客客户端 里订阅节目」,一定程度上有无RSS订阅链接是作为独立播客的判断标准。使用 RSS 链接订阅播客其实非常简单——得到节目的 RSS 订阅链接后,将之粘贴到你的播客客户端内(通常是节目的搜索栏或地址栏)即可。大多数播客应用都支持这种方式。注意,例如喜马拉雅、荔枝等平台是没有原生RSS链接的,因此,对第三方服务生成的RSS链接要注意鉴别。有些服务提供者会在不告知主播和听众的前提下,私自在节目中间插入广告,非常影响节目收听体验,在使用时请注意甄别。

+

三.常见客户端优缺点

+

我个人推荐使用开源的AntennaPod。

+

四.播客资源

+

天仙子的播客年度总结:播客选录

+

中文播客榜:中文播客榜

+

Github播客大全:中文播客源

+

播客RSS链接大全:播客 RSS Feed

+

播客搜索引擎:Share a Podcast和Podcast search

+ +
+ + + + +
+ +
+ + + + + +
+ + + diff --git a/public/post.css b/public/post.css new file mode 100644 index 0000000..2d8fd20 --- /dev/null +++ b/public/post.css @@ -0,0 +1 @@ +.posts{width:100%;margin:0 auto}.post{width:100%;text-align:left;margin:20px auto;padding:20px 0}@media (max-width: 899px){.post{max-width:660px}}.post:not(:last-of-type){border-bottom:1px solid var(--border-color)}.post .post-meta-inline,.post .post-meta{font-size:1rem;margin-bottom:10px;color:var(--accent-alpha-70)}.post-meta-inline{display:inline}.post-title{--border: 2px dashed var(--accent);position:relative;color:var(--accent);margin:0 0 15px;padding-bottom:15px;border-bottom:var(--border);font-weight:normal}.post-title a{text-decoration:none}.post .post-tags-inline,.post .post-tags{margin-bottom:20px;font-size:1rem;opacity:.5}.post-tags{display:block}.post-tags-inline{display:inline}@media (max-width: 683px){.post-tags-inline{display:block}}.post-content{margin-top:30px}.post-cover{border:20px solid var(--accent);background:rgba(0,0,0,0);margin:40px 0;padding:20px}@media (max-width: 683px){.post-cover{padding:10px;border-width:10px}}.post ul{list-style:none}.post ul li:before{content:"►";position:absolute;left:-20px;color:var(--accent)}.post--regulation h1{justify-content:center}.post--regulation h2{justify-content:center;margin-bottom:10px}.post--regulation h2+h2{margin-top:-10px;margin-bottom:20px}.post-list .post-date{color:var(--accent-alpha-70);text-decoration:none}.post-list a{text-decoration:none}.post-list .post-list-title{text-decoration:underline}.post-list .post-tag{text-decoration:underline} \ No newline at end of file diff --git a/public/pve-mcsm/index.html b/public/pve-mcsm/index.html new file mode 100644 index 0000000..768a824 --- /dev/null +++ b/public/pve-mcsm/index.html @@ -0,0 +1,248 @@ + + + + + Dich'blog + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + + + + + + +
+ + +
+ +
+ +

PVE安装与MC服务器搭建

+ + + + + + +
+

前言 +假期将至,不少家里有闲置设备的小伙伴想尝试开设一个我的世界(Minecraft)服务器,却不知从何下手。本文以PVE-Debian-MCSM为主线介绍其部署流程。

+ +

什么是PVE?

+

PVE (全称 Proxmox Virtual Environment) 是一款开源免费的虚拟化环境平台,同时支持KVM 虚拟机和 LXC 容器。它基于 Debian 和 KVM 技术开发,可在一台 PC 或服务器上同时运行Linux、OpenWRT、Windows 等,实现计算、网络、存储一体化解决方案,即所谓的“all in one”。类似的平台还有ESXi、Unraid等。

+

什么是MCSM?

+

MCSManager 面板(简称:MCSM 面板)是一款全中文,轻量级,开箱即用,多实例和支持 Docker 的 Minecraft 服务端管理面板。

+

此软件在 Minecraft 和其他游戏社区内中已有一定的流行程度,它可以帮助你集中管理多个物理服务器,动态在任何主机上创建游戏服务端,并且提供安全可靠的多用户权限系统,可以很轻松的帮助你管理多个服务器。

+

具体步骤:安装PVE并优化,开设虚拟机并安装Debian,安装mscm界面并开设实例,配置网络服务。

+

准备工作 +1.PVE镜像,推荐使用7.4版本 https://www.proxmox.com/en/downloads

+

2.Debian镜像:https://mirrors.tuna.tsinghua.edu.cn/debian/dists/ (不建议使用DVD版,会出现奇怪的问题。)

+

3.我们的老伙计Rufus:https://www.423down.com/10080.html

+

4.Purpur1.19 服务端:https://purpurmc.org/

+

5.MC启动器HMCL:https://hmcl.huangyuhui.net/

+

6.Zerotier客户端:https://www.zerotier.com/download/

+

一.安装PVE并优化 +1.将下载好的镜像用Rufus写入U盘。

+

2.将U盘插到目标主机上面,进入BIOS-boot设置启动顺序。这里我使用二手浪潮服务器X99主板,矿龙电源以及一块128G的SSD固态。注意:大部分服务器主板有机箱入侵检测机制,需要在说明书中找到特定针脚并用导电帽盖上,否则无法开机。

+

3.进入安装界面,选择install;

+

随后跑码,进入如下界面,同意协议:

+

设置硬盘与文件类型,可以选择ext4或者btrfs;

+

选择国家与地区,这里需要手打出China;

+

随后设置密码与邮件,邮件可以随便填:

+

然后设置网络连接,这里插网线就有地址;设置主机名,并记下内网IP地址;

+

检查无误后开始安装:

+

安装完成后reboot。

+

4.浏览器打开PVE地址,进入系统后我们需要给PVE换源。

+

首先,移除(备份)一下 PVE 原始的官方源 (将 sources.list 改名为 sources.list.bak)

+

mv /etc/apt/sources.list /etc/apt/sources.list.bak +添加国内 Debian 软件源:

+

nano /etc/apt/sources.list +改为

+

deb https://mirrors.ustc.edu.cn/debian/ bookworm main contrib

+

deb-src https://mirrors.ustc.edu.cn/debian/ bookworm main contribe

+

deb https://mirrors.ustc.edu.cn/debian/ bookworm-updates main contrib

+

deb-src https://mirrors.ustc.edu.cn/debian/ bookworm-updates main contrib +#编辑文件 pve-no-subscription.list

+

nano /etc/apt/sources.list.d/pve-no-subscription.list +#内容如下:

+

deb https://mirrors.tuna.tsinghua.edu.cn/proxmox/debian bookworm pve-no-subscription +屏蔽 PVE 企业源:

+

nano /etc/apt/sources.list.d/pve-enterprise.list +将下面这一行注释掉 (前面加上井号):

+

#deb https://mirrors.tuna.tsinghua.edu.cn/proxmox/debian bookworm pve-no-subscription +更新测试:

+

apt-get update +二.新建虚拟机并安装Debian +1.找到local-btrfs(pve),在其中的ISO中上传下载好的Debian镜像;

+

2.随后创建虚拟机,选择Debian镜像并设置CPU核数与硬盘、内存大小;

+

3.一路确认后开机进入命令行界面,即可开始Debian安装。我们选择graphical install:

+

4.选择国家和语言,随后自动配置网络;

+

5.设置主机名,跳过域名设置;设置root账户名和密码、普通用户账户名与密码;

+

6.对磁盘进行分区,由于是虚拟机我们选择使用整个磁盘;

+

7.安装基本系统,随后将进入包管理器和大组件安装;

+

我们选择清华源,速度较快。注意:Debian安装时默认开启安全源,这个源是国外的所以下载速度极慢,因此还需要修改配置文件,这里使用Ctrl+Alt+F2 从图形界面转到tty命令终端, 键入 Enter,使用命令nano /target/etc/apt/sources.list,将所有的源都改成 http://mirrors.ustc.edu.cn 或者清华源,然后Ctrl+X 退出保存, Ctrl+Alt+F5回到图形界面。

+

下载需要一些时间,此时可以饮口茶先,随后看到如下界面:

+

由于是服务器所以不需要桌面环境:

+

安装grub引导:

+

随后安装完成,reboot后进入mscm的安装。

+

三.安装MCSM并开设实例 +1.开机进入tty1界面

+

2.安装JAVA环境,不同版本的游戏的Java版本也不同。这里我们使用1.19版,需要安装Java18。

+

安装wget 和 下载Java18

+

apt install wget && wget http://img.zeruns.tech/down/Java/OpenJDK18U-jre_x64_linux_hotspot_18.0.1_10.tar.gz +创建安装目录

+

mkdir /usr/local/java/ +解压当前目录下的JDK压缩文件

+

tar -zxvf OpenJDK18U-jre_x64_linux_hotspot_18.0.1_10.tar.gz -C /usr/local/java/ +软链接程序到环境变量中

+

ln -sf /usr/local/java/jdk-18.0.1+10-jre/bin/java /usr/bin/java +测试是否安装正常,显示 openjdk version "18.0.1" 2022-04-19 则为正常

+

java -version +3.端口开发,面板需要 23333和24444 端口,游戏服务器默认端口是 25565。

+

在PVE-防火墙中打开它们。如果还是不行,执行如下命令:

+

systemctl stop firewalld

+

systemctl disable firewalld

+

service iptables stop +从而关闭防火墙。

+

4.安装面板,这里使用一键安装命令(注意该脚本仅适用于 AMD64 架构)

+

wget -qO- https://gitee.com/mcsmanager/script/raw/master/setup.sh | bash +执行完成后,使用 systemctl start mcsm-{web,daemon} 即可启动面板服务。使用 systemctl enable mcsm-{daemon,web}.service 实现开机自启。

+

5.在浏览器中打开该地址加上23333端口后缀,即可看到面板,账户为root,密码为123456。

+

6.新建实例,上传Purpur1.19 服务端,设置名称随后开启实例

+

7.随后我们可以在配置文件中设置游戏的相关选项,如关闭正版验证等。

+

8.大功告成,此时打开HMCL启动器,即可加入游戏。

+

四.配置联机网络 +1.此时不要忘记需要和小伙伴们一起玩耍。如果你家里有公网固定IPv4或者IPv6,直接输入联机即可;如果没有公网IP,此时就需要进行内网穿透或者DDNS。

+

这里介绍一种名为zerotier的工具。

+

2.首先在 https://www.zerotier.com/ 注册并创建一个私有网络;

+

3.首先在虚拟机中安装curl命令支持

+

apt-get install curl +4.安装gnupg非对称信息加密系统,通讯所需必备软件

+

apt-get install gnupg +5.安装ZeroTier

+

curl -s https://install.zerotier.com/ | bash +安装成功后提示如下:

+

Success! You are ZeroTier address [ xxxxxxxxx ]. +方括号内地址为类似于MAC地址。

+

6.设定开机自启动(分别执行如下命令)

+

systemctl start zerotier-one.service

+

systemctl enable zerotier-one.service +7.加入自己的私有网络

+

zerotier-cli join xxxxxxxxx +8.大功告成!此时只要让小伙伴们下载zerotier客户端并加入相同的私有网络,即可一起快乐联机!

+ +
+ + + + +
+ +
+ + + + + +
+ + + diff --git a/public/robots.txt b/public/robots.txt new file mode 100644 index 0000000..3450977 --- /dev/null +++ b/public/robots.txt @@ -0,0 +1,4 @@ +User-agent: * +Disallow: +Allow: / +Sitemap: https://blog.dich.ink/sitemap.xml diff --git a/public/routing/index.html b/public/routing/index.html new file mode 100644 index 0000000..43c39de --- /dev/null +++ b/public/routing/index.html @@ -0,0 +1,218 @@ + + + + + Dich'blog + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + + + + + + +
+ + +
+ +
+ +

路由器原理与组网

+ + + + + + +
+

一.什么是无线路由

+

所谓无线路由,就是具备无线覆盖的路由器,即我们常用的有天线的家用路由器。而家庭组网中,除了选择一个最合适的上网方案,一部好的路由器也是非常重要;那么,如何科学的选购路由器呢?

+

二.工作原理

+

路由器是计算机网络中的重要设备,主要用于连接不同的网络,并在这些网络之间转发数据。其工作原理涉及以下几个主要方面:

+
    +
  1. +

    数据包转发:路由器根据目标地址将数据包从一个网络转发到另一个网络。它通过查找路由表来确定最佳路径,并将数据包转发到正确的输出端口。

    +
  2. +
  3. +

    路由表:路由器维护一个路由表,其中包含了网络的拓扑结构以及到达每个网络的最佳路径信息。路由表可以通过静态配置或动态路由协议(如OSPF、BGP等)自动学习和更新。

    +
  4. +
  5. +

    数据包处理:当路由器接收到数据包时,它会检查数据包的目标IP地址,并根据路由表确定应该转发到哪个端口。路由器还可能执行其他功能,如网络地址转换(NAT)、质量服务(QoS)和防火墙等。

    +
  6. +
  7. +

    连接多个网络:路由器通常具有多个网络接口,可以连接不同的网络。这些网络接口可以是以太网、Wi-Fi、光纤等,使路由器能够在不同类型的网络之间进行数据转发。

    +
  8. +
  9. +

    路由器协议:路由器使用不同的协议来实现数据包转发和路由表的更新。这些协议包括IP协议用于数据包交换、动态路由协议用于路由表的学习和更新,以及其他协议用于网络管理和安全。

    +
  10. +
+

一般而言,家用路由器使用DHCP模式,由上级网关的网线连接到路由器的WAN口,如小米路由器的192.168.31.1,在浏览器输入此地址可以进入管理界面,并可以发现了解连接该无线网络的设备地址都为192168.31.xx;且路由器的几个Lan口可以做交换机使用。

+

三.常见参数

+

路由器的信号好不好,一般而言,与以下几点相关:

+

1.路由器支持的协议类型:

+

路由器命名常见的格式为AX3000、AC1800等,前面代表协议,后面数字表示速率(Mbps);AX(802.11ax)在相同速率下比AC更快,即Wifi6比Wifi5要好。在相同协议下,一般速率越高越好;千兆优于百兆,但需注意千兆端口和千兆天线的产品。Wi-Fi 5(802.11ac)和Wi-Fi 6(802.11ax)是两种不同的Wi-Fi标准:

+

速度:Wi-Fi 6比Wi-Fi 5更快。Wi-Fi 5支持的最高速度为1.3 Gbps(理论上),而Wi-Fi 6的最高速度为9.6 Gbps(同样是理论上的速度)。这意味着Wi-Fi 6可以提供更快的数据传输速率,特别是在拥挤的网络环境中。

+

容量:Wi-Fi 6比Wi-Fi 5具有更好的网络容量管理。Wi-Fi 6采用了一些技术,如OFDMA(正交频分复用多址)和MU-MIMO(多用户多输入多输出),使得网络更有效地管理多个设备的连接。这意味着Wi-Fi 6在拥挤的网络环境中能够更好地处理大量设备的连接,而不会出现性能下降。

+

延迟:Wi-Fi 6比Wi-Fi 5具有更低的延迟。通过一些新的技术,如目标唤醒时间(TWT)和BSS领导者切换,Wi-Fi 6能够在连接设备之间实现更快的响应时间和更低的延迟。这对于需要快速响应的应用,如在线游戏和视频会议,尤其重要。

+

功耗:Wi-Fi 6比Wi-Fi 5具有更低的功耗。通过一些节能技术,如目标唤醒时间(TWT)和基于时间的计划(BSS领导者切换),Wi-Fi 6可以更有效地管理设备的电量消耗,延长设备的电池寿命。

+

在Wifi6普及的当下,建议购买WiFi6路由器,并且此类路由器往往还带有wifi5备用网络,可与老旧设备兼容,不必担心。小心百兆网口和千兆天线的牛马产品!

+

2.路由器支持的速率:

+

不要盲目追求大数字:路由器标注的无线速率是叠加速率,并非单一设备接入的最大速率。例如,标注为1750Mbps的路由器,实际上是由2.4GHz的450Mbps和5GHz的1300Mbps相加而成,单一设备的最大通信速率只有1300Mbps。大多数家庭接入的光纤速率为千兆(1000Mbps),因此最大速度为125MB/s,因此瓶颈通常不在于路由器性能;选购家用路由器,更重要的是提高信号覆盖面积和强度,能跑满千兆已经不错。

+

3.路由器的无线频段:

+

2.4GHz频段稳定性高,覆盖范围广,穿墙能力强;而5GHz频段速度快但穿墙能力较弱;

+

4.无线网络的频段带宽:

+

2.4G有20Mhz和40Mhz两种频道带宽,5G则有80Mhz和160Mhz两种;频道带宽就是发射频率的宽度,带宽越低穿透性越好。如果连的设备多的话,就用低频段;

+

5.芯片的主频和板载内存

+

路由器处理器的主频越高,加解密性能越好,速度和带机量也更大;目前低价位路由器通常使用MTK、瑞昱、海思等廉价处理器,配以64MB/128MB的内存。而高端路由器多使用博通的高端芯片,在内存的配置上往往可以达到256MB以上。博通高端芯片在各个方面表现都不错,同时各位大神对刷机的支持力度也比较大。板载内存越大可为后续刷机留下空间,并支持插件等;

+

6.其他功能

+

如QOS,设备管理,IPTV支持,IPV6等等;

+

7.天线越多信号不一定越强。

+

路由器的发射范围是由协议决定的,与根数无关。对于双频的路由来说,4根或者6根其实只有一半(2根2.4g和2根5g使用)。

+

8.无线功率不是越大越好。

+

因为无线通信是双向的,路由器功率大了,但是你的手机等无线终端设备功率是不变的。在符合国家标准的情况下,wifi功率是有硬性标准的,单台路由器覆盖80平以上的面积不太现实。因此当你面对信号差、覆盖死角的时候,应该首要想到的是增加覆盖节点,而不要相信宣传所谓的“穿墙王”。

+

四.组网方案

+

一般而言,有AC+AP和Mesh两种方案;

+

AC+AP即使用一台设备做AC(控制中心),并在各处分布部署AP,从而实现在同一网段下无缝漫游,并且使各处信号强度相近;AP和AC之间通过网线连接,信号最好;也可以使用无线AP。

+

Mesh技术基于去中心的点对点网络,一般由两台相同型号的路由器构成,开启Mesh功能并优化网络稳定性和可靠性,提高覆盖范围,适合没有预埋网线的环境使用。一般而言,需要留一个频段供两台路由器进行Mesh,所以至少需要两台同型号的三频路由器。

+

无论是采用AC+AP还是Mesh,前期的准备必须足够充分:

+
    +
  1. 网线选择建议:
  2. +
+

在考虑网络建设方面,从经济效益角度而言,超五类网线已经足以满足大多数家庭的千兆网络需求(1Gbps)。在短距离内,质量较高的五类/超五类网线支持高达2500兆的传输速率(2.5Gbps)。因此,一般情况下,考虑到成本因素,建议家庭网络布线选用符合标准的超五类网线。

+

若愿意适度增加布线成本,则推荐选择支持万兆(10Gbps)网络的六类/超六类以上网线,尤其是从光猫到主路由/交换机的这一段线路,最好支持万兆。即便今后需要扩展网络速度无法满足万兆的有线条件,也可以通过未来的Wi-Fi7标准实现无线超万兆速度覆盖。

+
    +
  1. 网线布线注意事项:
  2. +
+

在进行网线布线时,无论是屏蔽网线还是非屏蔽网线,都应确保将强电线和弱电线分开放置于不同的管道中。同时,在走线过程中应保持一定的间距,以减少干扰。若需要考虑未来更换网线的情况,建议选择更大的穿线管道,并确保每条网线单独走一根管道。若出现强、弱电交叉走线的情况,可采用铝/锡纸包裹弱电管道以实现简单的屏蔽作用。应避免与大功率强电线相交或并行走线,如空调、烤火炉、微波炉等。

+
    +
  1. 弱电箱至电视柜网线布线:
  2. +
+

考虑到当前电信运营商提供的IPTV功能,如果不熟悉设置VLAN的单线复用,或者未来可能使用到链中聚合技术,建议从弱电箱至电视柜至少布置两条网线,以免后悔。

+
    +
  1. 接线盒的预留:
  2. +
+

许多人可能认为随着21世纪的到来,有线布线已经过时。因此,为了节约成本或受装修公司的误导,一些卧室甚至书房都没有进行网线布置,这是不可取的。无线网络虽然方便,但速度远不如有线快速稳定。因此,建议在每个卧室的相应位置安装一个网线接线盒,并在墙壁上安装电视时,下方也应预留一个网线接线盒。如果有地下室或楼阁,也应该布置一条网线。多预留一些接线盒总比今后发现需要网线却没有的尴尬情况要好。

+
    +
  1. 死角位置的网线和电源接口预留:
  2. +
+

对于信号死角的位置,根据实际情况,如阳台、露台等不需要路由器设备可见的地方,可以考虑将路由器隐藏在吊顶中,甚至包括厕所的吊顶也可以考虑。在这些位置预留多个网线和电源接口是明智的选择。

+
    +
  1. 路由器放置位置推荐:
  2. +
+

一般来说,家庭会将路由器放置在弱电箱或电视柜内,然而,周围其他电器设备运行时会产生电磁干扰,对2.4G和5G信号都会造成影响,甚至蓝牙设备也会有干扰。基于信号向下传播的特性,建议将路由器放置在较高位置,如吊顶内或进门处的高处,并最好选择居住区域的中心位置以实现更好的信号覆盖。

+ +
+ + + + +
+ +
+ + + + + +
+ + + diff --git a/public/rss-read/index.html b/public/rss-read/index.html new file mode 100644 index 0000000..bce34ce --- /dev/null +++ b/public/rss-read/index.html @@ -0,0 +1,269 @@ + + + + + Dich'blog + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + + + + + + +
+ + +
+ +
+ +

RSS阅读指南

+ + + + + + +
+

一.什么是RSS

+

如果你使用过类似红板报,轻芒杂志,摸鱼kiki,今日热榜等APP,应该对 RSS 并不陌生。

+

RSS(Really Simple Syndication)是一种用于发布经常更新的内容的标准,通常用于博客、新闻网站和其他线上发布的信息。RSS允许用户订阅这些站点的内容,以便在内容有更新时,用户能够获得及时的通知。

+ +

基本上,RSS提供了一种数据格式,以XML(可扩展标记语言)的形式组织信息,包括文章标题、摘要、链接和发布日期等。这些信息形成了所谓的“订阅源”(Feed),用户可以使用RSS阅读器(Feed Reader)来订阅这些源。

+

RSS的主要优势包括:

+

即时通知:用户订阅了RSS源后,当源中的内容有更新时,用户将立即收到通知,而无需手动检查网站。

+

集中管理:使用RSS阅读器,用户可以集中管理多个网站的更新,而无需逐个访问这些站点。

+

隐私保护:RSS订阅不需要提供个人信息,用户只需关注感兴趣的内容,而无需注册账户。

+

定制内容:用户可以选择订阅感兴趣的主题或网站,定制他们的信息流。

+

减少信息过载:通过只关注真正感兴趣的内容,用户可以减少信息过载,集中注意力在最关键的信息上。

+

如果我们想更高效地获取信息,不在多个应用间来回切换,另一方面拒绝算法给我们推荐的内容,那么建议用回原始的 RSS。

+

虽然RSS曾经非常流行,但随着社交媒体和其他信息传递方式的兴起,逐渐成为时代的眼泪。然而,RSS仍然是一种有效的信息分发和获取方式,许多网站和博客仍提供RSS源。题主曾经计划使用Kindle作为专门的RSS阅读器,后来由于过于昂贵而作罢。

+

二.如何进行RSS阅读

+

基本上有以下几步:

+

寻找RSS订阅源

+

确定RSS客户端

+

自建RSS服务端(可选)

+

寻找RSS订阅源 +要知道一个网站是否支持 RSS 订阅,最直接的方法就是看网站的底部或侧边栏是否有 RSS 图标。一般来说,图标所指向的地址就是该网站的订阅链接,可以直接点击 跳转到 RSS 客户端内进行订阅,也可以复制粘贴按钮中的地址到自己在用的 RSS 服务中订阅这些网站中的内容。

+

在浏览器中推荐使用RSS Hub radar 插件,可以自动找到可用的RSS源并提示。

+

有时候网站不会直接给出订阅源,这时候你也可以尝试在网站域名后面加上 /feed 或 /rss 或许可以碰巧猜中,比如少数派的 RSS 订阅链接就是 https://sspai.com/feed。当然,你也可以直接通过搜索引擎通过 网站名 + RSS 的关键字进行搜索,往往都能找到支持网站的 RSS 链接。

+

当然,我们也可以直接导入现有的订阅源,一般为OPML文件,如RSS Source;或者调用第三方的RSS服务,如anyfeeder,等等。

+

这里介绍一个RSS神器,由DIygod 发起的RSShub项目:

+

RSSHub是一个开源项目,旨在为用户提供一个集中化、可定制的RSS(Really Simple Syndication)源的生成器。该项目的目标是通过从各种网站和平台获取信息,将其聚合到用户自定义的RSS源中,从而使用户能够方便地订阅他们关心的内容。

+

开源性质: RSSHub是一个开源项目,其源代码可以在GitHub上找到。这意味着任何人都可以查看、使用、修改和贡献代码。

+

支持的站点: RSSHub支持从各种网站和平台提取数据,包括但不限于新闻网站、社交媒体、博客、视频分享平台等。用户可以根据自己的需求选择要订阅的站点。

+

自定义生成: 用户可以通过指定参数和规则来定制他们的RSS源,以便获取特定主题或关键字的更新。这使得用户能够灵活地定制他们的订阅流。

+

社区参与: RSSHub是一个社区驱动的项目,有很多开发者和贡献者参与其中。社区可以通过GitHub进行讨论、报告问题和提交代码。

+

部署方式: RSSHub可以自行部署,用户可以在自己的服务器上搭建RSSHub实例,以便更好地控制和定制生成的RSS源。

+

确定RSS客户端 +RSS客户端非常丰富,包括Android端,IOS端,Windows端,linux端,浏览器插件,甚至Vscode插件(用来摸鱼)等等。这里推荐一些阅读器,当然,也可以选择类似Feedly的服务商。

+

Android:News,在Fdorid里可下载,中文名为“新闻”,界面简洁,功能全面,支持本地或连接自建服务端。

+

IOS:Inoreader, 其提供了方便的阅读体验,支持离线阅读、标签和快速搜索。

+

Windows:Fluent Reader,在github上开源,界面优雅,支持本地或连接自建服务端。

+

linux:Fluent Reader或Newsboat, 是 Newsbeuter 的一个分支,一款文本控制台 RSS/Atom 订阅阅读器。

+

自建RSS服务端 +开源的RSS服务端软件可以用来搭建个人的RSS阅读服务:

+

FreshRSS: FreshRSS 是一款简单易用的自建RSS服务端软件。它提供了丰富的功能,包括标签、筛选器、阅读统计等,并支持多用户。

+

Miniflux: Miniflux 是一个轻量级的RSS/Atom阅读器服务,支持自建。它采用Go语言编写,具有快速响应和简洁的用户界面。

+

Tiny Tiny RSS (tt-rss): Tiny Tiny RSS 是一款功能丰富的自建RSS服务端软件,提供了类似于Google Reader的界面,并支持标签、过滤器、插件等。

+

Selfoss: Selfoss 是一款支持多种数据源(包括RSS)的自建聚合器。它的界面简洁,支持标签、过滤器和插件,同时也提供了跨平台的客户端。

+

Miniflux 2: 不要与上面提到的Miniflux混淆,Miniflux 2 是 Miniflux 的一个全新版本,同样支持自建RSS服务。

+

这里以MiniFlux为例,其优势在与:

+

程序设计极简,不处理任何订阅之外的事情。

+

程序无外部依赖,运行性能高。

+

支持自动抓取并缓存图片,加速浏览。

+

有限支持自动将摘要替换为全文进行抓取。

+

支持多账号登录,支持 Fever API ,允许客户端从外部登录。

+

支持集成 PinBoard 、Instapaper、 Pocket、Wallabag、Nunux Keeper 等服务。

+

提供 Open API、书签快速订阅脚本。

+

维护者和社区相对活跃,更新频率高。

+

步骤:

+

1.安装docker 和docker-compose(略)

+

2.Docker安装miniflux:

+

(1)创建并进入你想安装Miniflux的文件夹:

+

mkdir ~/miniflux # 在根目录创建名为miniflux的文件夹 +cd ~/miniflux # 进入miniflux文件夹

+

(2)创建docker-compose.yml文件:

+

nano docker-compose.yml # 使用nano编辑器创建,会自动打开文件以写入内容 +(3)在文件中写入以下内容并保存:

+

version: '3.4'

+

services:

+

miniflux:

+

image: miniflux/miniflux:latest

+

ports:

+
    +
  • "127.0.0.1:8080:8080" #调整一:增加localhost ip 并改port为8080
  • +
+

depends_on:

+
    +
  • db
  • +
+

environment:

+
    +
  • +

    DATABASE_URL=postgres://miniflux:secret@db/miniflux?sslmode=disable

    +
  • +
  • +

    RUN_MIGRATIONS=1

    +
  • +
  • +

    CREATE_ADMIN=1

    +
  • +
  • +

    ADMIN_USERNAME=admin # 登录Miniflux的用户名,可自定义

    +
  • +
  • +

    ADMIN_PASSWORD=password # 登录Miniflux的密码,可自定义,至少6位

    +
  • +
  • +

    "BASE_URL=https://enter.your.url" # 调整二:输入想用来访问Miniflux的域名

    +
  • +
+

healthcheck:

+

test: ["CMD", "/usr/bin/miniflux", "-healthcheck", "auto"]

+

db:

+

image: postgres:latest

+

environment:

+
    +
  • +

    POSTGRES_USER=miniflux

    +
  • +
  • +

    POSTGRES_PASSWORD=secret

    +
  • +
+

volumes:

+
    +
  • miniflux-db:/var/lib/postgresql/data
  • +
+

healthcheck:

+

test: ["CMD", "pg_isready", "-U", "miniflux"]

+

interval: 10s

+

start_period: 30s

+

volumes:

+

miniflux-db:

+

该docker-compose.yml 文档内容基于Miniflux官方文档 ,并在细节上进行了调整。调整有两处:一是将port改为127.0.0.1:8080:8080,主要目的是错开常用port 80,并调整localhost为127.0.0.1来跟nginx的设置一致(如不调整,miniflux将使用0.0.0.0,无法顺利运行nginx);二是在miniflux的environment中加入新的configuration BASE_URL,请将内容换为你想用来访问Miniflux的域名。

+

如何用nano保存文件:可以使用ctrl+X,在退出编辑时,选择Y来保存所有更改,再敲一次回车便可以回到命令行。

+

(4)运行以下代码进行安装:

+

docker-compose up -d +在浏览器中访问服务器ip:端口号(如http://123.45.67.890:8080),如显示登录界面,即代表安装成功。域名解析和反代步骤略。

+

三.Miniflux的使用方法

+

首先,初次登陆会弹出注册界面,注册为管理员账户;随后进入主页,可以看到:

+

在设置中可以在集成中连接你自己的工作流,以及设置Api密钥便于客户端登陆,还可以添加用户来多人协作。

+

在源+中可以添加新源,并自动帮你查找网址中的RSS链接;也可以批量导入已有的订阅列表:

+

完成后我们可以在客户端进行连接,当然如果就一台设备的话也不用服务端同步。如图所示,以Fluent Reader为例,输入刚刚的网址和用户名-密码,即可同步。

+ +
+ + + + +
+ +
+ + + + + +
+ + + diff --git a/public/searching/index.html b/public/searching/index.html new file mode 100644 index 0000000..c96e799 --- /dev/null +++ b/public/searching/index.html @@ -0,0 +1,231 @@ + + + + + Dich'blog + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + + + + + + +
+ + +
+ +
+ +

搜索引擎与爬虫

+ + + + + + +
+

一.历史 +1990年,当时人们依赖ftp协议共享文件资源。必须一字不差地输入文件名称,才能得到一个能下载该文件的ftp地址。

+

1995年,风云一时的Yahoo诞生。当时Yahoo利用的是人工编辑导航目录的方式来给用户提供服务。但随着互联网上的web网站越来越多,传统的人力收录形式逐渐不再适用。

+

1998年,全球最大的搜索引擎Google成立,一种查找网页的自动化程序也开始被应用,这种程序就叫爬虫。

+ +

二.爬虫 +搜索引擎原理可以简单分为三个过程:爬行,索引,排名。

+

爬行 +爬行是谷歌爬虫抓取并解析页面HTML的过程。这个时候爬虫看到的类似纯文字版的网页快照。也就是未执行CSS和JS的页面。这个时候谷歌会记录网页的一些相关信息比如标题,关键词,原描述,文本内容,链接等。

+

对于新站,其实最需要解决的就是收录。互联网也就是一张由无数链接形成的大网,蜘蛛(spider)通过跟踪链接访问页面,当发出页面访问请求之后,服务器会返回HTML代码。蜘蛛会将采集到的程序收入原始页面数据库。

+

蜘蛛的爬取方式分为两种:

+

纵向抓取:蜘蛛在网站上发现一个链接,就会沿着这个链接一直深入,发现一个,抓一个,直到无法再找到新链接。

+

横向抓取:蜘蛛在网站上发现一个链接,先将第一层级的链接全部爬取完,再进入第二层级抓取,直到爬取完网站的最深层级。

+

网站的纵向抓取和横向抓取往往是同时进行的,理论上只要给予足够的时间,那么蜘蛛就会将网站上的所有链接全部抓取。但是由于资源的限制,我们在查看蜘蛛的crawl记录时,就会发现其实很多页面并没有被爬取。

+

既然蜘蛛没有办法爬行所有页面,那么那些页面会优先抓取呢?

+

高DA和高PA页面:即网站和页面的权重高,蜘蛛就会优先爬取

+

更新时间:页面更新频繁会吸引蜘蛛抓取

+

导入链接:高权重的导入链接,这也就是外链要尽量选择高权重网站的原因

+

与首页距离:层级距离首页越近,权重越高,越可能被蜘蛛爬取

+

地址库

+

网络上的资源非常丰富和繁杂,为了节省资源,搜索引擎会建立一个地址库,将已经发现但是并没有抓取的页面和已经抓取的页面记录在里面。

+

地址库的网址往往有以下三种来源:

+

人工录入的种子网站

+

蜘蛛爬取页面后解析出网址,如果不存在,就录入

+

通过站长工具提交网址,例如google search console

+

索引 +在索引(indexing)过程中,谷歌会将被抓取的页面内容组织起来,形成一个巨大的索引库。谷歌的Caffeine索引机制又会对网页进行渲染,执行CSS和JS,从而更好地理解你网页的内容。

+

建立索引

+

提取文字:搜索引擎会提取页面中的可见文字,以及包含文字信息的代码。如meta标签,alt属性,锚文本等

+

分词:例如对于Where can I buy a high quality table,那么a high quality table就会被视为一个词,而不是buy a high。对于不同国家的文字,每个搜索引擎的分词方式都是有区别的。

+

去停止词:不论英文还是中文都会经常出现一些对于页面主体内容没有多大影响,但是出现频率较高的词,例如语气词,介词,副词,感叹词等。搜索引擎会在建立这些页面之前去除这些词。

+

消除噪声:页面上会存在一部分内容对于确认页面主题并无帮助,例如版权声明,导航等。这些内容也会在存入索引之前被清除。

+

去重:因为搜索引擎并不喜欢重复的内容,所以对于重复度过高的页面也是会被清除的。因此我们网站的页面内容一定要尽可能的稀释重复度。

+

正向索引:经过上述步骤之后,搜索引擎得到的就是可以反应页面主题的内容,他会记录每个关键词在页面上出现的频率,格式,位置,然后将这些数据存储在索引库中。

+

倒排索引:正向索引是将页面对应到关键词,倒排索引是将关键词对应到页面。这样用户在搜索的时候,可以迅速确定页面

+

链接关系计算:链接关系计算是针对内链和外链,维度包括链接的数量,导入链接权重。Google PR就是这个计算结果的体现。

+

特殊文件:谷歌不仅可以抓取html网页,对于PDF,TXT,Word这种文字占比例较高的文件也是可以抓取的。

+

排名 +排名过程其实在爬取和索引的时候就开始了。到了索引阶段,谷歌会为网页计算一些指标,作为排名算法的初始数据。当用户搜索问题时,谷歌会进行语义分析,理解用户搜索意图,并执行排名算法,根据页面相关性得分为每个页面排序,最终形成搜索结果页面。

+

搜索词:对用户输入的搜索词进行去停止词处理,搜索指令处理

+

文件匹配:用户可能搜索的是网页,也可能是PDF或者JPG图片。

+

初始子集选择:因为在这个阶段,能够匹配的网页数量是巨大的,所以会根据页面的权重首先选出一个子集

+

相关性计算(最重要的一步):

+
    +
  1. +

    关键词常用度:越常用的词对于搜索词的用处越小

    +
  2. +
  3. +

    关键词密度:密度越大,该页面的相关性越高,但是现在这个因素对于页面的排名已经不太重要。

    +
  4. +
  5. +

    关键词的位置和形式:粗体,H标签都表明这是较为重要的关键词;位于段落开头的关键词比段尾的关键词拥有更高的权重,所以建议将搜索量最高的关键词放在段首,其余关键词较为自然的分布的文章中。

    +
  6. +
  7. +

    关键词匹配度:能够完整的匹配用户的搜索词,证明页面的相关性越高。

    +
  8. +
  9. +

    页面权重:页面权重和很多因素相关,例如导入链接,DA(域名权重)等。

    +
  10. +
+

排名过滤:现在已经基本得到了关键词的排名,但是对于曾经有过作弊为行为的网站,谷歌会对其ranking进行下调,以示惩罚。

+

页面显示:排名确定后,搜索引擎会调用页面的meta标签,也就是title和description。

+

搜索缓存:对于重复搜索词,搜索引擎是会将结果进行缓存的。

+

搜索日志;搜索引擎会将用户的搜索词,点击网页,ip,搜索时间都进行记录,便于判断搜索结果的质量,调整算法,预测搜索趋势等。

+

三.SEO与搜索技巧 +在商业的驱动下,催生了一个职业叫搜索引擎优化,通常会简称为SEO。

+

在搜索结果中你会发现,很多网站明明不提供有效信息,却排名靠前。那是因为它们通过掌握搜索引擎排名的规律,利用一些作弊手段“骗”过了程序。例如关键词堆积、隐藏链接、PR劫持、模拟点击、模拟发包等。这些在业内被叫做黑帽SEO。

+

不过虽然你无法改变算法,但如果想让自己的搜索结果更干净,其实也有一些搜索技巧可以使用。

+

例如,

+

精确搜索:“关键词”,利用双引号 ,这样关键词不会被拆分

+

模糊搜索:关词,利用号代替文字

+

site:查找指定网站的所有页面,site:网站链接

+

关键词site:查找指定网站的关键词,关键词 site:网站链接

+

关键词A +关键词B:同时搜索多个关键词,+前面记得加空格

+

关键词A -关键词B:排除搜索结果中不想看到的内容,-前面记得加空格

+

intitle:标题中含搜索词的内容,intitle:关键词

+

intext:正文中含搜索词的内容,intext:关键词

+

inurl:url网址中含搜索词的内容,url:关键词

+

filetype:搜索指定格式的文件,关键词 filetype:格式后缀

+

叠加使用方法:比如排期搜索结果中不想看到的网址,搜索词 -site:网站链接

+

四.补充 +什么是 robots.txt +robots.txt 文件可以指定那些我们不希望被爬虫访问的页面,比如,管理页面、登录页面或者其他不重要的页面等。这样做的原因是,一般来说搜索引擎分配给每个网站的爬行预算是固定的,如果我们将预算浪费在不重要的页面,那么相对应的,我们那些重要的页面,比如产品分类页,产品详情页,被收录的概率就会变低。下方是淘宝的 robots.txt:

+

User-agent: Baiduspider

+

Disallow: /

+

User-agent: baiduspider

+

Disallow: /

+

什么是站点地图 +站点地图可以列出网站上所有的页面,比如产品分类,产品详情页,新闻博客页等。我们将站点地图提交给搜索引擎,可能会帮助爬虫更快地发现我们的网站。谷歌是在谷歌站长后台提交站点地图,其他搜索引擎同理。

+ +
+ + + + +
+ +
+ + + + + +
+ + + diff --git a/public/sitemap.xml b/public/sitemap.xml new file mode 100644 index 0000000..53f5690 --- /dev/null +++ b/public/sitemap.xml @@ -0,0 +1,177 @@ + + + + https://blog.dich.ink/ + + + https://blog.dich.ink/about-working/ + 2023-12-24 + + + https://blog.dich.ink/about/ + + + https://blog.dich.ink/advertising-algorithms/ + 2023-12-25 + + + https://blog.dich.ink/android-root/ + 2023-09-07 + + + https://blog.dich.ink/android-tv/ + 2023-08-08 + + + https://blog.dich.ink/arch-install/ + 2023-08-05 + + + https://blog.dich.ink/archive/ + + + https://blog.dich.ink/calling-cards/ + 2023-08-24 + + + https://blog.dich.ink/chatogpt/ + 2024-01-07 + + + https://blog.dich.ink/chromebook/ + 2023-08-12 + + + https://blog.dich.ink/dsm-nas/ + 2023-08-07 + + + https://blog.dich.ink/mechrev-keyboard/ + 2023-09-04 + + + https://blog.dich.ink/opensourcesoftware-licenses/ + 2024-03-04 + + + https://blog.dich.ink/openwrt/ + 2023-08-08 + + + https://blog.dich.ink/page/1/ + + + https://blog.dich.ink/page/2/ + + + https://blog.dich.ink/page/3/ + + + https://blog.dich.ink/page/4/ + + + https://blog.dich.ink/page/5/ + + + https://blog.dich.ink/page/6/ + + + https://blog.dich.ink/podcast-use/ + 2024-01-20 + + + https://blog.dich.ink/pve-mcsm/ + 2023-08-11 + + + https://blog.dich.ink/routing/ + 2024-02-19 + + + https://blog.dich.ink/rss-read/ + 2024-01-20 + + + https://blog.dich.ink/searching/ + 2024-01-07 + + + https://blog.dich.ink/tags/ + + + https://blog.dich.ink/tags/advertising/ + + + https://blog.dich.ink/tags/algorithms/ + + + https://blog.dich.ink/tags/android-tv/ + + + https://blog.dich.ink/tags/android/ + + + https://blog.dich.ink/tags/arch-install/ + + + https://blog.dich.ink/tags/calling-cards/ + + + https://blog.dich.ink/tags/chromebook/ + + + https://blog.dich.ink/tags/debain/ + + + https://blog.dich.ink/tags/dsm-nas/ + + + https://blog.dich.ink/tags/keyboard/ + + + https://blog.dich.ink/tags/licenses/ + + + https://blog.dich.ink/tags/open/ + + + https://blog.dich.ink/tags/openwrt/ + + + https://blog.dich.ink/tags/podcast/ + + + https://blog.dich.ink/tags/prompt/ + + + https://blog.dich.ink/tags/pve/ + + + https://blog.dich.ink/tags/root/ + + + https://blog.dich.ink/tags/route/ + + + https://blog.dich.ink/tags/rss/ + + + https://blog.dich.ink/tags/searching/ + + + https://blog.dich.ink/tags/software/ + + + https://blog.dich.ink/tags/wifi/ + + + https://blog.dich.ink/tags/win-linux/ + + + https://blog.dich.ink/tags/working/ + + + https://blog.dich.ink/win-linux/ + 2023-08-23 + + diff --git a/public/style.css b/public/style.css new file mode 100644 index 0000000..d51f5f1 --- /dev/null +++ b/public/style.css @@ -0,0 +1 @@ +.button-container{display:table;margin-left:auto;margin-right:auto}button,.button,a.button{position:relative;display:flex;align-items:center;justify-content:center;padding:8px 18px;margin-bottom:5px;text-align:center;border-radius:8px;border:1px solid rgba(0,0,0,0);appearance:none;cursor:pointer;outline:none;}button.outline,.button.outline,a.button.outline{background:rgba(0,0,0,0);box-shadow:none;padding:8px 18px}button.outline :hover,.button.outline :hover,a.button.outline :hover{transform:none;box-shadow:none}button.primary,.button.primary,a.button.primary{box-shadow:0 4px 6px rgba(50,50,93,.11),0 1px 3px rgba(0,0,0,.08)}button.primary:hover,.button.primary:hover,a.button.primary:hover{box-shadow:0 2px 6px rgba(50,50,93,.21),0 1px 3px rgba(0,0,0,.08)}button.link,.button.link,a.button.link{background:none;font-size:1rem}button.small,.button.small,a.button.small{font-size:.8rem}button.wide,.button.wide,a.button.wide{min-width:200px;padding:14px 24px}a.read-more,a.read-more:hover,a.read-more:active{display:inline-flex;background:none;box-shadow:none;padding:0;margin:20px 0;max-width:100%}.code-toolbar{margin-bottom:20px}.code-toolbar .toolbar-item a{position:relative;display:inline-flex;align-items:center;justify-content:center;padding:3px 8px;margin-bottom:5px;text-align:center;font-size:13px;font-weight:500;border-radius:8px;border:1px solid rgba(0,0,0,0);appearance:none;cursor:pointer;outline:none}.header{display:flex;flex-direction:column;position:relative}.header__inner{display:flex;align-items:center;justify-content:space-between}.header__logo{display:flex;flex:1}.header__logo:after{content:"";background:repeating-linear-gradient(90deg, var(--accent), var(--accent) 2px, rgba(0,0,0,0) 0, rgba(0,0,0,0) 16px);display:block;width:100%;right:10px}.header__logo a{flex:0 0 auto;max-width:100%}.header .menu{margin:20px 0}.header .menu__inner{display:flex;flex-wrap:wrap;list-style:none;margin:0;padding:0}.header .menu__inner li.active{color:var(--accent-alpha-70)}.header .menu__inner li:not(:last-of-type){margin-right:20px;margin-bottom:10px;flex:0 0 auto}.header .menu__sub-inner{position:relative;list-style:none;padding:0;margin:0}.header .menu__sub-inner:not(:only-child){margin-left:20px}.header .menu__sub-inner-more{position:absolute;background:var(--background);box-shadow:var(--shadow);color:#fff;border:2px solid;margin:0;padding:10px;list-style:none;z-index:99;top:35px;left:0}.header .menu__sub-inner-more-trigger{color:var(--accent);user-select:none;cursor:pointer}.header .menu__sub-inner-more li{margin:0;padding:5px;white-space:nowrap}.logo{display:flex;align-items:center;text-decoration:none;background:var(--accent);color:#000;padding:5px 10px}html{box-sizing:border-box}*,*:before,*:after{box-sizing:inherit}body{margin:0;padding:0;font-family:Hack,DejaVu Sans Mono,Monaco,Consolas,Ubuntu Mono,monospace;font-size:1rem;line-height:1.54;background-color:var(--background);color:var(--color);text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-webkit-overflow-scrolling:touch;-webkit-text-size-adjust:100%}@media (max-width: 683px){body{font-size:1rem}}h1,h2,h3,h4,h5,h6{display:flex;align-items:center;font-weight:bold;line-height:1.3}h1{font-size:1.4rem}h2{font-size:1.3rem}h3{font-size:1.2rem}h4,h5,h6{font-size:1.15rem}a{color:inherit}img{display:block;max-width:100%}img.left{margin-right:auto}img.center{margin-left:auto;margin-right:auto}img.right{margin-left:auto}p{margin-bottom:20px}figure{display:table;max-width:100%;margin:25px 0}figure.left,figure img{margin-right:auto}figure.center,figure img{margin-left:auto;margin-right:auto}figure.right,figure img{margin-left:auto}figure figcaption{font-size:14px;padding:5px 10px;margin-top:5px;background:var(--accent);color:var(--background)}figure figcaption.left{text-align:left}figure figcaption.center{text-align:center}figure figcaption.right{text-align:right}code{font-family:Hack,DejaVu Sans Mono,Monaco,Consolas,Ubuntu Mono,monospace;font-feature-settings:normal;background:var(--accent-alpha-20);padding:1px 6px;margin:0 2px;font-size:.95rem}pre{font-family:Hack,DejaVu Sans Mono,Monaco,Consolas,Ubuntu Mono,monospace;padding:20px;font-size:.95rem;overflow:auto;border-top:1px solid rgba(255,255,255,.1);border-bottom:1px solid rgba(255,255,255,.1)}@media (max-width: 683px){pre{white-space:pre-wrap;word-wrap:break-word}}pre code{padding:0;margin:0;background:none}blockquote{border-top:1px solid var(--accent);border-bottom:1px solid var(--accent);margin:40px 0;padding:25px}@media (max-width: 683px){blockquote{padding-right:0}}blockquote:before{content:"”";font-family:Georgia,serif;font-size:3.875rem;position:absolute;left:-40px;top:-20px}blockquote p:first-of-type{margin-top:0}blockquote p:last-of-type{margin-bottom:0}blockquote p{position:relative}blockquote p:before{content:">";display:block;position:absolute;left:-25px;color:var(--accent)}table{table-layout:fixed;border-collapse:collapse;width:100%;margin:40px 0}table,th,td{border:1px dashed var(--accent);padding:10px}th{color:var(--accent)}ul,ol{margin-left:30px;padding:0}ul li,ol li{position:relative}@media (max-width: 683px){ul,ol{margin-left:20px}}ol ol{list-style-type:lower-alpha}.container{display:flex;flex-direction:column;padding:40px;max-width:864px;min-height:100vh;margin:0 auto}@media (max-width: 683px){.container{padding:20px}}.content{display:flex}hr{width:100%;border:none;background:var(--border-color);height:1px}.hidden{display:none}.posts{width:100%;margin:0 auto}.post{width:100%;text-align:left;margin:20px auto;padding:20px 0}@media (max-width: 899px){.post{max-width:660px}}.post:not(:last-of-type){border-bottom:1px solid var(--border-color)}.post .post-meta-inline,.post .post-meta{font-size:1rem;margin-bottom:10px;color:var(--accent-alpha-70)}.post-meta-inline{display:inline}.post-title{--border: 2px dashed var(--accent);position:relative;color:var(--accent);margin:0 0 15px;padding-bottom:15px;border-bottom:var(--border);font-weight:normal}.post-title a{text-decoration:none}.post .post-tags-inline,.post .post-tags{margin-bottom:20px;font-size:1rem;opacity:.5}.post-tags{display:block}.post-tags-inline{display:inline}@media (max-width: 683px){.post-tags-inline{display:block}}.post-content{margin-top:30px}.post-cover{border:20px solid var(--accent);background:rgba(0,0,0,0);margin:40px 0;padding:20px}@media (max-width: 683px){.post-cover{padding:10px;border-width:10px}}.post ul{list-style:none}.post ul li:before{content:"►";position:absolute;left:-20px;color:var(--accent)}.post--regulation h1{justify-content:center}.post--regulation h2{justify-content:center;margin-bottom:10px}.post--regulation h2+h2{margin-top:-10px;margin-bottom:20px}.post-list .post-date{color:var(--accent-alpha-70);text-decoration:none}.post-list a{text-decoration:none}.post-list .post-list-title{text-decoration:underline}.post-list .post-tag{text-decoration:underline}.pagination{margin-top:50px}.pagination__title{display:flex;text-align:center;position:relative;margin:100px 0 20px}.pagination__title-h{text-align:center;margin:0 auto;padding:5px 10px;background:var(--background);font-size:.8rem;text-transform:uppercase;letter-spacing:.1em;z-index:1}.pagination__title hr{position:absolute;left:0;right:0;width:100%;margin-top:15px;z-index:0}.pagination__buttons{display:flex;align-items:center;justify-content:center}@media (max-width: 683px){.pagination__buttons{flex-direction:column}}.button{position:relative;display:inline-flex;align-items:center;justify-content:center;font-size:1rem;border-radius:8px;max-width:40%;padding:0;cursor:pointer;appearance:none}@media (max-width: 683px){.button{max-width:80%}}.button+.button{margin-left:10px}.button a{display:flex;padding:8px 16px;text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.button__text{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.footer{padding:40px 0;flex-grow:0;opacity:.5}.footer__inner{display:flex;align-items:center;justify-content:space-between;margin:0;width:760px;max-width:100%}@media (max-width: 899px){.footer__inner{flex-direction:column}}.footer a{color:inherit}.footer .copyright{display:flex;flex-direction:row;align-items:center;font-size:1rem;color:var(--light-color-secondary)}.footer .copyright--user{margin:auto;text-align:center}.footer .copyright>*:first-child:not(:only-child){margin-right:10px}@media (max-width: 899px){.footer .copyright>*:first-child:not(:only-child){border:none;padding:0;margin:0}}@media (max-width: 899px){.footer .copyright{flex-direction:column;margin-top:10px}}@media (max-width: 899px){.footer .copyright-theme-sep{display:none}}@media (max-width: 899px){.footer .copyright-theme{font-size:.75rem}} \ No newline at end of file diff --git a/public/tags/advertising/index.html b/public/tags/advertising/index.html new file mode 100644 index 0000000..179c7ad --- /dev/null +++ b/public/tags/advertising/index.html @@ -0,0 +1,124 @@ + + + + + +Dich'blog + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + + + + + +
+ + +
+ +
+

+ tag: #Advertising + (1 post) +

+ + + Show all tags + + + + + +
+ +
+ + + + + +
+ + + diff --git a/public/tags/algorithms/index.html b/public/tags/algorithms/index.html new file mode 100644 index 0000000..cb180e3 --- /dev/null +++ b/public/tags/algorithms/index.html @@ -0,0 +1,124 @@ + + + + + +Dich'blog + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + + + + + +
+ + +
+ +
+

+ tag: #algorithms + (1 post) +

+ + + Show all tags + + + + + +
+ +
+ + + + + +
+ + + diff --git a/public/tags/android-tv/index.html b/public/tags/android-tv/index.html new file mode 100644 index 0000000..302038b --- /dev/null +++ b/public/tags/android-tv/index.html @@ -0,0 +1,123 @@ + + + + + +Dich'blog + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + + + + + +
+ + +
+ +
+

+ tag: #android-TV + (1 post) +

+ + + Show all tags + + + + + +
+ +
+ + + + + +
+ + + diff --git a/public/tags/android/index.html b/public/tags/android/index.html new file mode 100644 index 0000000..f0af70b --- /dev/null +++ b/public/tags/android/index.html @@ -0,0 +1,124 @@ + + + + + +Dich'blog + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + + + + + +
+ + +
+ +
+

+ tag: #android + (1 post) +

+ + + Show all tags + + + + + +
+ +
+ + + + + +
+ + + diff --git a/public/tags/arch-install/index.html b/public/tags/arch-install/index.html new file mode 100644 index 0000000..a158fb2 --- /dev/null +++ b/public/tags/arch-install/index.html @@ -0,0 +1,123 @@ + + + + + +Dich'blog + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + + + + + +
+ + +
+ +
+

+ tag: #arch-install + (1 post) +

+ + + Show all tags + + + + + +
+ +
+ + + + + +
+ + + diff --git a/public/tags/calling-cards/index.html b/public/tags/calling-cards/index.html new file mode 100644 index 0000000..f07daca --- /dev/null +++ b/public/tags/calling-cards/index.html @@ -0,0 +1,123 @@ + + + + + +Dich'blog + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + + + + + +
+ + +
+ +
+

+ tag: #Calling-cards + (1 post) +

+ + + Show all tags + + + + + +
+ +
+ + + + + +
+ + + diff --git a/public/tags/chromebook/index.html b/public/tags/chromebook/index.html new file mode 100644 index 0000000..2680702 --- /dev/null +++ b/public/tags/chromebook/index.html @@ -0,0 +1,123 @@ + + + + + +Dich'blog + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + + + + + +
+ + +
+ +
+

+ tag: #chromebook + (1 post) +

+ + + Show all tags + + + + + +
+ +
+ + + + + +
+ + + diff --git a/public/tags/debain/index.html b/public/tags/debain/index.html new file mode 100644 index 0000000..deca00d --- /dev/null +++ b/public/tags/debain/index.html @@ -0,0 +1,124 @@ + + + + + +Dich'blog + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + + + + + +
+ + +
+ +
+

+ tag: #Debain + (1 post) +

+ + + Show all tags + + + + + +
+ +
+ + + + + +
+ + + diff --git a/public/tags/dsm-nas/index.html b/public/tags/dsm-nas/index.html new file mode 100644 index 0000000..ce8bebe --- /dev/null +++ b/public/tags/dsm-nas/index.html @@ -0,0 +1,123 @@ + + + + + +Dich'blog + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + + + + + +
+ + +
+ +
+

+ tag: #DSM-NAS + (1 post) +

+ + + Show all tags + + + + + +
+ +
+ + + + + +
+ + + diff --git a/public/tags/index.html b/public/tags/index.html new file mode 100644 index 0000000..29c89b6 --- /dev/null +++ b/public/tags/index.html @@ -0,0 +1,249 @@ + + + + + Dich'blog + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + + + + + +
+ + +
+ +
+

all tags

+ + +
+ +
+ + + + + +
+ + + diff --git a/public/tags/keyboard/index.html b/public/tags/keyboard/index.html new file mode 100644 index 0000000..778f236 --- /dev/null +++ b/public/tags/keyboard/index.html @@ -0,0 +1,123 @@ + + + + + +Dich'blog + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + + + + + +
+ + +
+ +
+

+ tag: #keyboard + (1 post) +

+ + + Show all tags + + + + + +
+ +
+ + + + + +
+ + + diff --git a/public/tags/licenses/index.html b/public/tags/licenses/index.html new file mode 100644 index 0000000..7310c1a --- /dev/null +++ b/public/tags/licenses/index.html @@ -0,0 +1,125 @@ + + + + + +Dich'blog + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + + + + + +
+ + +
+ +
+

+ tag: #licenses + (1 post) +

+ + + Show all tags + + + + + +
+ +
+ + + + + +
+ + + diff --git a/public/tags/open/index.html b/public/tags/open/index.html new file mode 100644 index 0000000..f21cee5 --- /dev/null +++ b/public/tags/open/index.html @@ -0,0 +1,125 @@ + + + + + +Dich'blog + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + + + + + +
+ + +
+ +
+

+ tag: #open + (1 post) +

+ + + Show all tags + + + + + +
+ +
+ + + + + +
+ + + diff --git a/public/tags/openwrt/index.html b/public/tags/openwrt/index.html new file mode 100644 index 0000000..a78204b --- /dev/null +++ b/public/tags/openwrt/index.html @@ -0,0 +1,123 @@ + + + + + +Dich'blog + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + + + + + +
+ + +
+ +
+

+ tag: #openwrt + (1 post) +

+ + + Show all tags + + + + + +
+ +
+ + + + + +
+ + + diff --git a/public/tags/podcast/index.html b/public/tags/podcast/index.html new file mode 100644 index 0000000..c621bb7 --- /dev/null +++ b/public/tags/podcast/index.html @@ -0,0 +1,123 @@ + + + + + +Dich'blog + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + + + + + +
+ + +
+ +
+

+ tag: #Podcast + (1 post) +

+ + + Show all tags + + + + + +
+ +
+ + + + + +
+ + + diff --git a/public/tags/prompt/index.html b/public/tags/prompt/index.html new file mode 100644 index 0000000..e4686df --- /dev/null +++ b/public/tags/prompt/index.html @@ -0,0 +1,123 @@ + + + + + +Dich'blog + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + + + + + +
+ + +
+ +
+

+ tag: #Prompt + (1 post) +

+ + + Show all tags + + + + + +
+ +
+ + + + + +
+ + + diff --git a/public/tags/pve/index.html b/public/tags/pve/index.html new file mode 100644 index 0000000..875fdbd --- /dev/null +++ b/public/tags/pve/index.html @@ -0,0 +1,124 @@ + + + + + +Dich'blog + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + + + + + +
+ + +
+ +
+

+ tag: #PVE + (1 post) +

+ + + Show all tags + + + + + +
+ +
+ + + + + +
+ + + diff --git a/public/tags/root/index.html b/public/tags/root/index.html new file mode 100644 index 0000000..8affd70 --- /dev/null +++ b/public/tags/root/index.html @@ -0,0 +1,124 @@ + + + + + +Dich'blog + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + + + + + +
+ + +
+ +
+

+ tag: #root + (1 post) +

+ + + Show all tags + + + + + +
+ +
+ + + + + +
+ + + diff --git a/public/tags/route/index.html b/public/tags/route/index.html new file mode 100644 index 0000000..9425cfd --- /dev/null +++ b/public/tags/route/index.html @@ -0,0 +1,124 @@ + + + + + +Dich'blog + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + + + + + +
+ + +
+ +
+

+ tag: #route + (1 post) +

+ + + Show all tags + + + + + +
+ +
+ + + + + +
+ + + diff --git a/public/tags/rss/index.html b/public/tags/rss/index.html new file mode 100644 index 0000000..36bdd6d --- /dev/null +++ b/public/tags/rss/index.html @@ -0,0 +1,123 @@ + + + + + +Dich'blog + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + + + + + +
+ + +
+ +
+

+ tag: #RSS + (1 post) +

+ + + Show all tags + + + + + +
+ +
+ + + + + +
+ + + diff --git a/public/tags/searching/index.html b/public/tags/searching/index.html new file mode 100644 index 0000000..8084ab1 --- /dev/null +++ b/public/tags/searching/index.html @@ -0,0 +1,123 @@ + + + + + +Dich'blog + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + + + + + +
+ + +
+ +
+

+ tag: #Searching + (1 post) +

+ + + Show all tags + + + + + +
+ +
+ + + + + +
+ + + diff --git a/public/tags/software/index.html b/public/tags/software/index.html new file mode 100644 index 0000000..8ebdd37 --- /dev/null +++ b/public/tags/software/index.html @@ -0,0 +1,125 @@ + + + + + +Dich'blog + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + + + + + +
+ + +
+ +
+

+ tag: #software + (1 post) +

+ + + Show all tags + + + + + +
+ +
+ + + + + +
+ + + diff --git a/public/tags/wifi/index.html b/public/tags/wifi/index.html new file mode 100644 index 0000000..5ef535b --- /dev/null +++ b/public/tags/wifi/index.html @@ -0,0 +1,124 @@ + + + + + +Dich'blog + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + + + + + +
+ + +
+ +
+

+ tag: #Wifi + (1 post) +

+ + + Show all tags + + + + + +
+ +
+ + + + + +
+ + + diff --git a/public/tags/win-linux/index.html b/public/tags/win-linux/index.html new file mode 100644 index 0000000..c74cf88 --- /dev/null +++ b/public/tags/win-linux/index.html @@ -0,0 +1,123 @@ + + + + + +Dich'blog + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + + + + + +
+ + +
+ +
+

+ tag: #win-linux + (1 post) +

+ + + Show all tags + + + + + +
+ +
+ + + + + +
+ + + diff --git a/public/tags/working/index.html b/public/tags/working/index.html new file mode 100644 index 0000000..111081e --- /dev/null +++ b/public/tags/working/index.html @@ -0,0 +1,123 @@ + + + + + +Dich'blog + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + + + + + +
+ + +
+ +
+

+ tag: #working + (1 post) +

+ + + Show all tags + + + + + +
+ +
+ + + + + +
+ + + diff --git a/public/variables.css b/public/variables.css new file mode 100644 index 0000000..e69de29 diff --git a/public/win-linux/index.html b/public/win-linux/index.html new file mode 100644 index 0000000..58324a5 --- /dev/null +++ b/public/win-linux/index.html @@ -0,0 +1,174 @@ + + + + + Dich'blog + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + + + + + + +
+ + +
+ +
+ +

Win定制+linux双系统

+ + + + + + +
+

前言 +对于同时有着游戏和Linux环境需求的玩家来说,双系统似乎是其必经之路;而主流设备中两块的硬盘位也为双系统的安装提供了支持。本文以Revios+Garuda的安装为例介绍双系统的安装。

+ +

什么是Revios?

+

Revios是一款经过精简和优化的Windows发行版(如果可以这么说的话),其特点为在保证稳定性的情况下,禁用和删除一些系统服务,提高了速度;禁用系统大量隐私收集功能,保护了隐私;禁用部分功能组件,减少磁盘空间占用。对于需要的组件可以自由添加回来。同生态位下还存在着诸如AtlasOS、LTSC等,但Revios在精简和功能性中做的平衡较好。如果你有游戏需求,同时需要使用Adobe等专业软件,那么这将是一个好的选择。

+

什么是Garuda?

+

Garuda是一款基于arch的Linux发行版,具有高性能的zen内核、绚丽的桌面环境和自动创建快照的功能,在一众发行版(Endeavouros,Manjaro)中受到更多的喜爱(确信)。由于作者使用过其他发行版,故以此新系统为例。

+

准备工作 +1.我们的新伙计ventoy:https://www.ventoy.net/cn/download.html

+

2.revios镜像:https://www.revi.cc/revios/download/

+

3.Garuda镜像:https://garudalinux.org/downloads.html

+

4.一台主机,这里以我的垃圾佬鞋盒主机为例:

+

具体步骤:ventoy挂载镜像,安装Revios,安装Garuda,设置引导顺序。

+

一.挂载镜像并安装 +1.我们可以发现这次我们有两个镜像需要安装,如果使用Rufus那么需要两次独立的写入;因此这里推荐使用ventoy工具,只要将镜像拖入盘内即可,可以同时部署多个镜像。

+

2.进入BIOS,设置boot启动顺序,将USB设为首位,保存退出;

+

3.重启后可以看到如下界面,我们选择revios:

+

可以看到一个经典的Windows安装界面,我们点击同意协议:

+

选择目标磁盘安装:

+

随后进入设置环节:

+

设置安全问题:

+

4.重启后进入系统,可以看到非常流畅,甚至在这台2G内存的主机上都毫无问题:

+

系统自带Brave浏览器,以及一个控制中心,可以调节一些参数。

+

二.安装garuda 并启动 +1.同样的ventoy我们选择garuda-正常启动,注意先以开源的驱动启动,不然可能会出问题:

+

跑码后进入欢迎界面,选择install garuda linux:

+

设置语言,地区,键盘

+

注意这里我们抹除整个磁盘,不要点错成另外一个Windows所在的盘(或者只有一个盘,选择并存安装,有风险),加密系统设置后每次开机得先输入此密码,随后设置以GRUB方式启动:

+

检查无误后开始安装:

+

2.安装完成后重启,注意需要设置garuda 所在硬盘优先启动,随后可以看到如下界面,说明引导成功;这里是以Grub来进入Windows的boot manager。

+

后记 +不建议单盘双系统,因为固态硬盘对两个不同文件系统的运行存在问题,不建议固态多分区也是如此。

+ +
+ + + + +
+ +
+ + + + + +
+ + +